Überblick
Die Doom-Engine, oft als id Tech 1 bezeichnet, ist die Spiel-Engine, auf der das einflussreiche Computerspiel Doom basiert. Sie wurde Anfang der 1990er Jahre von id Software entwickelt und ermöglichte eine damals neuartige, schnelle Darstellung von vermeintlich dreidimensionalen Umgebungen. Varianten und stark veränderte Ableitungen dieser Engine wurden in weiteren Titeln wie Doom II, Heretic, Hexen und Strife eingesetzt; neuere Nachfolger wie Doom 3 verwenden hingegen andere Technologien.
Technische Grundlagen
Die Engine ist kein vollständiges 3D-System im modernen Sinn, sondern arbeitet mit einer sogenannten 2.5D-Architektur: Ebenen sind als flache Sektoren modelliert, deren Böden und Decken unterschiedliche Höhen besitzen können, echte Überlagerung von Räumen (Room-over-Room) aber nativ nicht unterstützt wird. Zur schnellen Sichtberechnung setzt die Engine die binäre Raumpartitionierung (BSP) ein, eine Methode, die Renderreihenfolgen und Sichtbarkeitsprüfungen effizient macht. Rendering erfolgte vollständig in Software auf der CPU, weil zeitgenössische Grafikkarten noch keine 3D-Beschleunigung boten; das machte schlanke, optimierte Algorithmen notwendig.
Aufbau von Levels
Leveldaten werden in WAD-Dateien (Where's All the Data?) gespeichert und intern in einfache geometrische und logische Bausteine zerlegt. Wichtige Komponenten sind:
- Verticies (Eckpunkte) – definieren die Geometrie.
- Linedefs – Kanten zwischen Vertices, oft mit Verhalten wie Türen oder Wänden verknüpft.
- Sidedefs – geben Texturen und Eigenschaften für beide Seiten einer Linedef an.
- Sektoren – Flächen mit Höhen und Lichtstärke, die Räume und Böden definieren.
- Things – Objekte im Level wie Monster, Items oder dekorative Elemente.
Dieser modulare Aufbau erleichtert das Erstellen von Zusatzinhalten (PWADs) und Modifikationen.
Geschichte, Quellcode und Community
Die Engine trug entscheidend zur Popularität des Ego-Shooter-Genres bei. id Software gab später den Quellcode frei; er wurde unter der GNU General Public License verbreitet, was eine intensive Community-Entwicklung ermöglichte. Zahlreiche Quelltext-Portierungen (Source Ports) wie Boom, PrBoom, PrBoom+, ZDoom oder Chocolate Doom haben Funktionalität erweitert, Fehler behoben und Kompatibilität zu modernen Systemen geschaffen. Für viele Programmierer ist die Engine wegen ihrer klaren Struktur und der in C geschriebenen Implementierung ein beliebtes Studienobjekt.
Bedeutung und Nutzung
Die Doom-Engine ist ein Beispiel dafür, wie weit durchdachte Software-Architektur und algorithmische Optimierung die Möglichkeiten begrenzter Hardware erweitern können. Ihre Freigabe hat eine lebhafte Modder- und Entwicklergemeinschaft entstehen lassen, die das Spiel über Jahrzehnte hinweg aktualisiert, portiert und erweitert hat. Wegen der geringen Systemanforderungen und der portablen Codebasis wurde die Engine auf ungewöhnlich vielen Plattformen zum Laufen gebracht, von klassischen PCs bis zu Handheld-Geräten und eingebetteten Systemen.
Besondere Eigenschaften und Einschränkungen
Zu den markanten Eigenschaften zählen die vollständige Software-Renderung, die BSP-basierten Sichtberechnungen und die einfache, aber mächtige Levelstruktur. Einschränkungen sind das Fehlen echter dreidimensionaler Strukturen und die auf sektorbasierte Beleuchtung beschränkte Lichtsetzung. Trotz dieser Grenzen ermöglichte die Engine zahlreiche technische Tricks, die viele spätere Spielengines beeinflussten.
Weiterführende Informationen und Ressourcen zu Engine-Interna, WAD-Format und Quelltext-Portierungen sind häufig in Entwicklerdokumentationen und Community-Projekten zu finden. Für eine Einführung in das Spiel selbst siehe Doom und für die Fortsetzung Doom II, während Doom 3 eine deutlich andere Technik einsetzt.