List of Source Ports
Source Ports[edit | edit source]
This is a list of proprietary (typically commercial) games which have Free Software/open source engines available. There are a number of such games with source code available for their engines, which can be useful for a variety of reasons, including porting to new platforms, bug fixes, new features or improved performance. Many games are only available on Linux thanks to source code releases which have enabled fans to port them when some developers wouldn't do so themselves.
Arx Fatalis - http://download.zenimax.com/arxfatalis/other/ArxFatalis_1.21_Sources.zip - Arx Libtertatis is a project aimed at bug fixes, new OS and platform support and also modding support, which can be found here:
Aquaria - Source was released as part of the original Humble Indie Bundle. Community has actually been producing updated engine builds for some time (including Linux versions). Original repository here: https://hg.icculus.org/icculus/aquaria/
More info here: http://infiniteammo.ca/blog/aquaria-source-released/ and here: http://blog.wolfire.com/2010/06/Aquaria-goes-open-source
Community builds can be found here:
Marathon series - Aleph One - http://marathon.sourceforge.net/ - Plays all three of the Marathon games. Also has support for mods and stand alone campaigns.
Gish - http://www.crypticsea.com/download/gishsource153.zip - Source released as part of the original Humble Indie Bundle. Freegish provides an updated engine as well as a few levels of its own, entirely free content - https://github.com/freegish/freegish
The Quake series, Doom series (including Doom 3: BFG Edition) and Wolfenstein (up to Wolfenstein: Enemy Territory) series all have source available at ftp://ftp.idsoftware.com/idstuff/source/ & https://github.com/id-Software. There are numerous projects providing new ports, new features and bug fixes for these titles. Most notable are:
- Doom series - Chocolate Doom (http://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom), zDoom (http://zdoom.org/News) & Doom Legacy (http://doomlegacy.sourceforge.net/)
- Quake series - Darkplaces (https://icculus.org/twilight/darkplaces/), Yamagi Quake2 (http://www.yamagi.org/quake2/), ioQuake3 (http://ioquake3.org/) and Quake4Doom (https://github.com/jmarshall23/Quake4Doom)
- Doom 3 - ioDoom3 (http://github.com/iodoom/iod3), RBDoom3 (https://github.com/RobertBeckebans/RBDOOM-3-BFG) & Dhewm3 (https://github.com/dhewm/dhewm3)
- Return to Castle Wolfenstein - iortcw (https://github.com/iortcw/iortcw) and rtcwcoop (http://www.rtcwcoop.com/) for added online co-op
- Wolfenstein: Enemy Territory - ET:Legacy (http://www.etlegacy.com/).
In particular ET:Legacy could probably do with some help, as well as rtcwcoop.
Penumbra: Overture - https://github.com/FrictionalGames - Code for the Overture engine, including the source for the early, free Penumbra tech demo. More information on the release can be found here:
- Shadowgrounds + Shadowgrounds: Survivor - http://frozenbyte.com/board/viewtopic.php?f=23&t=3597 - Updated source available (https://github.com/vayerx/shadowgrounds), cannot say what improvements or fixes have been applied overall.
- Jack Claw - https://github.com/Frozenbyte/Jack-Claw - Abandoned prototype that was released and open sourced as part of the Humble Frozenbyte Bundle. Intended to be a game taken on by the community, but never seemed to gain traction. Could do with a serious revival.
Star Wars Jedi Knight: Jedi Academy + Jedi Outcast - see OpenJK for a project aimed at more general improvements and fixes - https://github.com/Razish/OpenJK
For a quick 'n' dirty Linux port, see https://github.com/xLAva/JediAcademyLinux
Descent 1 + 2 - Source released under a non-commercial license. See DXX-Rebirth - http://www.dxx-rebirth.com/
Hexen & Heretic - http://sourceforge.net/projects/heretic/ - Both can be played by Zdoom (http://www.zdoom.org/) or Chocolate Doom (http://www.chocolate-doom.org/wiki/index.php/Chocolate_Doom)
Hexen II + Portals of Praevus + HexenWorld - http://www.fileplanet.com/51987/50000/fileinfo/Hexen-2-Source-Code - Significantly updated and cross platform version available from Hammer of Thyrion/uHexen2 project (http://uhexen2.sourceforge.net/)
Aliens vs Predator - Released under a non-commerical license. Updated source available from here: https://icculus.org/avp/
Jagged Alliance 2 - The source code was released by Strategy First-Inc. in 2004 under the Source Code License Agreement (CFI-SCLA). There are 3 notable projects, which are:
- JA2-Stracciatella http://tron.homeunix.org/ja2/ - This project has been defunct since 2010. The project is now superseded by...
- JA2-Stracciatella Continued - https://bitbucket.org/gennady/ja2-stracciatella - Includes the expected bug fixes since the 2010 version, as well as some new features like high resolution support
- JA2 v1.13 - http://ja2v113.pbworks.com/w/page/4218339/FrontPage - Includes many new features as well as vastly improved modding support, allowing the editing of many previously hard coded aspects of the game.
For more information on various mods and possibly other engine projects, see The Bear Pits forums (http://www.ja-galaxy-forum.com/board/ubbthreads.php).
Freespace 2 - https://icculus.org/freespace2/ - FreeSpace 2 source code project has been working on this for years, with many new features and enhancements. The engine is under a non-commercial license however - http://scp.indiegames.us/
Also of note is Diaspora: Shattered Armistice, a Free Culture, community made Battlestar Galactica game using the engine, complete with voice acting.
Lugaru - https://hg.icculus.org/icculus/lugaru/ - Art assets are also under a non-commercial license. More info here:
Info on some of the first projects that sprung up here: http://blog.wolfire.com/2010/05/Zero-day-open-source-contributions
Engine Projects[edit | edit source]
These are for games with no official source release - these are games which had to be reverse engineered, source was discovered and unofficially released or otherwise:
Zork: Grand Inquisitor - ZEngine - https://github.com/marisa-chan/Zengine
Bethesda Game Studios
Elder Scrollls III: Morrowind - OpenMW - https://openmw.org/en/ - Newer a less buggy engine for TES3:Morrowind, comes with many graphical enhancements and improved performance. Bioware
Baldurs Gate and Planescape series - GemRB - http://www.gemrb.org/
Diablo - Freeablo - https://github.com/wheybags/freeablo - Currently incomplete, still active at time of writing.
Bermuda Syndrome - http://cyxdown.free.fr/bs/ - Re-implementation of the engine behind Bermuda Syndrome.
Rollercoaster Tycoon 2 - https://openrct2.org/ - Adds multiplayer co-op amongst many other new features and improvements.
Tomb Raider series - There are several projects aimed at re-implementing the original Tomb Raider series:
- OpenRaider - https://github.com/xythobuz/OpenRaider - Revived after previously being abandoned in 2003. Already has an OpenGL3 renderer and SDL2 support for gamepads. Inactive/Defunt
- OpenTomb - https://opentomb.github.io/ - Works with the first 4 Tomb Raider games. Playable but not complete.
- OpenLara - https://github.com/XProger/OpenLara - Mostly focused on support for the first Tomb Raider, playable.
Age of Empires II - OpenAage - http://openage.sft.mx/ - Primarily aimed at Linux users, Also compatible with HD remake version.
Heart of the Alien - Heart of the Alien Redux - http://hota.sourceforge.net/ - Sequel to Another World
Fallout 2 - Falltergeist - https://github.com/falltergeist/falltergeist
Metal Gear Solid: Integral - https://github.com/paulsapps/msgi - Reverse engineering project for the PC port of Metal Gear Solid with cross platform support planned
Looking Glass Studios
Thief 1 + 2 - OpenDarkEngine - https://github.com/volca02/openDarkEngine - Previously stalled due to lack of developer time (http://www.ttlg.com/forums/showthread.php?t=102289&p=2121201&viewfull=1#post2121201). As of April 2014 the project has been revived by the original developer and is now hosted at Github instead of SourceForge.
Grim Fandango - ResidualVM - http://www.residualvm.org/ - re-implementation of Grim Fandango. including new platform support, bug fixes and even mod support (allows for replacing of of game data like textures and models). It will likely work better than the original version on Windows too (it's infamously prone to crashing).
Star Wars Episode I: Racer - OpenSWE1R - https://openswe1r.github.io/ - Part emulation and part re-implementation project.
X-COM/UFO: Enemy Unknown - OpenXcom - http://openxcom.org/
New World Computing
Heroes of Might and Magic II - Free Heroes2 engine - http://sourceforge.net/projects/fheroes2/
Heroes of Might and Magic III - VCMI Project - http://forum.vcmi.eu/
Ultima VII + Expansions - http://exult.sourceforge.net
Ultima 8 - http://pentagram.sourceforge.net/ - Game can apparently be completed, though there may be issues and missing features. According to the FAQ, they also want to add support for Crusader: No Remorse and Crusader: No Regret.
Cave Story - NXEngine - http://nxengine.sourceforge.net/ - Refers to itself as a clone/rewrite. Supports ARM processors.
Star Trek Voyager: Elite Force - http://thilo.kickchat.com/efport-progress/ - Extended from ioQuake3, sadly multiplayer only
GTA III - OpenRW - https://github.com/rwengine/openrw - as of September 2016 a few missions are completable but no melee and no civilian collisions.
Command & Conquer Series - OpenRA - http://openra.res0l.net/ - A re-implementation of the Red Alert engine - plays original C&C and Red Alert. I'm not sure about expansions. Source: https://github.com/OpenRA/OpenRA
Dune II - Dune Legacy - http://sourceforge.net/apps/mediawiki/dunelegacy/ - Re-implements Dune II engine, with some gameplay differences compared to the original.
Titus the Fox - OpenTitus - https://github.com/stople/OpenTitus
Redneck Rampage series - erampage - https://github.com/ttyborg/erampage - Extended from eDuke32, requires building from source for Linux version.
Zork Nemeis - ZEngine - https://github.com/marisa-chan/Zengine
ScummVM - http://www.scummvm.org/ - Re-implements a large range of game engines, primarily for "point and click" adventure games, including many LucasArts and Sierra classics.
XLEngine - http://xlengine.com/ - Re-implements various engines to support and improve certain older games. The supported list currently includes TES II: Daggerfall, Blood, Star Wars: Dark Forces and Outlaws.
Xoreos - http://xoreos.org/ - Re-implementation of the Aurora engine by BioWare. The project currently aims to support:
- Neverwinter Nights + Neverwinter Nights 2
- Star Wars: Nights of the Old Republic I + II
- Jade Empire
- Sonic Chronicles: The Dark Brotherhood
- The Witcher
- Dragon Age: Origins + 2
FAQ[edit | edit source]
What is a game engine?
The software that drives pretty much everything you can see and do in a game. It's the code that handles input, display, rendering (graphics), AI, sound etc. It is usually created so that several or many games can be made with the same engine.
What is source code?
The human readable instructions that define any computer program, typically written in a programming language like C or C++ which are then compiled. If you wanted to make changes to a game engine, in the vast majority of cases it is easier if you have access to the source code. Modding communities, particularly ones that try to update or add new features to an older game, may require significant reverse engineering or hacks that are less likely to be maintainable over a long period of time if no engine source code is available.
Why is having the source code to a game important?
There are many reasons, including but not limited to:
Community improvement of a game or its engine - from improved visuals to support for more platforms, as well as entirely new features in some cases.
Cultural preservation - Can allow games to be updated so that they can continue to be played, or be better preserved, particularly for use in museums and libraries.
Cultural independence - Allows us to not be dependent on the will of commercial entities to continue to be able to play our games, or to improve and remix them without waiting on some timely "HD" edition or similar. Particularly true for niche and/or very old games, and instances when developers or publishers go bust and the copyright and trademarks become difficult or impossible to trace. Such a situation happened to System Shock 2 where for many years new copies of the game simply could not be sold, and was only available second hand or through piracy until it recently became available on GOG and Steam. For every SS2, there are many more games that simply get forgotten or become unplayable.
Having source code can benefit developers too. John Carmack has stated that the port of Doom to iPhone likely would not have been possible were it not for the engine being GPL'd (http://www.bethblog.com/2009/11/05/john-carmack-on-doom-classic-development-fan-questions/). Not only has the engine been publicly preserved, the many updated and improved variations of the doom engine meant he had many options to turn to as a basis for the iPhone port, making it commercially viable.
How do I make use of a source port?
Most source ports do not provide the game data (models, textures, audio etc.), as most developers do not release that for free. You will typically still need to have your copy of the original game for that data or you will need to buy the game. For where you need to put that data so the source port will see it, check that projects documentation or ask someone.
Also, some source ports may not provide Linux binaries, but are still compatible and will compile on Linux. Once again, check that projects documentation or ask someone.
Where can I get X game?
Second hand may be preferable as some games are cheaper that way than they are buying "new" from places like GOG or Steam. If you really feel you have to buy first hand, I would recommend GOG over Steam should a game be available on both. GOG gives you DRM free access to downloads of the installers straight from your browser, allowing you to extract the data immediately or install via Wine and copy the data that way. With Steam, it will not let you install games that do not have official support for your OS, meaning you will need to go through the pain of setting up and logging in to Steam via Wine, which may be unreliable or require you to log out of your Linux Steam client.