# Spiel-Engine

Eine Spiel-Engine, auch Game-Engine oder Game Engine (von englisch game engine [ˈgeɪmˌɛndʒɪn] „Spielmotor“, „Spielantrieb“), ist ein spezielles Framework zur Entwicklung von Computerspielen, das den Spielverlauf steuert und für die visuelle Darstellung des Spielablaufes verantwortlich ist. In der Regel stellen derartige Plattformen auch integrierte Entwicklungsumgebungen bereit. Zu den am häufigsten verwendeten 3D-Engines gehören CryEngine, Frostbite, Godot, Unity und Unreal Engine.
Die Wahl einer Spiel-Engine erfolgt anhand einer Vielzahl technischer Kriterien und ist ebenso vom umzusetzenden Spiel abhängig. So unterstützen manche Engines 3D-Grafik besser als 2D-Grafik, andere überhaupt keine 3D-Grafik. Auch das Computerspielgenre spielt eine entscheidende Rolle, da die technischen Anforderungen sich von einem Genre zum anderen erheblich unterscheiden können. Zuletzt unterstützt jede Spiel-Engine nur eine Auswahl an Plattformen, für die Spiele entwickelt werden können. Mit einer Entscheidung für eine bestimmte Engine, gehen also gewisse Einschränkungen einher, die vor Entwicklungsbeginn eines Spiels erörtert werden müssen.

## Komponenten

Spiel-Engines lassen sich grundsätzlich in 2D- und 3D-Engines unterscheiden, wobei viele die Entwicklung beider Spiele unterstützen. Meist eignet sich eine Spiel-Engine durch spezialisierte Komponenten vor allem für 2D- oder vor allem für 3D-Spiele und auch hierunter für manche Genres besser, als für andere. Die Bestandteile einer modernen Spiel-Engine lassen sich typischerweise in folgenden Komponenten zusammenfassen.

### Grafik-Engine

Die Grafik-Engine ist für die grafische Darstellung des Spielgeschehens auf dem Bildschirm verantwortlich. Eine Grafik-Engine bietet dementsprechend Funktionen zum Laden, Verwalten und Anzeigen von Texturen und Sprites, diverser Licht-, Partikel- und anderer visueller Effekte und grafischer Komponenten der Benutzeroberfläche, wie Bildschirmtext und Schaltflächen.
Spiel-Engines mit Unterstützung dreidimensionaler Grafik bieten darüber hinaus Funktionen zum Laden, Verwalten, Darstellen und Animieren von 3D-Modellen und ein Shader-System zur Darstellung von Licht- und Schatteneffekten auf verschiedenen Materialien und Oberflächen. Die Spiel- oder Grafik-Engine führt die elementaren Berechnungen zur Darstellung dabei nicht selbst aus, sondern fungiert vielmehr als Bindeglied zwischen der Hardware und der Anzeige. Zur Übertragung der Daten an die zuständigen Hardwarekomponenten, wie eine Grafikkarte, kommen üblicherweise Schnittstellen von Drittanbietern zum Einsatz.

### Physik-Engine

Die Physik-Engine bietet Programmbibliotheken zur Simulation von Physik im zweidimensionalen oder dreidimensionalen Raum. So lassen sich in Spielen Gravitation, Bewegungsabläufe und Kollisionen zwischen Objekten auf Grundlage physikalischer Modelle darstellen. Neben höherem visuellem Realismus hat das Physiksystem auch Auswirkung auf das Spielgeschehen, wenn beispielsweise ein fallendes Objekt (z. B. eine geworfene Handgranate) einen Hügel herunterkullert, anstatt darauf liegen zu bleiben. Mitunter erlauben Physik-Engines eine detaillierte Simulation weicher Körper, wie Haaren oder Textilien oder Flüssigkeiten.

### Audio-Engine

Nahezu alle aktuellen Spiele bzw. ihre zugrundeliegende Engine unterstützen 5.1 oder 7.1-Raumklang und Technologien wie z. B. EAX, entsprechende PC-Hardware (Soundkarte) und Boxen vorausgesetzt. Dadurch wird der räumliche Eindruck der Spielwelt verstärkt, indem ein differenzierter Raumklang entsteht, der es beispielsweise erlaubt, die Position von Gegnern zu orten. Außerdem können klanglich verschiedene Räumlichkeiten wie Badezimmer, Hallen, Gänge, Höhlen oder Unterwasser-Klangdämpfung simuliert werden. Auch andere, physikalisch bedingte Effekte, wie der Doppler-Effekt, sind hardwarebeschleunigt umsetzbar.

### Ein- und Ausgabe

Teile zur Verarbeitung von Eingaben des Spielers, sei es über Tastatur und Maus, ein Joystick oder Lenkrad, ein Gamepad, einen Touchscreen oder gegebenenfalls auch anderen, spezialisierteren Eingabemethoden sind ebenfalls in einer Spiel-Engine enthalten. Über beispielsweise eine integrierte Vibrationsfunktion im Gamepad oder Smartphone, erfolgt umgekehrt auch eine Ausgabe, die eine Spiel-Engine ebenso ansteuern kann.

### Netzwerk

Der Netzcode stellt die Voraussetzung für einen Mehrspieler-Modus im Spiel dar. Auch Funktionen darüber hinaus, wie Online-Highscores, Kommunikationsmöglichkeiten mit anderen Spielern oder gewisse DRM-Maßnahmen erfordern einen Zugriff auf das Internet oder ein lokales Netzwerk.

### Ressourcenverwaltung

Zum Laden und Speichern von Spielständen, Benutzer- und Levelinformationen sowie zur Verwaltung aller Spielressourcen oder Game Assets (Grafiken, Audio, 3D-Modelle) sind entsprechende Subsysteme in einer Spiel-Engine integriert.

## Engines zum Abspielen vorhandener Spieldaten

Da ältere Spiele auf aktuellen Plattformen nicht mehr ohne weiteres laufen, haben engagierte Entwickler verschiedene Projekte gestartet, um neue Engines zur Interpretation vorhandener Spieldaten zu schreiben. In diesem Fall liefert das Projekt meistens nur die Engine, die Spieldaten stellt der Nutzer bereit. Ein Beispiel hierfür ist ScummVM, ein auf modernen Plattformen lauffähiger Interpreter für die Skriptsprache SCUMM von LucasArts-Adventures und anderen. Dabei können die unterstützten Plattformen (z. B. DOS, Commodore 64, Atari ST, Amiga, Macintosh, Windows, Linux, iOS, aber auch Steam, GOG.com), von denen die Spieldaten stammen müssen, variieren. Ein weiteres Beispiel ist Exult, eine nachprogrammierte Engine für Ultima VII und Ultima VII Teil 2.
Obwohl damit so gut wie alle DOS-Spiele auf modernen Systemen spielbar sind, ist DOSBox keine Spiel-Engine, sondern ein Emulator für eine ganze Plattform: den IBM PC inklusive des darauf laufenden Betriebssystems MS-DOS. Auch „PC Booter“ sind damit spielbar.