# Build-Engine

Bei der Build-Engine handelt es sich um eine 3D-Engine für Computerspiele, welche von Ken Silverman für 3D Realms entwickelt wurde und die unter anderem beim Ego-Shooter Duke Nukem 3D zum Einsatz kam. Die Engine ist mit der wenige Jahre älteren Doom-Engine (auch id Tech 1) vergleichbar. Mit Ion Fury (ehemals Ion Maiden) erschien im August 2019 wieder ein Ego-Shooter auf Basis einer verbesserten Build-Engine.

## Entwicklung

Ken Silverman begann die Entwicklung der Build-Engine im März 1993. Zu dieser Zeit hatte er die finale Version seines ersten kommerziell erfolgreichen Spiels, Ken’s Labyrinth, für Epic fertiggestellt. Dieses Spiel basierte ebenfalls auf einer komplett selbst entwickelten 3D-Engine, die technisch mit Wolfenstein 3D vergleichbar war. Mit „Build“ orientierte sich Silverman eindeutig an den Standards, die Doom gesetzt hatte. Technisch wurden jedoch einige andere Ansätze verfolgt – „Build“ stellt somit nicht bloß einen Klon der Doom-Engine dar.

## Technik

Frühere Ego-Shooter-Engines wie die von Wolfenstein 3D bekannte nutzen das vergleichsweise schnelle Raycasting zur Darstellung der dreidimensionalen, aus der Egoperspektive gezeigten Spielwelt. „Build“ erweitert diese Technologie stark und kombiniert schnelle zweidimensionale, an Raycasting angelehnte Ansätze mit solchen, die auch in späteren Grafik-Engines mit echter Dreidimensionalität zum Einsatz kommen. Die Level-Geometrie basiert auf einem zweidimensionalen Grundriss und ist damit deutlichen Einschränkungen unterworfen, die der Leveldesigner beachten muss und die sich teilweise auch auf die Freiheitsgrade des Spielers auswirken. So ist es beispielsweise nicht möglich, senkrecht nach oben oder unten zu sehen. Strukturen mit mehreren Ebenen – beispielsweise Brücken oder Gebäude mit mehreren Etagen – sind nur mit Tricks darstellbar. Engines dieser Art werden auf Grund der Einschränkungen auch „2,5D-Engines“ genannt.
Im Gegensatz zu Ken’s Labyrinth und anderen früheren Engines (etwa den in Wolfenstein 3D oder System Shock eingesetzten) sind die Grundrisse in der Build-Engine nicht an ein festes quadratisches Raster gebunden. Wände müssen senkrecht sein, können aber in beliebigen Winkeln aneinander stoßen. Ferner erlaubt die Engine unterschiedliche Höhenwerte sowie das Kippen von Böden und Decken. Den Leveldesignern ermöglichte dies, ein viel intensiveres dreidimensionales Spielgefühl zu vermitteln, da die Levelgeometrie nicht auf eine Ebene beschränkt war. Um die noch bestehenden Beschränkungen zu umgehen, wurden verschiedene Tricks angewendet. Im ersten Build-Spiel Duke Nukem 3D befinden sich einige Bereiche tatsächlich gar nicht übereinander, wie die Level-Architektur vermuten lässt; der Spieler wird jeweils nur im richtigen Augenblick unbemerkt an eine andere Stelle des Levels teleportiert. Beispiele hierfür sind das Eintauchen in Unterwasserbereiche oder der Sprung in Schächte. Wendeltreppen und ähnliche Konstruktionen mit übereinander liegenden Räumen sind möglich, der Leveldesigner muss jedoch sicherstellen, dass der Spieler nie mehr als eine Ebene gleichzeitig einsehen kann.

### Lösung des Sichtbarkeitsproblems

