Difference between revisions of "Game engine recreations and source ports"

From Emulation General Wiki
Jump to navigation Jump to search
m (Single game engine)
(Single game engine: Updating OpenRCT2's version number.)
(24 intermediate revisions by 14 users not shown)
Line 1: Line 1:
{{stub}}
+
Sometimes a full system emulator is overkill. This is especially true when a developer only wants to get one game (or a number of games that use the same engine) working. In that case, reimplementing that game alone would save more time than implementing the platform it runs on. These kinds of projects are common when abandonware has large communities; when the original developer has disbanded and can no longer support or update it, an effort is then made to get it running natively on newer versions of-- and/or entirely different-- operating systems and platforms.
Game engine recreations (sometimes called game engine re-implementations or remakes) are unofficial recreations of game engines. Allowing you to play games on different systems to which they where originally intended. This requires you to have the original game assets (ROMs or other files) and load them in the game engine recreation. Game engine recreations are mostly done through reverse engineering the original game engines. Game engines which are unofficialy recreated when the original source code is available are mostly called source ports (for example GZDoom which allows you to play Doom, Doom II and Final Doom on modern systems). If a game engine is ported officially, it's simply called a port, remake or remaster.
 
  
'''Note:''' For a complete list, see the [https://osgameclones.com/ Open Source Game Clones] website.
+
* When the developer only has a binary to work with (and not the [[source code]]), they recreate the engine rather than port it, hence the term '''[[wikipedia:Game engine recreation|game engine recreations]]''' (or alternatively '''game engine re-implementations'''). How the developers go about this process depends on their philosophy; they may opt to decompile the original executable and have their own program rely on the original until all of its functions have been remade, at which point the original binary is no longer needed. Alternatively, they can be remade based on a clean room design, in which the project implements the abstract features without having to disassemble the original, going by how components are expected to be used rather than how the game uses them.
 +
* In rare cases, games are released as open-source by the publishers themselves, allowing developers to perform a '''source port''' of the code. This skips the step of figuring out how the game works. The most common example that's often used is id Software's release of Doom in 1997. It led to [[wikipedia:List of Doom source ports|so many ports being released]] that the community began to joke about what devices haven't gotten it running yet.
  
''This page is a WIP. Feel free to help out!''
+
Some projects are implemented in ways that the original developer did not intend; for example, for a platform other than which publishers marketed it for. And they're not just limited to game engines either; [https://webamp.org/ Webamp] is a JavaScript application that reimplements Winamp in the web browser. These projects are almost always open-source which also allows new programmers to fix bugs that could have been difficult to track down during development (alternatively, the bugs may be emulated to allow mods to continue to safely exploit them). When most of the effort is on programming, the project will usually require the original game's assets (such as files in the installation directory or ROMs) until those ever get remade. This lets the developers claim they aren't infringing the game's copyrights since the player must obtain the original to use it; if the game is still being sold, this could allow the publisher to even earn revenue from the project.
 +
 
 +
For a complete list of these projects, see [https://osgameclones.com/ Open Source Game Clones].
  
 
==Multi game engine==
 
==Multi game engine==
Line 14: Line 16:
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|Active
 
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
+
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|Supported game(s)
 
! scope="col"|Supported game(s)
 
|-
 
|-
Line 23: Line 25:
 
|[http://www.residualvm.org/downloads/ 0.3.1]
 
|[http://www.residualvm.org/downloads/ 0.3.1]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
|3D adventure games (LucasArts & more)
+
|3D adventure games (Grim Fandango, Escape from Monkey Island & Myst III: Exile)
 
|-
 
|-
 
|[[ScummVM]]
 
|[[ScummVM]]
Line 43: Line 45:
 
|[[EasyRPG]]
 
|[[EasyRPG]]
 
|Multi-platform
 
|Multi-platform
|[https://easyrpg.org/player/downloads/ 0.5.3]
+
|[https://easyrpg.org/player/downloads/ 0.6.0]
 
|{{✓}} ||{{✓}} ||{{✓}}
 
|{{✓}} ||{{✓}} ||{{✓}}
|RPG Maker 2000/2003
+
|RPG Maker 2000/2003 games
 +
|-
 +
|[[Neko RPGXP Player]]
 +
|Android
 +
|[https://play.google.com/store/apps/details?id=net.kernys.rgss&hl 2.01]
 +
|{{✗}} ||{{✓}} ||{{~}}
 +
|RPG Maker XP/VX/VA/MV games
 
|-
 
|-
 
|[https://xoreos.org/ xoreos]
 
|[https://xoreos.org/ xoreos]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
 
|[https://github.com/xoreos/xoreos 0.0.5]
 
|[https://github.com/xoreos/xoreos 0.0.5]
|{{✗}} ||{{✓}} ||{{✗}}
+
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|BioWare's Aurora engine & derivatives <br/>(BioWare's 7 PC/console RPGs, Sonic Chronicles: The Dark Brotherhood, The Witcher)
 
|BioWare's Aurora engine & derivatives <br/>(BioWare's 7 PC/console RPGs, Sonic Chronicles: The Dark Brotherhood, The Witcher)
 
|-
 
|-
Line 60: Line 68:
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Early Westwood games (Command & Conquer, C&C: Red Alert, Dune 2000). <br/>''Soon:'' 2nd-gen C&C (C&C: Tiberian Sun).
 
|Early Westwood games (Command & Conquer, C&C: Red Alert, Dune 2000). <br/>''Soon:'' 2nd-gen C&C (C&C: Tiberian Sun).
 +
|-
 +
!colspan="9"|Shoot 'em up
 +
|-
 +
|ReC98
 +
|Multi-platform
 +
|[https://github.com/nmlgc/ReC98 Git]
 +
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|Touhou 1 - 5
 
|}
 
|}
  
Line 70: Line 86:
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|[[libretro|Libretro Core]]
 
! scope="col"|Active
 
! scope="col"|Active
! scope="col"|[[Recommended emulators|Recommended]]
+
! scope="col"|[[Recommended Emulators|Recommended]]
 
! scope="col"|Supported game(s)
 
! scope="col"|Supported game(s)
 
|-
 
|-
Line 85: Line 101:
 
|Grand Theft Auto III
 
|Grand Theft Auto III
 
|-
 
|-
|REminiscence
+
|[https://gta-asm.github.io/ San Andreas Unity]
|<span title="With Libretro">Multi-platform<sup>&Dagger;</sup></span>
+
|Windows, Linux, macOS, Android
|[http://cyxdown.free.fr/reminiscence/ 0.4.4]
+
|[https://github.com/GTA-ASM/SanAndreasUnity#download 3.2]
|{{}} ||{{✓}} ||{{}}
+
|{{}} ||{{✓}} ||{{~}}
|Flashback (Another World's spiritual sequel)
+
|Grand Theft Auto: San Andreas
 
|-
 
|-
 
!colspan="9"|FPS
 
!colspan="9"|FPS
Line 98: Line 114:
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Descent, Descent II
 
|Descent, Descent II
 +
|-
 +
|[https://docs.libretro.com/library/prboom/ PrBoom]
 +
|Multi-platform
 +
|[https://github.com/libretro/libretro-prboom Git]
 +
|{{✓}} ||? ||{{✓}}
 +
|Doom 1-2, Final Doom
 
|-
 
|-
 
|Shockolate
 
|Shockolate
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://github.com/Interrupt/systemshock/releases 0.6.0]
+
|[https://github.com/Interrupt/systemshock/releases 0.7.7]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
|System Shock: Enhanced Edition
+
|System Shock 1
 +
|-
 +
|[https://disenchant.net/tyrquake/ Tyrquake]
 +
|Multi-platform
 +
|[https://disenchant.net/git/tyrquake.git Git]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Quake 1
 
|-
 
|-
 
|[https://github.com/AxioDL/urde URDE]
 
|[https://github.com/AxioDL/urde URDE]
|Windows, macOS
+
|Linux, Windows, macOS
 
|[https://github.com/AxioDL/urde/releases Git]
 
|[https://github.com/AxioDL/urde/releases Git]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|Metroid Prime 1-3
 
|Metroid Prime 1-3
 +
|-
 +
|vitaQuake II
 +
|PlayStation Vita, Windows, Linux, macOS
 +
|[https://github.com/Rinnegatamante/vitaQuakeII Git], [http://vitadb.rinnegatamante.it/#/info/278 PS Vita]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Quake 2
 +
|-
 +
!colspan="9"|Platform
 +
|-
 +
|NXEngine <br/>nxengine-evo
 +
|Multi-platform
 +
|[http://nxengine.sourceforge.net 1.0.0.6] <br/>[https://github.com/nxengine/nxengine-evo/releases 2.6.4]
 +
|{{✓}} ||{{✗}} ||{{✓}}
 +
|Cave Story
 +
|-
 +
|rawgl
 +
|Multi-platform
 +
|[https://github.com/cyxx/rawgl/releases 0.2.1]
 +
|{{✗}} ||{{✓}} ||{{✓}}
 +
|Another World/Out of This World
 +
|-
 +
|REminiscence
 +
|<span title="With Libretro">Multi-platform<sup>&Dagger;</sup></span>
 +
|[http://cyxdown.free.fr/reminiscence/ 0.4.5]
 +
|{{✓}} ||{{✓}} ||{{✓}}
 +
|Flashback (Another World's spiritual sequel)
 +
|-
 +
|[http://www.bigorno.net/xrick/ xrick]
 +
|Multi-platform
 +
|[http://www.bigorno.net/xrick/download.html #021212]
 +
|{{✓}} ||{{✗}} ||{{✓}}
 +
|Rick Dangerous
 
|-
 
|-
 
!colspan="9"|Racing
 
!colspan="9"|Racing
Line 121: Line 181:
 
|NFSIISE
 
|NFSIISE
 
|Windows, Linux, macOS, <br/>ARM devices (Android)
 
|Windows, Linux, macOS, <br/>ARM devices (Android)
|[https://github.com/zaps166/NFSIISE/releases 1.2.4]
+
|[https://github.com/zaps166/NFSIISE/releases Git]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Need for Speed II: SE
 
|Need for Speed II: SE
|-
 
|OpenLGR
 
|Windows, Linux, macOS
 
|[https://github.com/james-knippes/openlgr Git]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Lego Racers
 
 
|-
 
|-
 
|OpenMC2
 
|OpenMC2
Line 136: Line 190:
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Midnight Club II
 
|Midnight Club II
|-
 
|[https://openswe1r.github.io/ OpenSWE1R]
 
|Windows, Linux, macOS
 
|[https://github.com/OpenSWE1R/openswe1r Git]
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|Star Wars Episode 1: Racer
 
 
|-
 
|-
 
|[https://yethiel.gitlab.io/RVDocs/ RVGL]
 
|[https://yethiel.gitlab.io/RVDocs/ RVGL]
 
|Windows, Linux, mobile
 
|Windows, Linux, mobile
|[https://rvgl.re-volt.io 18.0731a]
+
|[https://rvgl.re-volt.io 19.0430a]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Re-Volt
 
|Re-Volt
 
|-
 
|-
 
|[https://pyra-handheld.com/boards/threads/stunt-car-remake.79671/ stuntcarremake]
 
|[https://pyra-handheld.com/boards/threads/stunt-car-remake.79671/ stuntcarremake]
|Linux, OpenPandora <br/>Windows (Old)
+
|Linux, OpenPandora. <br/>Windows (Old).
 
|[https://repo.openpandora.org/?page=detail&app=stuntcarremake_ptitseb Build 07]
 
|[https://repo.openpandora.org/?page=detail&app=stuntcarremake_ptitseb Build 07]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Stunt Car Racer Remake (Windows remake of Stunt Car Racer on Amiga/AtariST)
 
|Stunt Car Racer Remake (Windows remake of Stunt Car Racer on Amiga/AtariST)
 +
|-
 +
|OpenLGR
 +
|Windows, Linux, macOS
 +
|[https://github.com/james-knippes/openlgr Git]
 +
|{{✗}} ||{{✗}} ||{{✗}}
 +
|Lego Racers
 +
|-
 +
|[https://openswe1r.github.io/ OpenSWE1R]
 +
|Windows, Linux, macOS
 +
|[https://github.com/OpenSWE1R/openswe1r Git]
 +
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|Star Wars Episode 1: Racer
 
|-
 
|-
 
!colspan="9"|RPG
 
!colspan="9"|RPG
 +
|-
 +
|[http://arx-libertatis.org/ Arx Libertatis]
 +
|Windows, Linux, macOS, FreeBSD
 +
|[https://github.com/arx/ArxLibertatis/releases 1.1.2-r1]
 +
|{{✗}} ||{{✓}} ||{{✓}}
 +
|Arx Fatalis
 
|-
 
|-
 
|[https://github.com/Interkarma/daggerfall-unity Daggerfall Unity]
 
|[https://github.com/Interkarma/daggerfall-unity Daggerfall Unity]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://www.dfworkshop.net/projects/daggerfall-unity/live-builds/ PreAlpha 0.5]
+
|[https://www.dfworkshop.net/projects/daggerfall-unity/live-builds/ PreAlpha 0.7]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|The Elder Scrolls II: Daggerfall
 
|The Elder Scrolls II: Daggerfall
 
|-
 
|-
|[http://www.gemrb.org/ gemrb]
+
|[http://www.gemrb.org/ GemRB]
 
|Multi-platform
 
|Multi-platform
 
|[https://github.com/gemrb/gemrb/releases 0.8.5]
 
|[https://github.com/gemrb/gemrb/releases 0.8.5]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Infinity Engine <br/>(Baldur's Gate series (1998–2001), Planescape: Torment, Icewind Dale series (2000–2002))
 
|Infinity Engine <br/>(Baldur's Gate series (1998–2001), Planescape: Torment, Icewind Dale series (2000–2002))
 +
|-
 +
|[https://makipl.github.io/OpenVIII/ OpenVIII]
 +
|Windows, Linux <br /><small>(Android, iOS planned)</small>
 +
|[https://github.com/MaKiPL/OpenVIII Git]
 +
|{{✗}} ||{{✓}} ||{{✗}}
 +
|Final Fantasy VIII
 
|-
 
|-
 
|[https://github.com/OpenSWE1R/openswe1r OpenMW]
 
|[https://github.com/OpenSWE1R/openswe1r OpenMW]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://openmw.org/downloads/ 0.44]
+
|[https://openmw.org/downloads/ 0.45.0]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|The Elder Scrolls III: Morrowind
 
|The Elder Scrolls III: Morrowind
Line 177: Line 249:
 
|[https://github.com/afritz1/OpenTESArena OpenTESArena]
 
|[https://github.com/afritz1/OpenTESArena OpenTESArena]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://github.com/afritz1/OpenTESArena/releases 0.8.0]
+
|[https://github.com/afritz1/OpenTESArena/releases 0.9.0]
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|The Elder Scrolls I: Arena
 
|The Elder Scrolls I: Arena
Line 188: Line 260:
 
|{{✗}} ||{{✓}} ||{{~}}
 
|{{✗}} ||{{✓}} ||{{~}}
 
|Age of Empires, AoE II (HD), Star Wars: Galactic Battlegrounds
 
|Age of Empires, AoE II (HD), Star Wars: Galactic Battlegrounds
 +
|-
 +
|[http://www.ta3d.org/home-en.php TA3D]
 +
|Windows, Linux, macOS
 +
|[https://github.com/zuzuf/TA3D/releases 0.6.0]
 +
|{{✗}} ||{{✗}} ||{{~}}
 +
|Total Annihilation
 
|-
 
|-
 
|[http://timjones.io/blog/tags/opensage/ OpenSAGE]
 
|[http://timjones.io/blog/tags/opensage/ OpenSAGE]
|Windows Linux, macOS
+
|Windows, Linux, macOS
|[https://github.com/OpenSAGE/OpenSAGE/releases 0.2.0]
+
|[https://github.com/OpenSAGE/OpenSAGE/releases 0.3.0]
|{{✗}} ||{{✓}} ||{{✗}}
+
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 
|EA's Command & Conquer games <br/>(C&C: Generals, C&C: Generals - Zero Hour) <br/>''Soon:'' The Battle for Middle-earth series (2004-2006), C&C 3 & expansion.
 
|EA's Command & Conquer games <br/>(C&C: Generals, C&C: Generals - Zero Hour) <br/>''Soon:'' The Battle for Middle-earth series (2004-2006), C&C 3 & expansion.
 
|-
 
|-
 
!colspan="9"|RTT
 
!colspan="9"|RTT
 +
|-
 +
|Syndicate Wars Port
 +
|Windows, Linux, macOS
 +
|[http://swars.vexillium.org/ 0.3]
 +
|{{✗}} ||{{✗}} ||{{✓}}
 +
|Syndicate Wars
 
|-
 
|-
 
|[http://freesynd.sourceforge.net/ FreeSynd]
 
|[http://freesynd.sourceforge.net/ FreeSynd]
|Windows Linux, macOS
+
|Windows, Linux, macOS
 
|[https://sourceforge.net/projects/freesynd/ 0.7.5]
 
|[https://sourceforge.net/projects/freesynd/ 0.7.5]
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|{{✗}} ||{{✗}} ||{{✗}}
 
|Syndicate (1993)
 
|Syndicate (1993)
|-
 
|Syndicate Wars Port
 
|Windows Linux, macOS
 
|[http://swars.vexillium.org/ 0.3]
 
|{{✗}} ||{{✗}} ||{{✓}}
 
|Syndicate Wars
 
 
|-
 
|-
 
!colspan="9"|TBS
 
!colspan="9"|TBS
Line 216: Line 294:
 
|{{✗}} ||{{~}} ||{{✓}}
 
|{{✗}} ||{{~}} ||{{✓}}
 
|Call to Power II
 
|Call to Power II
|-
 
|[https://www.civone.org/ CivOne]
 
|Windows, Linux, macOS
 
|[https://github.com/SWY1985/CivOne 0.1.0pre-alpha]
 
|{{✗}} ||{{✓}} ||{{✗}}
 
|Sid Meier's Civilization
 
 
|-
 
|-
 
|[https://openxcom.org/ OpenXcom]
 
|[https://openxcom.org/ OpenXcom]
Line 228: Line 300:
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|UFO: Enemy Unknown (X-Com: UFO Defense), X-COM: Terror From the Deep
 
|UFO: Enemy Unknown (X-Com: UFO Defense), X-COM: Terror From the Deep
 +
|-
 +
|[https://www.civone.org/ CivOne]
 +
|Windows, Linux, macOS
 +
|[https://github.com/SWY1985/CivOne Git]
 +
|{{✗}} ||{{✓}} ||{{✗}} <small>(WIP)</small>
 +
|Sid Meier's Civilization
 
|-
 
|-
 
!colspan="9"|Sim - Construction/Management
 
!colspan="9"|Sim - Construction/Management
Line 233: Line 311:
 
|[http://corsixth.com/ CorsixTH]
 
|[http://corsixth.com/ CorsixTH]
 
|Windows, Linux, macOS, BSD
 
|Windows, Linux, macOS, BSD
|[https://github.com/CorsixTH/CorsixTH/releases 0.62]
+
|[https://github.com/CorsixTH/CorsixTH/releases 0.63 Beta 1]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Theme Hospital
 
|Theme Hospital
Line 239: Line 317:
 
|[https://www.reddit.com/r/locomotion/ OpenLoco]
 
|[https://www.reddit.com/r/locomotion/ OpenLoco]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://github.com/OpenRCT2/OpenLoco/releases 18.02]
+
|[https://github.com/OpenRCT2/OpenLoco/releases 19.03]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Chris Sawyer's Locomotion
 
|Chris Sawyer's Locomotion
Line 245: Line 323:
 
|[https://openrct2.org/ OpenRCT2]
 
|[https://openrct2.org/ OpenRCT2]
 
|Windows, Linux, macOS
 
|Windows, Linux, macOS
|[https://github.com/OpenRCT2/OpenRCT2/releases 0.2.1]
+
|[https://github.com/OpenRCT2/OpenRCT2/releases 0.2.3]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|RollerCoaster Tycoon 2
 
|RollerCoaster Tycoon 2
Line 251: Line 329:
 
|[https://www.openttd.org/en/ OpenTTD]
 
|[https://www.openttd.org/en/ OpenTTD]
 
|Multi-platform
 
|Multi-platform
|[https://github.com/OpenTTD/OpenTTD/releases 1.8.0]
+
|[https://github.com/OpenTTD/OpenTTD/releases 1.9.1]
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|{{✗}} ||{{✓}} ||{{✓}}
 
|Transport Tycoon Deluxe
 
|Transport Tycoon Deluxe

Revision as of 05:36, 21 October 2019

Sometimes a full system emulator is overkill. This is especially true when a developer only wants to get one game (or a number of games that use the same engine) working. In that case, reimplementing that game alone would save more time than implementing the platform it runs on. These kinds of projects are common when abandonware has large communities; when the original developer has disbanded and can no longer support or update it, an effort is then made to get it running natively on newer versions of-- and/or entirely different-- operating systems and platforms.

  • When the developer only has a binary to work with (and not the source code), they recreate the engine rather than port it, hence the term game engine recreations (or alternatively game engine re-implementations). How the developers go about this process depends on their philosophy; they may opt to decompile the original executable and have their own program rely on the original until all of its functions have been remade, at which point the original binary is no longer needed. Alternatively, they can be remade based on a clean room design, in which the project implements the abstract features without having to disassemble the original, going by how components are expected to be used rather than how the game uses them.
  • In rare cases, games are released as open-source by the publishers themselves, allowing developers to perform a source port of the code. This skips the step of figuring out how the game works. The most common example that's often used is id Software's release of Doom in 1997. It led to so many ports being released that the community began to joke about what devices haven't gotten it running yet.

Some projects are implemented in ways that the original developer did not intend; for example, for a platform other than which publishers marketed it for. And they're not just limited to game engines either; Webamp is a JavaScript application that reimplements Winamp in the web browser. These projects are almost always open-source which also allows new programmers to fix bugs that could have been difficult to track down during development (alternatively, the bugs may be emulated to allow mods to continue to safely exploit them). When most of the effort is on programming, the project will usually require the original game's assets (such as files in the installation directory or ROMs) until those ever get remade. This lets the developers claim they aren't infringing the game's copyrights since the player must obtain the original to use it; if the game is still being sold, this could allow the publisher to even earn revenue from the project.

For a complete list of these projects, see Open Source Game Clones.

Multi game engine

Name Operating System(s) Latest Version Libretro Core Active Recommended Supported game(s)
Adventure
ResidualVM Multi-platform 0.3.1 3D adventure games (Grim Fandango, Escape from Monkey Island & Myst III: Exile)
ScummVM Multi-platform 2.0.0 Adventure games (LucasArts, Sierra, Activision, Humongous & more)
FPS
XLEngine Windows, Linux 0.1.0 Star Wars: Dark Forces, Daggerfall.
Later: Outlaws, Blood, Shadow Warrior.
RPG
EasyRPG Multi-platform 0.6.0 RPG Maker 2000/2003 games
Neko RPGXP Player Android 2.01 ~ RPG Maker XP/VX/VA/MV games
xoreos Windows, Linux, macOS 0.0.5 (WIP) BioWare's Aurora engine & derivatives
(BioWare's 7 PC/console RPGs, Sonic Chronicles: The Dark Brotherhood, The Witcher)
RTS
OpenRA Windows, Linux, macOS, BSD Git Early Westwood games (Command & Conquer, C&C: Red Alert, Dune 2000).
Soon: 2nd-gen C&C (C&C: Tiberian Sun).
Shoot 'em up
ReC98 Multi-platform Git (WIP) Touhou 1 - 5

Single game engine

Name Operating System(s) Latest Version Libretro Core Active Recommended Supported game(s)
OpenTomb Multi-platform Git Tomb Raider 1-5
OpenRW Linux, Windows, macOS, OpenBSD Git ~ Grand Theft Auto III
San Andreas Unity Windows, Linux, macOS, Android 3.2 ~ Grand Theft Auto: San Andreas
FPS
D2X-XL
DXX-Rebirth
Windows, Linux, macOS 1.18.74
0.60 Beta 2
Descent, Descent II
PrBoom Multi-platform Git ? Doom 1-2, Final Doom
Shockolate Windows, Linux, macOS 0.7.7 System Shock 1
Tyrquake Multi-platform Git Quake 1
URDE Linux, Windows, macOS Git (WIP) Metroid Prime 1-3
vitaQuake II PlayStation Vita, Windows, Linux, macOS Git, PS Vita Quake 2
Platform
NXEngine
nxengine-evo
Multi-platform 1.0.0.6
2.6.4
Cave Story
rawgl Multi-platform 0.2.1 Another World/Out of This World
REminiscence Multi-platform 0.4.5 Flashback (Another World's spiritual sequel)
xrick Multi-platform #021212 Rick Dangerous
Racing
CannonBall Multi-platform 0.3 OutRun
NFSIISE Windows, Linux, macOS,
ARM devices (Android)
Git Need for Speed II: SE
OpenMC2 Linux, macOS (Both on Wine) 0.0.2 Midnight Club II
RVGL Windows, Linux, mobile 19.0430a Re-Volt
stuntcarremake Linux, OpenPandora.
Windows (Old).
Build 07 Stunt Car Racer Remake (Windows remake of Stunt Car Racer on Amiga/AtariST)
OpenLGR Windows, Linux, macOS Git Lego Racers
OpenSWE1R Windows, Linux, macOS Git (WIP) Star Wars Episode 1: Racer
RPG
Arx Libertatis Windows, Linux, macOS, FreeBSD 1.1.2-r1 Arx Fatalis
Daggerfall Unity Windows, Linux, macOS PreAlpha 0.7 The Elder Scrolls II: Daggerfall
GemRB Multi-platform 0.8.5 Infinity Engine
(Baldur's Gate series (1998–2001), Planescape: Torment, Icewind Dale series (2000–2002))
OpenVIII Windows, Linux
(Android, iOS planned)
Git Final Fantasy VIII
OpenMW Windows, Linux, macOS 0.45.0 The Elder Scrolls III: Morrowind
OpenTESArena Windows, Linux, macOS 0.9.0 (WIP) The Elder Scrolls I: Arena
RTS
openage Windows, Linux, macOS, BSD 0.3.0 ~ Age of Empires, AoE II (HD), Star Wars: Galactic Battlegrounds
TA3D Windows, Linux, macOS 0.6.0 ~ Total Annihilation
OpenSAGE Windows, Linux, macOS 0.3.0 (WIP) EA's Command & Conquer games
(C&C: Generals, C&C: Generals - Zero Hour)
Soon: The Battle for Middle-earth series (2004-2006), C&C 3 & expansion.
RTT
Syndicate Wars Port Windows, Linux, macOS 0.3 Syndicate Wars
FreeSynd Windows, Linux, macOS 0.7.5 Syndicate (1993)
TBS
civctp2 Windows, Linux, Pandora, Pyra 2010-04-01
(ctp2 for Linux/Pandora/Pyra])
~ Call to Power II
OpenXcom Windows, Linux, macOS Git UFO: Enemy Unknown (X-Com: UFO Defense), X-COM: Terror From the Deep
CivOne Windows, Linux, macOS Git (WIP) Sid Meier's Civilization
Sim - Construction/Management
CorsixTH Windows, Linux, macOS, BSD 0.63 Beta 1 Theme Hospital
OpenLoco Windows, Linux, macOS 19.03 Chris Sawyer's Locomotion
OpenRCT2 Windows, Linux, macOS 0.2.3 RollerCoaster Tycoon 2
OpenTTD Multi-platform 1.9.1 Transport Tycoon Deluxe