Game engine recreation

Last updated

Game engine recreation is a type of video game engine remastering process whereby a new game engine is written from scratch as a clone of the original with the ability to load the original game's data files such as music, textures, scripts, shaders, levels, and more. The new engine should read these data files and, in theory, load and understand them in a way that is indistinguishable from the original. The result of a proper engine clone is often the ability to play a game on modern systems that the old game could no longer run on. It also opens the possibility of community collaboration, as many engine remake projects tend to be open source. Game engine recreation can be beneficial to game publishers because the legal use of a re-creation still requires the original data files, as a player must still purchase the original game in order to legally play the re-created game (as detailed in this list of game engine recreations).

Contents

Motivation

Game engine recreations are made to allow the usage of classical games with newer operating system versions, recent hardware or even completely different operating systems than originally intended. Another motivation is the ability to fix engine bugs which is often hard or impossible with the original engines (with notable exceptions, see community patch) once a software has become unsupported abandonware, with the source code not available.

Methods

Top down

When game engine recreations are made in a top down development methodology, in the first step the general game's functionality is programmed and the structure is defined. Then, in later steps, the resulting engine is adapted to the specific detail behaviour of the original game, often by reverse engineering, debugging and profiling the original. An example is OpenRA based on specifications contributed by the community by clean-room re-implementations [1] without dis-assembling the original executable, which result in game engines whose behavior differs from the original. [2] Another example is the Total Annihilation engine remake Spring Engine , which resulted in being used for many more games. Typically, this approach results in an approximation of the original behaviour only and not a "clock cycle wise" identical behaviour. On the positive side, running code exists faster, and the finally resulting source code is less specifically tied to a specific, single game and can be reused as a general game engine for other games.

Bottom up

Unlike Top down game engine recreations, bottom up dis-assembled/decompiled versions for a specific game are often able to replicate the behaviour of the original exactly. In these cases, the game core is recreated bottom up with reverse engineering of the original dis-assembled binary executable, CPU instruction for instruction. In the development phase this has the disadvantage that for a long time no running prototype exists. Also on the negative side, the resulting code is very specifically tied to this single game, often ugly ("pseudo-assembly code" [3] [4] ), and can hardly be reused as general game engine. Examples are CSBWin or OpenTTD . Most often, the result is also not called "game engine" but "game recreation" or "game clone". MAME is an example of a video game engine emulation project which also follows this philosophy for accurate representation of the games.

Source code ports

Occasionally, as was the case with some of the engines/game cores in ScummVM, the original developers have helped the projects by supplying the original source code (those can be then called source ports). This is the best case, optimal for accuracy and minimizing the effort. An example is Beneath a Steel Sky . [5] [6]

Alternatives

Emulation of classical systems or operating systems is an alternative to an engine recreation; for instance DOSBox is a notable emulator of the PC/MS-DOS environment. Static recompilation is another approach based on the original binary executable, potentially leading to better performance than emulation; an example is the 2014 ARM architecture version of StarCraft for the Pandora. [7] [8] [9] Another alternative are source ports for the seldom cases that the source code is available; examples are Jagged Alliance 2 [10] or Homeworld [11] [12] [13] (more examples in the List of commercial video games with available source code).

See also

Related Research Articles

Simple DirectMedia Layer

Simple DirectMedia Layer (SDL) is a cross-platform software development library designed to provide a hardware abstraction layer for computer multimedia hardware components. Software developers can use it to write high-performance computer games and other multimedia applications that can run on many operating systems such as Android, iOS, Linux, macOS, and Windows.

SCUMM Game engine developed by LucasArts

Script Creation Utility for Maniac Mansion (SCUMM) is a video game engine developed at Lucasfilm Games, later renamed LucasArts, to ease development on their graphic adventure game Maniac Mansion (1987). It was subsequently used as the engine for later LucasArts adventure games.

MAME Arcade game emulation software

MAME is a free and open-source emulator designed to recreate the hardware of arcade game systems in software on modern personal computers and other platforms. Its intention is to preserve gaming history by preventing vintage games from being lost or forgotten. It does this by emulating the inner workings of the emulated arcade machines; the ability to actually play the games is considered "a nice side effect". Joystiq has listed MAME as an application that every Windows and Mac gamer should have.

In computer science, dynamic recompilation is a feature of some emulators and virtual machines, where the system may recompile some part of a program during execution. By compiling during execution, the system can tailor the generated code to reflect the program's run-time environment, and potentially produce more efficient code by exploiting information that is not available to a traditional static compiler.

ScummVM

Script Creation Utility for Maniac Mansion Virtual Machine (ScummVM) is a set of game engine recreations. Originally designed to play LucasArts adventure games that use the SCUMM system, it also supports a variety of non-SCUMM games by companies like Revolution Software and Adventure Soft. It was originally written by Ludvig Strigeus. Released under the terms of the GNU General Public License, ScummVM is free software.

