RTFM #3: Game Engine Black Book: Doom

the next big thing Golo Roden  –  1 Kommentare

Die Serie RTFM stellt in unregelmäßigen Abständen zeitlose und empfehlenswerte Bücher für Entwicklerinnen und Entwickler vor. Primär geht es um Fachbücher, doch gelegentlich sind auch Romane darunter. Heute geht es um "Game Engine Black Book: Doom" von Fabien Sanglard.

Das Computerspiel "Doom" von id.software ist fraglos eines der bedeutendsten Spiele aller Zeiten. Als es 1993 veröffentlicht wurde, verfügte es über eine atemberaubende 3D-Grafik, die alles bis dahin gesehene mühelos in den Schatten stellte. Doch auch andere Aspekte waren revolutionär, darunter das Audiosystem, der Mehrspielermodus und die künstliche Intelligenz der computergesteuerten Gegner.

Es war letztlich nur eine Frage der Zeit, bis jemand ein Buch über die Entwicklung von Doom schreiben würde – was dann Fabien Sanglard mit "Game Engine Black Book: Doom" getan hat.

Eine Zeitreise in die 1990er-Jahre

Nach einer kurzen Einführung beschreibt das zweite Kapitel die damals zur Verfügung stehende Hardware. Allen voran geht es um den Intel-486-Prozessor, der die Grundlage für das Betriebssystem MS-DOS bildete, was allerdings nur 640 KByte RAM adressieren konnte. Zwar ließ sich der Prozessor auch in den sogenannten Protected Mode schalten, was den Zugriff auf bis zu 4 GByte RAM ermöglichte, aber dazu war wiederum MS-DOS nicht in der Lage. Abhilfe ließ sich nur mit spezieller Software wie DOS/4GW schaffen.

Doch es geht nicht nur um den Prozessor, sondern unter anderem auch um die verfügbaren Bussysteme wie ISA und VESA-Local-Bus, verschiedene Audiostandards wie SoundBlaster, Adlib und Roland MT32, und den VGA-Grafikstandard. Allein dieses Kapitel ist bereits spannend und unterhaltsam zu lesen, ist es doch eine Zeitreise zurück in die 1990er-Jahre.

Game Engine Black Book: Doom

MS-DOS, NextStep & Co.

Das dritte Kapitel offenbart dann eine Besonderheit in der Entwicklung von Doom: Obwohl das Spiel primär für die Ausführung unter MS-DOS gedacht war, wurde es unter NextStep entwickelt. Dazu wurde der eigentliche Kern des Spiels, der die Logik enthält, plattformunabhängig in C entwickelt, für sämtliche hardwarenahen Komponenten wurde hingegen ein Plug-in-System geschaffen, sodass Doom von vornherein darauf vorbereitet war, auf andere Plattformen portiert zu werden.

In Kapitel 4 geht es schließlich um das Team, allen voran natürlich um John Carmack und John Romero, und die Werkzeuge, die id.software für die Arbeit an Doom entwickelt hat. Das Buch beschreibt dazu den Aufbau von Dateiformaten, die Funktionsweise des Leveleditors und ähnliche Tools.

Die Architektur eines Spiels

Am mit Abstand interessantesten wird es schließlich im fünften Kapitel des Buchs, in dem es um die Architektur geht. Hier wird ausführlich beschrieben, wie das Rendern der 2D- und der 3D-Grafik funktioniert, welche Maßnahmen zur Perspektivenkorrektur und zur Kollisionserkennung implementiert wurden, wie die eigens für Doom entwickelte Speicherverwaltung arbeitet und viele weitere Aspekte. Im Zusammenhang mit der Netzwerkebene geht es dabei sogar um Event-Sourcing, was eine zentrale Rolle unter anderem auch für das Debuggen und das Abspielen von Demos spielte.

Alle diese Themen werden durch zahlreiche Codebeispiele ergänzt, die man für ein konzeptionelles Verständnis lediglich überfliegen, für ein tiefergehende Verständnis aber auch gründlich studieren kann. Außerdem gibt es zahlreiche vollformatige farbige Abbildung, die das Verständnis erleichtern.

In Kapitel 6 geht es schließlich um die Portierung von Doom auf andere Plattformen, die allerdings nicht ganz so einfach ausfällt, wie man das aufgrund des Plug-in-Systems erwarten könnte. Das liegt vor allem an der eingeschränkten Hardware zahlreicher Konsolen, wobei insbesondere der dort zur Verfügung stehende Speicher häufig ein Problem darstellte.

Fazit

Natürlich kann das Buch nicht jedes Thema bis ins letzte Detail schildern, der Autor hat aber zahlreiche spannende Themen ausgewählt und versucht, eine passende Balance zwischen Überblick und Feinheiten zu wählen.

Mir persönlich hat es sehr viel Spaß gemacht, das Buch zu lesen, nicht zuletzt weil es eine Zeitreise zu zahllosen Stunden meiner Jugend war, die ich mit dem Spielen von Doom verbracht hatte. Das Buch ist abseits der üblichen Fachliteratur eine angenehme Abwechslung und sei daher jeder Entwicklerin und jedem Entwickler ans Herz gelegt – selbst dann, wenn man keine Spiele entwickelt.