Knowledge (XXG)

Game engine recreation

Source 📝

156:, 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 22: 391: 207:, 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 600:
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
257:
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
229:
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.
248:
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
376: 291: 239: 466:"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.." 615: 753: 695: 225:, which resulted in being used for many more games. Typically, this approach results in an approximation of the original behaviour only and not a " 172:
versions, recent hardware or even completely different operating systems than originally intended. Another motivation is the ability to fix engine
812: 39: 215:
without dis-assembling the original executable, which result in game engines whose behavior differs from the original. Another example is the
788: 641: 86: 619: 278:
is an example of a video game engine emulation project which also follows this philosophy for accurate representation of the games.
105: 583: 58: 746: 510:
Support for Beneath a Steel Sky, made possible thanks to Revolution Software supplying us with the original assembly source code!
539: 800: 404: 157: 65: 1521: 43: 1471: 1318: 1084: 204: 1617: 923: 817: 72: 1668: 783: 739: 723:
released port of HomeworldSDL. enables your Pandora to experience the excellent work done by the guys at HomeworldSDL.
263: 54: 32: 1248: 670: 461: 1188: 1034: 847: 1263: 1506: 1351: 1476: 710: 1627: 1541: 1501: 1228: 1198: 1152: 1147: 1112: 1064: 1009: 832: 807: 766: 561: 338: 240:
List of commercial video games with available source code § Games with reconstructed source code
198: 153: 79: 1572: 1421: 1356: 1253: 1127: 1117: 1104: 1024: 918: 310: 250: 325:
of classical systems or operating systems is an alternative to an engine recreation; for instance
1426: 1094: 963: 908: 396: 274:. Most often, the result is also not called "game engine" but "game recreation" or "game clone". 216: 145: 522: 1551: 1173: 1014: 968: 689: 649: 365: 356: 259: 212: 133: 1278: 1243: 1054: 645: 346: 169: 137: 1592: 1536: 1486: 1461: 1392: 1304: 1283: 1238: 1193: 1137: 1132: 1079: 953: 948: 177: 176:
which is often hard or impossible with the original engines (with notable exceptions, see
173: 141: 308:). This is the best case, optimal for accuracy and minimizing the effort. An example is 1643: 1142: 1019: 587: 129: 1662: 1546: 1531: 1496: 1466: 1361: 1004: 994: 984: 943: 878: 446: 423: 221: 1384: 1089: 1069: 898: 481:"About 120,000 lines of pseudo-assembly language. Crazy thing to do. But it works." 345:, potentially leading to better performance than emulation; an example is the 2014 254: 168:
Game engine recreations are made to allow the usage of classical games with newer
1441: 1366: 1074: 958: 928: 888: 778: 762: 360: 305: 301: 287: 226: 181: 136:
of the original with the ability to load the original game's data files such as
125: 21: 526:"Source code for Beneath a Steel Sky in Assembly language (415,225 bytes) xxxx" 1607: 1374: 1213: 1049: 933: 450: 386: 342: 300:, the original developers have helped the projects by supplying the original 1456: 1451: 1400: 1335: 1299: 1258: 1223: 1218: 1168: 1059: 1044: 999: 989: 938: 893: 883: 852: 371: 351: 1516: 674: 1446: 1379: 1273: 1183: 1178: 1099: 1039: 913: 857: 322: 492: 1622: 1582: 1577: 1567: 1526: 1491: 1431: 1268: 1233: 1122: 1029: 903: 822: 496: 297: 270: 731: 1612: 1597: 1587: 1511: 1416: 1203: 363:
for the seldom cases that the source code is available; examples are
334: 330: 326: 296:
Occasionally, as was the case with some of the engines/game cores in
208: 149: 476: 1208: 862: 262:"), and can hardly be reused as general game engine. Examples are 1481: 1436: 275: 735: 1602: 477:
Chaos Strikes Back for Windows (and Linux, MacOS X, Pocket PC)
15: 616:"Jagged Alliance 2 Source Code To Be Bundled With Wildfire" 377:
List of commercial video games with available source code
292:
List of commercial video games with available source code
211:
based on specifications contributed by the community by
1636: 1560: 1409: 1344: 1328: 1317: 1292: 1161: 977: 871: 840: 831: 180:) once a software has become unsupported, with the 46:. Unsourced material may be challenged and removed. 341:is another approach based on the original binary 128:remastering process whereby a new game engine is 747: 118:Type of video game engine remastering process 8: 203:When game engine recreations are made in a 1325: 837: 754: 740: 732: 106:Learn how and when to remove this message 540:"Starcraft für ARM-Handheld kompiliert" 415: 694:: CS1 maint: archived copy as title ( 687: 711:"Game of the Week #3 – Homeworld SDL" 7: 44:adding citations to reliable sources 538:Steinlechner, Peter (2014-03-10). 14: 709:pandorapress staff (2011-06-23). 586:. openpandora.org. Archived from 642:"Homeworld Source Code Released" 389: 205:top down development methodology 20: 479:on Dungeon Master Encyclopedia 405:List of game engine recreations 158:list of game engine recreations 31:needs additional citations for 1: 1472:Lightweight Java Game Library 614:Burnes, Andrew (2004-02-25). 329:is a notable emulator of the 213:clean-room re-implementations 818:List of visual novel engines 640:Largent, Andy (2003-10-08). 784:First-person shooter engine 1685: 359:. Another alternative are 304:(those can be then called 285: 237: 196: 774: 618:. ign.com. Archived from 349:architecture version of 55:"Game engine recreation" 796:Game engine recreation 564:. repo.openpandora.org 375:(more examples in the 122:Game engine recreation 1507:Platinum Arts Sandbox 1352:Adventure Game Studio 542:(in German). golem.de 493:"Latest Developments" 464:on pyra-handheld.com 1153:Visual3D Game Engine 808:Game creation system 582:notaz (2014-03-04). 560:notaz (2014-03-04). 339:Static recompilation 199:High-level emulation 40:improve this article 1422:Blender Game Engine 1254:Pixel Game Maker MV 311:Beneath a Steel Sky 251:reverse engineering 124:is a type of video 1669:Video game engines 1427:Bork3D Game Engine 713:. pandorapress.net 622:on January 8, 2013 462:Release: Starcraft 397:Video games portal 217:Total Annihilation 132:from scratch as a 1656: 1655: 1652: 1651: 1552:Wintermute Engine 1313: 1312: 1174:Amazon Lumberyard 969:Zillions of Games 447:Development-Goals 366:Jagged Alliance 2 282:Source code ports 116: 115: 108: 90: 1676: 1326: 1279:UbiArt Framework 1244:Nvidia GameWorks 838: 756: 749: 742: 733: 727: 726: 719: 718: 706: 700: 699: 693: 685: 683: 682: 673:. Archived from 667: 661: 660: 658: 657: 648:. Archived from 646:Inside Mac Games 637: 631: 630: 628: 627: 611: 605: 604: 596: 595: 579: 573: 572: 570: 569: 557: 551: 550: 548: 547: 535: 529: 520: 514: 513: 506: 504: 499:. August 2, 2012 489: 483: 474: 468: 459: 453: 444: 438: 437: 435: 434: 420: 399: 394: 393: 392: 253:of the original 170:operating system 111: 104: 100: 97: 91: 89: 48: 24: 16: 1684: 1683: 1679: 1678: 1677: 1675: 1674: 1673: 1659: 1658: 1657: 1648: 1632: 1556: 1537:Thousand Parsec 1487:Open Wonderland 1462:Irrlicht Engine 1405: 1340: 1320: 1309: 1305:Unreal Engine 5 1288: 1284:Unreal Engine 4 1239:Luminous Engine 1194:Creation Engine 1157: 1138:Unreal Engine 3 1133:Unreal Engine 2 973: 954:Virtual Theatre 949:Unreal Engine 1 867: 827: 770: 760: 730: 716: 714: 708: 707: 703: 686: 680: 678: 671:"Archived copy" 669: 668: 664: 655: 653: 639: 638: 634: 625: 623: 613: 612: 608: 593: 591: 581: 580: 576: 567: 565: 559: 558: 554: 545: 543: 537: 536: 532: 521: 517: 502: 500: 491: 490: 486: 475: 471: 460: 456: 445: 441: 432: 430: 424:"OpenRA/OpenRA" 422: 421: 417: 413: 395: 390: 388: 385: 320: 294: 284: 242: 236: 201: 195: 190: 184:not available. 178:community patch 166: 119: 112: 101: 95: 92: 49: 47: 37: 25: 12: 11: 5: 1682: 1680: 1672: 1671: 1661: 1660: 1654: 1653: 1650: 1649: 1647: 1646: 1644:Open 3D Engine 1640: 1638: 1634: 1633: 1631: 1630: 1625: 1620: 1615: 1610: 1605: 1600: 1595: 1590: 1585: 1580: 1575: 1570: 1564: 1562: 1558: 1557: 1555: 1554: 1549: 1544: 1539: 1534: 1529: 1524: 1519: 1514: 1509: 1504: 1499: 1494: 1489: 1484: 1479: 1474: 1469: 1464: 1459: 1454: 1449: 1444: 1439: 1434: 1429: 1424: 1419: 1413: 1411: 1407: 1406: 1404: 1403: 1398: 1390: 1382: 1377: 1372: 1364: 1359: 1354: 1348: 1346: 1342: 1341: 1339: 1338: 1332: 1330: 1323: 1315: 1314: 1311: 1310: 1308: 1307: 1302: 1296: 1294: 1290: 1289: 1287: 1286: 1281: 1276: 1271: 1266: 1261: 1256: 1251: 1246: 1241: 1236: 1231: 1226: 1221: 1216: 1211: 1206: 1201: 1196: 1191: 1186: 1181: 1176: 1171: 1165: 1163: 1159: 1158: 1156: 1155: 1150: 1145: 1143:Vicious Engine 1140: 1135: 1130: 1125: 1120: 1115: 1110: 1102: 1097: 1092: 1087: 1082: 1077: 1072: 1067: 1062: 1057: 1052: 1047: 1042: 1037: 1032: 1027: 1022: 1020:Essence Engine 1017: 1012: 1007: 1002: 997: 992: 987: 981: 979: 975: 974: 972: 971: 966: 961: 956: 951: 946: 941: 936: 931: 926: 924:Pie in the Sky 921: 916: 911: 906: 901: 896: 891: 886: 881: 875: 873: 869: 868: 866: 865: 860: 855: 850: 844: 842: 835: 829: 828: 826: 825: 820: 815: 810: 805: 804: 803: 793: 792: 791: 781: 775: 772: 771: 761: 759: 758: 751: 744: 736: 729: 728: 701: 662: 632: 606: 574: 552: 530: 515: 484: 469: 454: 439: 414: 412: 409: 408: 407: 401: 400: 384: 381: 319: 316: 283: 280: 235: 232: 219:engine remake 194: 191: 189: 186: 165: 162: 117: 114: 113: 28: 26: 19: 13: 10: 9: 6: 4: 3: 2: 1681: 1670: 1667: 1666: 1664: 1645: 1642: 1641: 1639: 1635: 1629: 1626: 1624: 1621: 1619: 1616: 1614: 1611: 1609: 1606: 1604: 1601: 1599: 1596: 1594: 1591: 1589: 1586: 1584: 1581: 1579: 1576: 1574: 1571: 1569: 1566: 1565: 1563: 1559: 1553: 1550: 1548: 1547:Vassal Engine 1545: 1543: 1540: 1538: 1535: 1533: 1532:Spring Engine 1530: 1528: 1525: 1523: 1520: 1518: 1515: 1513: 1510: 1508: 1505: 1503: 1500: 1498: 1497:Papervision3D 1495: 1493: 1490: 1488: 1485: 1483: 1480: 1478: 1475: 1473: 1470: 1468: 1467:jMonkeyEngine 1465: 1463: 1460: 1458: 1455: 1453: 1450: 1448: 1445: 1443: 1440: 1438: 1435: 1433: 1430: 1428: 1425: 1423: 1420: 1418: 1415: 1414: 1412: 1408: 1402: 1399: 1397: 1395: 1391: 1389: 1387: 1383: 1381: 1378: 1376: 1373: 1371: 1369: 1365: 1363: 1362:Crystal Space 1360: 1358: 1355: 1353: 1350: 1349: 1347: 1343: 1337: 1334: 1333: 1331: 1327: 1324: 1322: 1316: 1306: 1303: 1301: 1298: 1297: 1295: 1291: 1285: 1282: 1280: 1277: 1275: 1272: 1270: 1267: 1265: 1262: 1260: 1257: 1255: 1252: 1250: 1247: 1245: 1242: 1240: 1237: 1235: 1232: 1230: 1227: 1225: 1222: 1220: 1217: 1215: 1212: 1210: 1207: 1205: 1202: 1200: 1197: 1195: 1192: 1190: 1187: 1185: 1182: 1180: 1177: 1175: 1172: 1170: 1167: 1166: 1164: 1160: 1154: 1151: 1149: 1146: 1144: 1141: 1139: 1136: 1134: 1131: 1129: 1126: 1124: 1121: 1119: 1116: 1114: 1111: 1109: 1107: 1103: 1101: 1098: 1096: 1093: 1091: 1088: 1086: 1083: 1081: 1078: 1076: 1073: 1071: 1068: 1066: 1063: 1061: 1058: 1056: 1053: 1051: 1048: 1046: 1043: 1041: 1038: 1036: 1033: 1031: 1028: 1026: 1023: 1021: 1018: 1016: 1013: 1011: 1008: 1006: 1005:Crystal Tools 1003: 1001: 998: 996: 995:Chrome Engine 993: 991: 988: 986: 983: 982: 980: 976: 970: 967: 965: 962: 960: 957: 955: 952: 950: 947: 945: 944:Sim RPG Maker 942: 940: 937: 935: 932: 930: 927: 925: 922: 920: 917: 915: 912: 910: 907: 905: 902: 900: 897: 895: 892: 890: 887: 885: 882: 880: 879:3D GameStudio 877: 876: 874: 870: 864: 861: 859: 856: 854: 851: 849: 846: 845: 843: 839: 836: 834: 830: 824: 821: 819: 816: 814: 811: 809: 806: 802: 799: 798: 797: 794: 790: 787: 786: 785: 782: 780: 777: 776: 773: 768: 764: 757: 752: 750: 745: 743: 738: 737: 734: 725: 724: 712: 705: 702: 697: 691: 677:on 2012-08-04 676: 672: 666: 663: 652:on 2013-10-12 651: 647: 643: 636: 633: 621: 617: 610: 607: 603: 602: 590:on 2015-12-10 589: 585: 578: 575: 563: 556: 553: 541: 534: 531: 527: 524: 519: 516: 512: 511: 498: 494: 488: 485: 482: 478: 473: 470: 467: 463: 458: 455: 452: 448: 443: 440: 429: 425: 419: 416: 410: 406: 403: 402: 398: 387: 382: 380: 378: 374: 373: 368: 367: 362: 358: 354: 353: 348: 344: 340: 337:environment. 336: 332: 328: 324: 317: 315: 313: 312: 307: 303: 299: 293: 289: 281: 279: 277: 273: 272: 267: 266: 261: 260:assembly code 256: 255:dis-assembled 252: 247: 241: 233: 231: 228: 224: 223: 222:Spring Engine 218: 214: 210: 206: 200: 192: 187: 185: 183: 179: 175: 171: 163: 161: 159: 155: 151: 147: 143: 139: 135: 131: 127: 123: 110: 107: 99: 96:November 2015 88: 85: 81: 78: 74: 71: 67: 64: 60: 57: –  56: 52: 51:Find sources: 45: 41: 35: 34: 29:This article 27: 23: 18: 17: 1393: 1385: 1367: 1106:Silent Storm 1105: 1090:Retro Engine 1070:MT Framework 899:Genie Engine 795: 763:Game engines 722: 721: 715:. Retrieved 704: 679:. Retrieved 675:the original 665: 654:. Retrieved 650:the original 635: 624:. Retrieved 620:the original 609: 599: 598: 592:. Retrieved 588:the original 577: 566:. Retrieved 555: 544:. Retrieved 533: 525: 518: 509: 508: 501:. Retrieved 487: 480: 472: 465: 457: 442: 431:. Retrieved 427: 418: 370: 364: 361:source ports 350: 321: 318:Alternatives 309: 306:source ports 295: 269: 264: 245: 243: 220: 202: 167: 121: 120: 102: 93: 83: 76: 69: 62: 50: 38:Please help 33:verification 30: 1442:Game Editor 1321:open-source 1075:PhyreEngine 959:Voxel Space 929:Reality Lab 889:Dark Engine 833:Proprietary 779:Source port 584:"Starcraft" 562:"StarCraft" 523:Source code 497:ScummVM.org 302:source code 288:Source port 227:clock cycle 182:source code 126:game engine 1608:PlayCanvas 1375:Game-Maker 1249:Panta Rhei 1214:Fox Engine 1050:HeroEngine 934:RenderWare 717:2013-04-24 681:2014-03-30 656:2011-01-10 626:2012-12-23 594:2014-03-29 568:2014-03-26 546:2014-03-25 451:github.com 449:openra on 433:2018-08-30 411:References 343:executable 286:See also: 238:See also: 197:See also: 164:Motivation 66:newspapers 1457:id Tech 4 1452:id Tech 3 1401:Stratagus 1336:Z-machine 1300:id Tech 7 1259:RE Engine 1224:id Tech 6 1219:id Tech 5 1189:Construct 1169:4A Engine 1065:Marmalade 1060:Leadwerks 1045:GameSalad 1035:Frostbite 1000:CryEngine 990:C4 Engine 939:RPG Maker 894:GameMaker 884:Clickteam 853:Freescape 848:Filmation 601:approach. 372:Homeworld 352:StarCraft 323:Emulation 258:("pseudo- 234:Bottom up 130:rewritten 1663:Category 1447:GDevelop 1394:Quake II 1380:OHRRPGCE 1319:Free and 1274:Source 2 1264:Snowdrop 1184:Buildbox 1179:Bitsquid 1100:Shark 3D 1040:Gamebryo 1025:Euphoria 914:LithTech 858:Gold Box 813:Game IDE 690:cite web 503:July 14, 383:See also 355:for the 246:Top down 193:Top down 142:textures 1623:Stencyl 1583:Horde3D 1578:GPUOpen 1568:Delta3D 1527:Solar2D 1522:Scratch 1492:Panda3D 1432:Cocos2d 1269:Stencyl 1234:Kynapse 1123:Unigine 1030:Flare3D 904:GoldSrc 823:id Tech 357:Pandora 298:ScummVM 271:OpenTTD 244:Unlike 188:Methods 150:shaders 146:scripts 80:scholar 1628:Stride 1613:Raylib 1598:OpenFL 1588:libGDX 1542:Torque 1517:Ren'Py 1512:Pygame 1502:Plasma 1417:Away3D 1396:engine 1388:engine 1370:engine 1229:Ignite 1204:Defold 1199:Decima 1148:Vision 1113:Source 1108:engine 1010:Diesel 528:(2005) 428:GitHub 335:MS-DOS 327:DOSBox 265:CSBWin 209:OpenRA 154:levels 82:  75:  68:  61:  53:  1637:2020s 1618:Snap! 1573:Godot 1561:2010s 1410:2000s 1386:Quake 1357:Build 1345:1990s 1329:1970s 1293:2020s 1209:Felgo 1162:2010s 1128:Unity 1118:Titan 985:Anvil 978:2000s 919:Mugen 872:1990s 863:SCUMM 841:1980s 138:music 134:clone 87:JSTOR 73:books 1593:Moai 1482:OGRE 1477:Löve 1437:Dim3 1368:Doom 1095:SAGE 1085:RAGE 964:Zero 909:Jedi 801:list 789:list 767:list 696:link 505:2013 290:and 276:MAME 174:bugs 59:news 1603:ORX 1015:Ego 379:). 369:or 347:ARM 268:or 160:). 42:by 1665:: 1055:IW 720:. 692:}} 688:{{ 644:. 597:. 507:. 495:. 426:. 331:PC 314:. 152:, 148:, 144:, 140:, 1080:Q 769:) 765:( 755:e 748:t 741:v 698:) 684:. 659:. 629:. 571:. 549:. 436:. 333:/ 109:) 103:( 98:) 94:( 84:· 77:· 70:· 63:· 36:.

Index


verification
improve this article
adding citations to reliable sources
"Game engine recreation"
news
newspapers
books
scholar
JSTOR
Learn how and when to remove this message
game engine
rewritten
clone
music
textures
scripts
shaders
levels
list of game engine recreations
operating system
bugs
community patch
source code
High-level emulation
top down development methodology
OpenRA
clean-room re-implementations
Total Annihilation
Spring Engine

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.