Diablo 1 Sourcecode rekonstruiert

Diablo 1 1996

Die Diablo Reihe gibt es seit Ende 1996. Wir erinnern uns hoffentlich an das Gimmick welches uns Blizzard zum 20-jährigen Geburtstag der Reihe geschenkt hat.

Naja, das war mehr ein nett gemeinter Nachbau als das ursprüngliche Feeling welches man mit Diablo 1 hatte. Nun hat sich ein Entwickler viel viel Zeit genommen und innerhalb von 1200 Stunden den kompletten Sourcecode rekonstruiert. Dies mit Hilfe bereits verfügbarer Quellen. Arbeit blieb es dennoch. Das Projekt ist auf Github verfügbar. Übrigens: Microsoft unterstützt seine Open-Source-Bemühungen indem es Github vor kurzer Zeit kaufte ;)

Das Projekt Devilution (Übertragung)

Rechtlich gesehen bewegt sich das Projekt in einem Graubereich denn für wissenschaftliche und dokumentatorische Zwecke ist Re-engineering normalerweise erlaubt. Blizz verkauft Diablo nicht mehr und hat bereits vor vielen Jahren den Support dafür eingestellt. Kaum zu erwarten dass Activision-Blizzard hier rechtliche Schritte einleitet. Vielmehr dürften sie daran interessiert sein was die Fangemeinde mittels Mods und Tweaks noch aus dem fast ein Vierteljahrhundert alten Spiel noch herausholt.

Wer unsere News über die Jahre verfolgt hat wird sich vielleicht erinnern, dass Blizzard North damals mit der dicksten und heißesten Nadel gestrickt hatte die aufzutreiben war. Grund war unter anderem dass das Spiel aus vertraglichen Gründen noch 1996 herauskommen musste. Das geschah dann auch am 31.12.1996. Wer schon einmal einen amerikanischen Vertrag und die dort vereinbarten Vertragsstrafen bei nicht rechtzeitiger Ablieferung gesehen hat, weiß, welcher Antrieb so eine kleine Klausel auslösen kann.

Laut dem Entwickler Galaxyhaxz ist der Source-Code nicht gleichbedeutend mit „Free Download“ oder „spielbar“. Es fehlen eine Menge Assets die nur mit einer originalen Diablo-CD geliefert werden. Also, wer noch eine hat …

Der Sourcecode ist aus vielen Gründen interessant. An ihm lässt sich nachverfolgen welche Tweaks und Hacks Blizzard selbst verwendet hat um Bugs auszubügeln, neue Features zu implementieren usw. Auch finden sich eine Menge Hinweise und Code auf Eigenschaften die es nicht ins Spiel geschafft haben.

Für moddende Fans des Spiels bietet sich ab jetzt die Möglichkeit das Spiel an moderne Gegebenheiten anzupassen, die Auflösung zu erhöhen, die GUI zu ändern und vieles mehr, spielbar für neuere oder andere Betriebssystem zu machen und so weiter. Oder einfach nur zu lernen was alles zu einem aus heutiger Sicht ziemlich einfachen Spiel dazugehört. Was sagt der Entwickler selbst dazu?

Having the source code makes things much easier to maintain. For years mod-makers had to rely on tedious code editing and memory injection. A few even went even further and reversed a good chunk of the game (such as Belzebub/The Hell). The problem is that they never released their sources. Usually being a one-man job, they move on with their lives inevitably due to the amount of time/work required or lack of interest. This leaves people with a half-finished mod; one which had countless hours put into it, but left full of bugs and unfinished potential. So we’re back to square one. Devilution aims to fix this, by making the source code of Diablo freely available to all.

The goal of Devilution itself is to recreate the original source code as accurately as possible, in order to ensure that everything is preserved. This goes as far as bugs and badly written code in the original game. However, it becomes a solid base for developers to work with; making it much easier than before to update, fix, and port the game to other platforms.

As a side goal, Devilution helps document the unused and cut content from the final game. Development of Diablo was rushed near the end–many ideas were scrapped and Multiplayer was quickly hacked in. By examining the source, we can see various quirks of planned development.

Danke an die Kollegen von diabloii.net welche die News herausbrachten.

Andi - Staffie bei indiablo - mehr oder weniger freiwillig :D aus Stuttgart/Benztown

Alter: Wollt Ihr nicht wissen. Geschlecht: Wißt Ihr wenn Ihr Profile lesen könnt Hobbys: Viel zuviele und Diablo versteht sich Sonstiges: Ne Menge, da reicht der Platz nicht... Beruf: Leider nix mit Diablo 3 :)

Gewinnspiel: Auf der Insane Gamers Night diese fetten Preise abräumen Diablo 3 - Gier Verlosung
Comments
MrGracy
Das waren noch Zeiten *träum*

Mal für einen Laien:
was heißt "Sourcecode rekonstruiert"? Den Code gibt es ja sozusagen in irgendeiner Form in den Spieldateien.
Was genau wurde also gemacht?
Bukama
Vereinfacht ausgedrückt:
Programmieren tut man in einer „Hochsprache“ (In Fall vo. Diablo wohl C oder C++) wo man menschlich lesbare und verständliche Befehle hat und erkennt was das Programm macht.

Der Code in den Dateien (genauer der Exe) ist in Maschienencode kompiliert, der nicht wirklich (eindeutig) lesbar ist für einen Menschen. Der Code besteht aus unzähligen Speichertueeisungen, wurde beim Kompilieren optimiert etc und lässt sich nur schwer dekompilieren, also wieder in die ursprüngliche Hochsprache bringen.

Oder noch einfacher: Maschinencode sind Einsen und Nullen, der Code in Hochsprache besteht aus Wörtern.
Shihatsu
Dem Programmierer in mir dreht sich gerade das Hirn auf links - für den Laien ist das gut formuliert und beantwortet die Frage super, aber für mich... uargs
MrGracy
In der Tat, ich habe es als Laien verstanden. Im Code in den Dateien kann man irgendwelche Abfragen wie "hat der Spieler genung Gold um sich das tolle Item X leisten zu können?" nicht rauslesen. Dazu muss man den Code wieder in den ursprünglichen Sourcecode zurück führen. Da kann man dann (falls man dieser Sprache mächtig ist) die Abfrage sehen.

Danke @Bukama
Bukama
Er wollte es ja für Laien haben

Mir dreht es sich um, wenn ich mir den Quellcode angucke
Du musst eingeloggt sein, um kommentieren zu können!