In computing, binary translation is a form of binary recompilation where sequences of instructions are translated from a source instruction set to the target instruction set. In some cases such as instruction set simulation, the target instruction set may be the same as the source instruction set, providing testing and debugging features such as instruction trace, conditional breakpoints and hot spot detection.

Video game remake Closely adapted game

A video game remake is a video game closely adapted from an earlier title, usually for the purpose of modernizing a game with updated graphics for newer hardware and gameplay for contemporary audiences. Typically, a remake of such game software shares essentially the same title, fundamental gameplay concepts, and core story elements of the original game. However, some aspects of the original game may have been changed.

A source port is a software project based on the source code of a game engine that allows the game to be played on operating systems or computing platforms with which the game was not originally compatible.

VisualBoyAdvance is a free emulator of the Game Boy, Game Boy Color, and Game Boy Advance handheld game consoles as well as of Super Game Boy and Super Game Boy 2.

Open-source video game Video game whose source code is open-source software

An open-source video game, or simply an open-source game, is a video game whose source code is open-source. They are often freely distributable and sometimes cross-platform compatible.

Linux gaming refers to playing video games on the Linux operating system.

Pandora (console) Handheld game console

The Pandora is a handheld game console and mobile personal computer originally released in 2010. It is designed to take advantage of existing free and open-source software and to be a target for homebrew development. It includes several features that no handheld game consoles have previously had, making it a cross between a handheld game console and a subnotebook. It is developed and produced by OpenPandora, which is made up of former distributors and community members of the GP32 and GP2X handhelds. Until 2013 multiple batches of slightly updated Pandora variants were produced. In 2014 the development of a redesigned and upgraded successor, called DragonBox Pyra, was started.

Emulator Hardware or software that enables one computer system to behave like another computer system

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

ResidualVM is a cross-platform computer program comprising 3D game engine recreations with a common graphical user interface. It supports Grim Fandango, Myst III: Exile and The Longest Journey.

PPSSPP PSP emulator

PPSSPP is a free and open-source PSP emulator for Windows, macOS, Linux, iOS, Android, Nintendo WiiU, Nintendo Switch, BlackBerry 10, MeeGo, Pandora, Xbox Series X, Xbox Series S, and Symbian with an increased focus on speed and portability. It was first released to the public on November 1, 2012, licensed under the GNU GPLv2 or later. The PPSSPP project was created by Henrik Rydgård, one of the co-founders of the Dolphin emulator.

asm.js is a subset of JavaScript designed to allow computer software written in languages such as C to be run as web applications while maintaining performance characteristics considerably better than standard JavaScript, which is the typical language used for such applications.

References

  1. "OpenRA/OpenRA". GitHub. Retrieved 2018-08-30.
  2. Development-Goals openra on github.com
  3. Release: Starcraft on pyra-handheld.com "As you can see it doesn't look much different from x86 disassembly, the only difference is that you can compile it for other 32bit archs (there is no way it would work on 64bit.."
  4. Chaos Strikes Back for Windows (and Linux, MacOS X, Pocket PC) on Dungeon Master Encyclopedia "About 120,000 lines of pseudo-assembly language. Crazy thing to do. But it works."
  5. "Latest Developments". ScummVM.org. August 2, 2012. Retrieved July 14, 2013. Support for Beneath a Steel Sky, made possible thanks to Revolution Software supplying us with the original assembly source code!
  6. Source code "Source code for Beneath a Steel Sky in Assembly language (415,225 bytes) xxxx" (2005)
  7. Steinlechner, Peter (2014-03-10). "Starcraft für ARM-Handheld kompiliert" (in German). golem.de. Retrieved 2014-03-25.
  8. notaz (2014-03-04). "StarCraft". repo.openpandora.org. Retrieved 2014-03-26.
  9. notaz (2014-03-04). "Starcraft". openpandora.org. Retrieved 2014-03-29. The "no source, no port" rule is not completely true, you can get something similar (but not the same) as a port through static recompilation. Similar stuff was done several times by M-HT for some DOS games. The game was also converted for Android with somewhat similar approach.
  10. Burnes, Andrew (2004-02-25). "Jagged Alliance 2 Source Code To Be Bundled With Wildfire". ign.com. Archived from the original on January 8, 2013. Retrieved 2012-12-23.
  11. Largent, Andy (2003-10-08). "Homeworld Source Code Released". Inside Mac Games. Archived from the original on 2013-10-12. Retrieved 2011-01-10.
  12. "Archived copy". Archived from the original on 2012-08-04. Retrieved 2014-03-30.CS1 maint: archived copy as title (link)
  13. pandorapress staff (2011-06-23). "Game of the Week #3 – Homeworld SDL". pandorapress.net. Retrieved 2013-04-24. [...] released port of HomeworldSDL. [...]enables your Pandora to experience the excellent work done by the guys at HomeworldSDL.