Quake wie 1997 kompilieren: Eine Zeitreise zu id Software

Michael Dobler
Autor Dr. Web
3 Min. Lesezeit
Quake wie 1997 kompilieren: Eine Zeitreise zu id Software

Fabien Sanglard hat eine Expedition in die Softwareentwicklung des Jahres 1997 unternommen, und der Reisebericht ist ebenso lehrreich wie unterhaltsam. Auf seiner Website fabiensanglard.net beschreibt der Ingenieur und Technikhistoriker Schritt für Schritt, wie sich Quake unter den originalen Bedingungen von damals neu kompilieren lässt, auf echter oder virtueller Windows-NT-Hardware, mit Visual C++ 6 und den dazugehörigen Abhängigkeiten.

drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügen

Das Wichtigste in Kürze

  • Fabien Sanglard dokumentiert, wie Quake unter Windows NT 4.0 und Visual C++ 6 neu kompiliert werden kann, genau wie id Software es 1996/1997 tat.
  • Die Abhängigkeitskette ist bemerkenswert: Ohne SP5, MDAC 2.5 und den Processor Pack lässt sich Michael Abrashs handgefertigter Assembler-Code nicht zusammenbauen.
  • Sanglard betreibt die meistgepflegten technischen Retrospektiven zu klassischen Spielen im Internet, darunter Bücher und Code-Reviews zu DOOM, Wolfenstein und Quake.
  • Der Artikel ist Pflichtlektüre für alle, die verstehen wollen, wie Softwareentwicklung ohne Paketmanager, ohne Git und ohne Broadband tatsächlich aussah.

Was macht Fabien Sanglard so besonders?

CD-Hülle mit Notizzettel „Zuerst MDAC 2.5 installieren!“ auf weißem Grund
Sanglard rekonstruiert historischen Quellcode mit Originalhardware aus der Quake-Ära auf seinem Schreibtisch

Sanglard gehört zu einer raren Spezies: Ingenieure, die historischen Quellcode nicht nur lesen, sondern ihn in seinen ursprünglichen Werkzeugketten zum Leben erwecken. Sein Ansatz ist konsequent quellennah. Die Originalhardware steht auf seinem Schreibtisch, ein PC aus der Quake-Ära, den er in früheren Artikeln als „Quake PC“ dokumentiert hat. Für die Zeitreise zum Kompilieren reicht auch eine VirtualBox-VM, aber der Ehrgeiz, die exakten Bedingungen nachzustellen, ist charakteristisch für Sanglard.

Bekannt wurde er durch sein Buch zur DOOM-Engine, das als Standardreferenz gilt für alle, die verstehen wollen, wie ein Spielerenderer ohne Hardwarebeschleunigung eine glaubwürdige 3D-Welt erzeugt. Seither hat er Code-Retrospektiven zu Wolfenstein 3D, Quake, der Game Boy Advance und dem Apple IIe veröffentlicht. Jede davon ist kostenlos, werbefrei und handwerklich sorgfältig.

Der aktuelle Artikel zeigt, dass Softwareentwicklung 1997 einem Abenteuer-Rätselspiel glich: MDAC 2.5 muss vor SP5 installiert werden, aber beide Dateien liegen im selben entpackten Ordner. Visual C++ 6 öffnet die Workspace-Datei kommentarlos leer, wenn man sie per FTP übertragen hat, weil der Transfer Zeilenendezeichen verändert. Und Michael Abrashs handoptimierten Assembler-Code, die eigentliche Performance-Seele von Quake, bekommt man nur zusammen, wenn man zusätzlich den „Processor Pack“ installiert, eine Erweiterung, die mit dem eigentlichen Compiler-Paket nichts zu tun hat.

Fabien Sanglard macht etwas, das im deutschen Tech-Journalismus fast niemand tut: Er fragt nicht, was eine Software kann, sondern wie sie entstanden ist. Dieser Blick unter die Haube lohnt sich auch für jeden Webentwickler, der wissen will, warum Build-Systeme und Paketmanager so sind, wie sie heute sind.

— Markus Seyfferth, Chefredakteur Dr. Web

Was Webentwickler daraus lernen können

Eine Diskette mit Beinen, die auf Deutsch beschriftet ist
Visual-C++-Setup von 1997 zeigt Herausforderung ohne moderne Dependency-Manager: Fehlende Abhängigkeiten verursachen stumme Fehler oder leere Fenster statt aussagekräftiger Fehlermeldungen

Wer heute mit npm, Composer oder Cargo arbeitet, vergisst schnell, wie viel implizites Wissen in modernen Dependency-Managern steckt. Das Visual-C++-Setup von 1997 macht diese Lernkurve greifbar: Jede fehlende Abhängigkeit löst entweder einen stummen Fehler aus oder gar keinen, sondern einfach ein leeres Fenster. Kein Stack-Trace, keine Fehlermeldung, nur Stille.

Für alle, die sich für saubere Trennung von Struktur und Präsentation interessieren, ist Sanglards Aufarbeitung auch eine Erinnerung daran, dass gute Software-Architektur keine Selbstverständlichkeit ist. Die Trennung von Assembly-Hotpaths und C-Hochsprachen-Code in Quake war eine bewusste Entscheidung unter Hochdruck, und sie steht in direktem Verwandtschaftsverhältnis zu dem, was heute als altbewährte Technologien im Web weiterlebt.

Sanglards Artikel ist auf fabiensanglard.net/compile_like_1997 frei zugänglich. Wer einmal angefangen hat zu lesen, findet sich schnell in seinen älteren Code-Reviews wieder.

Mehr Newshunger?

Eine einzelne, schwarze 3,5-Zoll-Diskette steht zentriert auf weißem Hintergrund
Die Entwicklung von Webbrowsern von 1990 bis zur Gegenwart zeigt die Rolle veralteter Technologien wie TCP/IP und HTTP
4,4 15 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?

Michael Dobler
Autor
Ich bin der Herausgeber von Dr. Web. Um praxisfit zu bleiben, unterstütze ich darüber hinaus Kunden bei der digitalen Kundengewinnung und Kundenbindung. Erste eigene Gehversuche im Internet unternahm ich 1999 mit einem Kinomagazin. Nach 15 Jahren in Lohn und Brot, u.a. als Projektmanager für digitale Medien, machte ich mich schließlich Ende 2005 selbständig. Das war die beste berufliche Entscheidung meines Lebens.
822 Artikel veröffentlicht
Alle Artikel

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Newsletter

Mehr solcher Artikel?
Jetzt kostenlos abonnieren.

Jeden Dienstag die besten Artikel aus dem Dr. Web-Magazin direkt in Ihr Postfach – kein Spam, jederzeit abmeldbar.

Einmal pro Woche, kein täglicher Spam
Jederzeit mit einem Klick abmeldbar
DSGVO-konform via Brevo