
Quake-Engine
Die Quake-Engine ist das Programmgerüst hinter dem Spiel Quake von 1996. Sie war die erste weit verbreitete Software, die eine Spielwelt vollständig aus echten dreidimensionalen Formen berechnete, und prägte damit die Technik moderner Computerspiele.
Ein Computerspiel besteht aus zwei Teilen. Der eine Teil ist der Inhalt: Landschaften, Figuren, Geräusche, Regeln. Der andere Teil ist das Programm, das diesen Inhalt in bewegte Bilder auf dem Bildschirm verwandelt. Dieses Programm nennt man Engine, zu Deutsch etwa Motor. Die Quake-Engine ist ein solcher Motor, geschrieben 1996 von der amerikanischen Firma id Software für ihr Spiel Quake. Sie gilt als eine der einflussreichsten Programmarbeiten der Spielegeschichte.
Der Sprung von falschem zu echtem 3D
Vor Quake sahen Spiele zwar räumlich aus, waren es aber technisch nicht. Beim Vorgänger Doom bestand die Welt aus Grundrissen, die nach oben gestreckt wurden. Räume konnten deshalb nicht übereinanderliegen, und man konnte nicht wirklich nach oben oder unten schauen. Die Gegner waren flache Bilder, die sich immer zum Spieler drehten. Man nennt so etwas heute manchmal spöttisch 2,5D.
Die Quake-Engine löste das auf. Jede Wand, jede Treppe und jede Figur bestand aus Dreiecken mit echten Koordinaten im Raum. Dadurch waren Brücken über Schluchten, verwinkelte Türme und Blicke in jede Richtung möglich. Diese Grundidee ist bis heute unverändert: Auch aktuelle Spiele setzen ihre Welten aus Dreiecken zusammen, nur aus sehr viel mehr davon.
Wichtig war außerdem, dass all das auf normalen Heimrechnern lief, ohne spezielle Grafikkarte. Das zwang die Entwickler zu Tricks, die später zum Standardwissen der Branche wurden. Der Programmierer John Carmack veröffentlichte den Quelltext der Engine später sogar frei, sodass jeder ihn studieren konnte.
Vorberechnete Sichtbarkeit und aufgemaltes Licht
Das Hauptproblem war die Rechenleistung. Ein Prozessor von 1996 konnte unmöglich die ganze Spielwelt in jedem Bild neu durchrechnen. Die Quake-Engine umging das mit Vorarbeit. Bevor ein Level spielbar war, zerlegte ein Werkzeug die Karte in viele kleine Bereiche und speicherte für jeden Bereich, welche anderen Bereiche von dort aus überhaupt sichtbar sind.
Im Spiel selbst musste das Programm dann nur nachschlagen statt zu rechnen. Steht der Spieler in einem geschlossenen Raum, wird der Rest des Levels komplett ignoriert. Man kann sich das wie einen Spickzettel vorstellen, der vor der Prüfung geschrieben wurde. Die eigentliche Arbeit passiert vorher, während des Spiels bleibt nur ein schneller Blick auf die Liste.
Ähnlich funktionierte das Licht. Schatten und Helligkeit wurden ebenfalls vorab berechnet und als zusätzliche Bildebene auf die Wände gelegt, sogenannte Lightmaps. Das Ergebnis wirkte für damalige Verhältnisse verblüffend stimmungsvoll. Der Preis war Unbeweglichkeit: Wer eine Wand verschieben wollte, hätte das Licht neu berechnen müssen. Diese Trennung zwischen vorberechnetem und laufend berechnetem Licht beschäftigt die Spieleentwicklung bis heute.
Nachfahren in heutigen Spielen
Die Quake-Engine ist nicht nur ein Museumsstück. Aus ihr entstand direkt die Technik hinter Half-Life, und daraus wiederum die Source-Engine von Valve, auf der Counter-Strike lange lief. Wer heute ein Multiplayer-Spiel startet, nutzt Ideen aus diesem Programm, etwa die Art, wie Client und Server ständig Positionsdaten austauschen und Verzögerungen ausgleichen.
Auch der Begriff Engine als eigenständiges Produkt geht auf diese Zeit zurück. id Software verkaufte die Technik an andere Studios weiter, statt nur Spiele zu veröffentlichen. Heute ist das ein eigener Markt: Unity und die Unreal Engine werden von tausenden Firmen lizenziert, inzwischen auch für Filme, Architektur und Fahrzeugsimulationen.
In Tech-News taucht Quake außerdem als Testfall für künstliche Intelligenz auf. Weil das Spiel schnell läuft, frei verfügbar ist und klare Regeln hat, lassen Forscher darin Programme gegeneinander antreten. Ein alter Ego-Shooter dient so als Übungsplatz für Systeme, die lernen sollen, sich in einer Umgebung zurechtzufinden.