Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Game engine recreation

From Wikipedia, the free encyclopedia
icon
This articleneeds additional citations forverification. Please helpimprove this article byadding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Game engine recreation" – news ·newspapers ·books ·scholar ·JSTOR
(November 2015) (Learn how and when to remove this message)
Type of video game engine remastering process

Game engine recreation is a type of videogame engine remastering process whereby a new game engine isrewritten from scratch as aclone of the original with the ability to load the original game's data files such asmusic,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 thislist of game engine recreations).

Motivation

[edit]

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

Methods

[edit]

Top down

[edit]
See also:High-level emulation

When game engine recreations are made in atop 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 isOpenRA based on specifications contributed by the community byclean-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 theTotal Annihilation engine remakeSpring 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, this approach typically yields working code more quickly, and the resulting source code is less tied to a single game, allowing it to be reused as a general engine for other games.

Bottom up

[edit]
See also:List of commercial video games with available source code § Games with reconstructed source code

UnlikeTop 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 withreverse engineering of the originaldis-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 areCSBWin orOpenTTD. 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

[edit]
See also:List of commercial video games with available source code

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

Alternatives

[edit]

Emulation of classical systems or operating systems is an alternative to an engine recreation; for instanceDOSBox is a notable emulator of thePC/MS-DOS environment.Static recompilation is another approach based on the original binaryexecutable, potentially leading to better performance than emulation; an example is the 2014ARM architecture version ofStarCraft for thePandora.[7][8][9] Another alternative aresource ports for the rare cases that the source code is available; examples areJagged Alliance 2[10] orHomeworld[11][12][13] (more examples in theList of commercial video games with available source code).

See also

[edit]

References

[edit]
  1. ^"OpenRA/OpenRA".GitHub. Retrieved2018-08-30.
  2. ^Development-Goals openra ongithub.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. RetrievedJuly 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. Retrieved2014-03-25.
  8. ^notaz (2014-03-04)."StarCraft". repo.openpandora.org. Retrieved2014-03-26.
  9. ^notaz (2014-03-04)."Starcraft". openpandora.org. Archived fromthe original on 2015-12-10. Retrieved2014-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 fromthe original on January 8, 2013. Retrieved2012-12-23.
  11. ^Largent, Andy (2003-10-08)."Homeworld Source Code Released".Inside Mac Games. Archived fromthe original on 2013-10-12. Retrieved2011-01-10.
  12. ^"Archived copy". Archived fromthe original on 2012-08-04. Retrieved2014-03-30.{{cite web}}: CS1 maint: archived copy as title (link)
  13. ^pandorapress staff (2011-06-23)."Game of the Week #3 – Homeworld SDL". pandorapress.net. Archived from the original on June 26, 2011. Retrieved2013-04-24.[...] released port of HomeworldSDL. [...]enables your Pandora to experience the excellent work done by the guys at HomeworldSDL.


Proprietary
1980s
1990s
2000s
2010s
2020s
Free and
open-source
1970s
1990s
2000s
2010s
2020s
Retrieved from "https://en.wikipedia.org/w/index.php?title=Game_engine_recreation&oldid=1324514647"
Category:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp