Wie die Jahre gezeigt haben, haben wir praktisch keine Chance, den ursprünglichen Quellcode - oder zumindest ein Remake - des ersten Teils von Diablo zu sehen (das Ereignis
Die Verdunkelung von Tristram in
Diablo III zu Ehren des 20. Jahrestages der Veröffentlichung des ersten Teils ist natürlich gut, aber immer noch ein wenig nicht das, was die Fans erwartet hatten). Und lassen Sie das letzte Update für das Spiel im Jahr 2001 herauskommen, und Blizzard selbst hat es lange nicht mehr unterstützt und verkauft - die Erinnerung daran lebt noch in unseren Herzen. Dies wurde erneut von einem bestimmten GalaXyHaXz bestätigt, der sich entschied, das Spiel zurückzuentwickeln.
Der Quellcode ist
auf Github verfügbar. Das Devilution-Projekt, das sein Autor GalaXyHaXz als „Diablo Devolution“ bezeichnete, dauerte über 1.200 Stunden - 4 Monate Arbeit. Verpassen Sie auch nicht die umfangreichen Kommentare des Autors, die den Quellcode des Spiels beleuchten und sich in
einem anderen Repository befinden . Der Code selbst scheint bisher keine Rolle zu spielen, wird aber weiterhin in Ordnung gebracht, wenn die Arbeit an anderen Modulen des Spiels fortschreitet.
Die Idee, ein so großes Projekt rückzuentwickeln, schien zunächst eine fantastische Aufgabe zu sein, wenn nicht für einen glücklichen Unfall - oder mit anderen Worten, ein kleines Versehen, das vor 20 Jahren geschah.
1998 gab Blizzard Diablo-Quellcode an zwei Studios weiter: Synergestic Software, die das Add-On Hellfire entwickelte, und Climax Studios, die am Port für die Playstation arbeiteten. Dies ist
nicht das erste Mal, dass die Sony QA-Abteilung in Japan
mit ihren Lecks „zufrieden“ ist. Diesmal haben sie sich auch ausgezeichnet. In der japanischen Version des Ports wurde versehentlich
eine symbolische Datei vergessen, die Funktionen, Daten, Typen und vieles mehr enthielt. Dadurch konnten wir die ursprünglichen Funktionen, globalen Variablen, Datenstrukturen und mehr wiederherstellen. Die Beta-Version des Ports für die Playstation ist ebenfalls durchgesickert und enthielt eine weitere ähnliche Datei, was die Aufgabe erheblich vereinfachte.
Um das Ganze abzurunden, lag der Debug-Build der PC-Version des Spiels immer direkt auf Ihren Spieldisketten, versteckt im Archiv DIABDAT.MPQ -> D1221A.MPQ -> DIABLO.EXE. Der Build enthält Debugging-Tools, die in der Release-Version nicht verfügbar sind, sowie eine große Anzahl von Zeilenzusicherungen, mit denen Dateinamen und Funktionen neu erstellt werden konnten - selbst die Zeilennummern des Codes liegen so nahe wie möglich am Original.
Die Entwicklung von Diablo begann ungefähr zu der Zeit, als Windows 95 herauskam. Dementsprechend wurde das Spiel dafür optimiert. Zum Kompilieren des Spiels wurde Microsoft Visual C ++ 4.20 verwendet, das
in nachfolgenden Patches auf Version 5.10 aktualisiert wurde . Um den ursprünglichen Code genau zu reproduzieren, behielt das Projekt die Kompatibilität mit diesen Versionen von Compilern bei. Für moderne Compiler sind jedoch Makefiles verfügbar. Aus der Kompilierung resultierende ausführbare Binärdateien werden Berichten zufolge unter Windows 7, Linux-WINE und Windows 10 ausgeführt.
Es ist eine bekannte Tatsache, dass sich das Spiel während des gesamten Projekts ernsthaft verändert hat und viele Ideen unmittelbar vor der Veröffentlichung herausgeschnitten wurden - und der Multiplayer wurde in Eile hinzugefügt.
Viele Entwickler von Modifikationen für das Spiel (zum Beispiel die Autoren des The Hell-Mods)
sind in ihrer Forschung zur Codeforschung
bereits ziemlich weit gegangen , unter anderem durch die Implementierung eines Prozessspeichers. Die Ergebnisse ihrer Arbeit wurden jedoch nicht veröffentlicht, und viele dieser Mods wurden auf halbem Weg aufgegeben. Wenn Devilution auf ein bestimmtes Maß an Bereitschaft gebracht werden kann, kann ein ähnliches Problem vermieden werden - und Sie können etwas Neues über das Spiel selbst lernen.
Im Moment Reverse Engineering von Diablo.exe. Es gibt noch einige Bibliotheken, mit denen man sich befassen muss: Battle.snp (veraltetes Battle.Net-Protokoll), DiabloUI.dll (Hauptmenücode für das Spiel, vollständig Windows-basiert und schlecht geschrieben), Standard.snp (lokaler Multiplayer-Code, veraltet, ähnlich dem verwendeten in Starcraft) und ein paar weitere Module.
Theoretisch kann das Spiel in naher Zukunft (nach dem Umkehren von
DiabloUI.dll ) plattformübergreifend werden - es sei denn, Blizzard beeilt sich natürlich, den Shop zu schließen, bevor der Autor genügend Enthusiasten für die Lösung dieses Problems gewinnen kann.
PS Und was Diablo II betrifft, ist nicht alles so klar: Das Spiel wird weiterhin von Blizzard verkauft und unterstützt, seine Codebasis ist ungefähr achtmal größer als das Original, und es gibt Gerüchte, dass der offizielle Remaster gleich um die Ecke ist - also seine vollständige Umkehrung Engineering muss in absehbarer Zeit nicht warten.