Was den Auswertungsmechanismus für sichtbare Flächen betrifft, verhält sich Build wie eine Portal-Engine. Die atomaren Abschnitte des Levels, in Build „Sektoren“ genannt, sind durch spezielle Verbindungsflächen („Portale“) miteinander verbunden. Der Algorithmus folgt allen sichtbaren Sektoren und stellt diese dann dar. Die verwendeten Algorithmen und die Art der Datenorganisation unterscheiden sich jedoch von anderen Engines. Silverman verwendete eine Kombination aus exakter Tiefensortierung und vertikalem Span-Buffer zur Auswertung der räumlichen Tiefe jedes Pixels auf dem Bildschirm. Fällt ein Portal in den gültigen Tiefenbereich, wird der Sektor und alle darin enthaltenen Sektoren gerendert. Das Sortierverfahren stellt sicher, dass alle Flächen in der richtigen Reihenfolge dargestellt werden.
Über Tags und Effectors können Knöpfe und Bewegungen von Sektoren über numerische IDs verknüpft werden. Das Sektoren-System und die exakte Sichtbarkeitsauswertung zur Laufzeit ermöglichte eine bis dahin nicht dagewesene Level-Dynamik. Sektoren waren frei beweglich und konnten – abhängig von der Kreativität des Leveldesigners – alles erdenkliche darstellen. Typische Beispiele für bewegte Sektoren sind Fahrstühle, Türen, zerstörbare Wände oder bewegliche Objekte wie Autos und U-Bahnen, mit denen sich der Spieler teilweise sogar fortbewegen konnte. In Doom waren Effekte dieser Art umständlich bis gar nicht umsetzbar, da die Level-Geometrie aufgrund des verwendeten BSP-Algorithmus unveränderlich und somit statisch war.

### Objekte

Für Gegner, Items und andere Objekte werden, wie zur damaligen Zeit typisch, zweidimensionale Sprites verwendet, welche immer in Richtung des Spielers zeigen (Billboard). Daneben können Sprites auch starr senkrecht oder waagerecht angeordnet werden, was in den Spielen beispielsweise für Verkehrszeichen oder einfache Brückenkonstruktionen genutzt wird.
In späteren Build-Versionen werden auch Voxel-Objekte verwendet, so zum Beispiel in Blood oder Shadow Warrior.

## Verbreitung

Die Build-Engine ist, gemessen an der Anzahl kommerzieller Titel, die wohl meistgenutzte 3D-Engine der 1990er Jahre.
* Spiele, welche direkt mit der Build-Engine erstellt wurden:
** William Shatner’s TekWar (1995, Capstone Software)
** Witchaven (1995, Capstone Software)
** Duke Nukem 3D (1996, 3D Realms)
** Exhumed (in den USA PowerSlave) (1996, Lobotomy Software, nur die 1997 erschienene PC-Version)
** Witchaven II: Blood Vengeance (1996, Capstone Software)
** Blood (1997, Monolith Productions)
** Shadow Warrior (1997, 3D Realms)
* Spiele, die auf den Duke-Nukem-3D-Quelltexten aufbauen:
** Redneck Rampage (1997, Xatrix Entertainment)
** Extreme Paintbrawl (1998, Creative Carnage)
** Liquidator (1998, Akella, nur in Russland erschienen, da die Build-Engine ohne Lizenz genutzt wurde)
** NAM (1998, TNT Team)
** Redneck Deer Huntin (1998, Xatrix Entertainment)
** Redneck Rampage Rides Again (1998, Xatrix Entertainment)
** WW2 GI (1999, TNT Team)
** Ion Fury (2019, Voidpoint)
** A.W.O.L. (2022, Shotspark Studios)
* Nicht veröffentlichte Spiele:
** Legend of the Seven Paladins (1994, Accend, niemals erschienen, da die Build-Engine ohne Lizenz genutzt wurde)
** Corridor 8: Galactic Wars (1996, Capstone Software, nie erschienen, die Quelltexte wurden freigegeben)
** Fate (1996, Intracorp Entertainment, niemals fertiggestellt, eine Demoversion existiert)

## Nachfolger

Nach mehreren Versuchen einen Nachfolger der Build-Engine zu entwickeln, begann Ken Silverman 2006 erneut mit dieser Idee zu experimentieren. Er verwendete diese Arbeit – inzwischen Build 2 genannt – um Kindern in einem Sommercamp von 2007 bis 2009 die Entwicklung von 3D-Spielen beizubringen. Er arbeitete bis 2011 daran, als er letztlich das Interesse an diesem Projekt verlor. Es beinhaltet ein erweitertes Beleuchtungssystem, Voxel-Rendering für Gegenstände und Gegner und echte Raum-über-Raum-Positionierung. Zudem wurde zumindest eine teilweise Abwärtskompatibilität zur ursprünglichen Build-Engine hergestellt. Silverman veröffentlichte seine Entwürfe am 7. März 2018. Der Quelltext dazu wurde am 8. Juni 2019 veröffentlicht.