Game engine recreations and source ports

From Emulation General Wiki
Revision as of 15:04, 27 September 2020 by The rook (talk | contribs) (Multi game engine)
Jump to navigation Jump to search

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. Some engines come about simply because they were inspired by the original game, and the programmer felt confident enough that no reverse engineering was necessary to make an engine that does the same thing.
  • 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 old 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 the sake of brevity, most of these projects often refer to themselves under some variety of fan remakes. The External links section has lists for a number of known and available projects.

Contents

Multi game engine

Name Operating System(s) Latest Version Libretro Core Active Recommended Supported game(s)
Action-adventure (3rd-person)
OpenTomb       Git Tomb Raider 1-5
OpenLaraCite error: Closing </ref> missing for <ref> tag Doom I-II, Final Doom, Heretic, Hexen: Beyond Heretic, Chex Quest I-III, Strife: Quest for the Sigil, Hacx: Twitch 'n Kill
Platform
Commander Genius         2.4.5.1 Commander Keen in Invasion of the Vorticons, Commander Keen in Keen Dreams, Commander Keen in Goodbye Galaxy, Commander Keen in Aliens Ate My Babysitter
Racing
OpenNFS       0.3 ~ Need for Speed I-III, Need for Speed: High Stakes, Need for Speed: Porsche Unleashed, Need for Speed: Hot Pursuit 2
RPG
EasyRPG Multi-platform 0.8 RPG Maker 2000/2003 games
GemRB           0.8.5 Infinity Engine
(Baldur's Gate series (1998–2001), Planescape: Torment, Icewind Dale series (2000–2002))
Neko RPGXP Player   2.01 ~ RPG Maker XP/VX/VA/MV games
xoreos       0.0.5 (WIP) BioWare's Aurora engine & derivatives
(BioWare's 7 PC/console RPGs, Sonic Chronicles: The Dark Brotherhood, The Witcher)
RTS
openage         0.3.0 ~ Age of Empires, AoE II (HD), Star Wars: Galactic Battlegrounds
OpenRA         Git Early Westwood games (Command & Conquer, C&C: Red Alert, Dune 2000).
Soon: 2nd-gen C&C (C&C: Tiberian Sun).
OpenSAGE       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.
Shoot 'em up
ReC98 Multi-platform Git (WIP) Touhou 1 - 5 (PC-98)

Single game engine

Name Platform(s) Latest Version Libretro Core Active Recommended Supported game(s)
Action-adventure
OpenJK       Git ~ Star Wars Jedi Knight II: Jedi Outcast, Star Wars Jedi Knight: Jedi Academy
Adventure
The Ur-Quan Masters         0.7.0 Star Control II
FPS
Aleph One       1.2.1 Marathon 1-2, Marathon Infinity
BStone       1.2.8 Blake Stone: Aliens of Gold, Blake Stone: Planet Strike
dhewm3         1.5.1 Doom 3 (Original)
Doom64 EX       2.5 Doom 64 (Original)
D2X-XL
DXX-Rebirth
      1.18.74
0.60 Beta 2
Descent, Descent II
ECWolf         1.3.3 Wolfenstein 3D, Spear of Destiny, Super 3D Noah’s Ark
EDuke32         [1] Duke Nukem 3D
Hammer of Thyrion       1.5.9 Hexen II
ioquake3       1.36 Quake III: Arena
iortcw       1.51 ~ Return to Castle Wolfenstein
NBlood     Git Blood
OpenMoHAA     [2] Medal of Honour: Allied Assault
PrBoom         Git ~[N 1] Doom 1-2, Final Doom
Quakespasm
vkQuake[N 2]
      0.93.2
1.04.1
Quake 1
RBDOOM-3-BFG     1.2.0 Doom 3 (BFG Edition)
Rise of the Triad for Linux       1.1.2 ~ Rise of the Triad: Dark War
Shockolate         0.7.7 System Shock 1
The Force Engine   0.01.006 (WIP) Star Wars: Dark Forces, Outlaws
Tyrquake         Git Quake 1
vitaQuake II         Git, PS Vita Quake 2
Xash3D       0.19.2 Half-Life 1
Yamagi Quake II         7.43 Quake 2
Platform
Alive     Git Oddworld: Abe's Oddysee, Oddworld: Abe's Exoddus
NXEngine
nxengine-evo
      1.0.0.6
2.6.4
Cave Story
OpenJazz             20190106 ~ Jazz Jackrabbit 1
rawgl       0.2.1 Another World/Out of This World
REminiscence     0.4.5 Flashback (Another World's spiritual sequel)
Rigel Engine         0.6.1 Duke Nukem II
SDLPoP       1.2.1 Prince of Persia (1989)
Super Mario 64 PC Port     sm64-port and sm64ex Builder
sm64nx Builder
Super Mario 64 (N64)
xrick           #021212 Rick Dangerous
Racing
CannonBall           0.3 OutRun
NFSIISE         Git Need for Speed II: SE
OpenLGR       Git Lego Racers
OpenMC2     (via Wine) 0.0.2 Midnight Club II
OpenSWE1R       Git (WIP) Star Wars Episode 1: Racer
RVGL           20.0430a Re-Volt
stuntcarremake[N 3]       Build 08 Stunt Car Racer (Amiga / AtariST)
RPG
Arx Libertatis         1.1.2-r1 Arx Fatalis
Daggerfall Unity       Alpha 0.10.25a The Elder Scrolls II: Daggerfall
DevilutionX             1.0.1 Diablo
OpenVIII     Git Final Fantasy VIII
OpenDiablo2     Git Diablo II
OpenMW       0.46.0 The Elder Scrolls III: Morrowind
OpenTESArena       0.11.0 (WIP) The Elder Scrolls I: Arena
RTS
OpenDUNE         0.9 Dune II: The Building of a Dynasty
TA3D       0.6.0 ~ Total Annihilation
RTT
FreeSynd       0.7.5 Syndicate (1993)
Syndicate Wars Port       0.3 Syndicate Wars
TBS
civctp2       Pyra 2010-04-01
(ctp2 for Linux/Pandora/Pyra])
~ Call to Power II
CivOne       Git (WIP) Sid Meier's Civilization
OpenXcom       Git UFO: Enemy Unknown (X-Com: UFO Defense), X-COM: Terror From the Deep
Sandbox
OpenRW         Git ~ Grand Theft Auto III
re3     1.0.2934 Grand Theft Auto III
San Andreas Unity         3.3 ~ Grand Theft Auto: San Andreas
Sim - City-building
CaesarIA           0.5 (2016) Caesar III
Julius
Augustus (Gameplay changes)
          1.4.1
1.4.1
Caesar III
Sim - Construction/Management
CorsixTH         0.63 Beta 1 Theme Hospital
OpenLoco       19.03 Chris Sawyer's Locomotion
OpenRCT2       0.2.3 RollerCoaster Tycoon 2
OpenTTD       1.9.1 Transport Tycoon Deluxe

Notes

  1. PrBoom-plus is still active
  2. vkQuake is based on Quakespasm, but uses Vulkan instead of OpenGL for rendering
  3. Based on Stunt Car Racer Remake for Windows

External links

Curated Lists:

News:

  • GamingOnLinux.com (For the latest news on releases and updates of game recreations and source ports that work on Linux)
  • Reddit feed (Aggregation quality is a little bit spotty. You have to wade through the news posts a bit for the relevant software.)
  • List of Open Source Games on Reddit (Thread by u/AMD_CEO. Wed Jul 1, 2020. Had added recommendations to links also seen above.)