Spiel-Engine
Eine Spiel-Engine, auch Game-Engine oder Game Engine (von englisch game engine [ ] „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.[1]
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.[2]
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.[2]
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.[2]
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.[3][2]
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.[2]
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.[2]
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.[2]
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,[4][5] 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.
Liste von Spiel-Engines
Literatur
- Jason Gregory: Game Engine Architecture. 3. Auflage. CRC Press, 2019, ISBN 978-1-138-03545-4 (englisch).
- Jonathan Blow: Game Development: Harder Than You Think. In: ACM Queue. Band 1, Nr. 10, Februar 2004, S. 28–37, doi:10.1145/971564.971590 (queue.acm.org).
- Eike Falk Anderson, Steffen Engel, Leigh McLoughlin, Peter Comninos: The case for research in game engine architecture. In: Proceedings of the 2008 Conference on Future Play: Research, Play, Share (= Future Play ’08). ACM, New York, NY, USA 2008, ISBN 978-1-60558-218-4, S. 228–231, doi:10.1145/1496984.1497031 (c-sheep.org [PDF; abgerufen am 11. September 2012]).
- Steed, Anthony and Oliveria, Manuel Fradinho: Networked Graphics: Building Networked Games and Virtual Environments. Morgan Kaufmann, 2009, ISBN 978-0-12-374423-4.
- White, Walker and Koch, Christoph and Gehrke, Johannes and Demers, Alan: ACM Queue. Band 6, Nr. 7. ACM, November 2008, ISSN 1542-7730, S. 18–25, doi:10.1145/1483101.1483106.
Einzelnachweise
- ↑ Unity, UDK, Unreal Engine 4 or CryENGINE – Which Game Engine Should I Choose?, digitaltutors.com (englisch), Zitat: “The most popular game engines are Unity, UDK, Unreal Engine 4 and CryENGINE.” abgerufen am 31. Oktober 2014.
- ↑ a b c d e f g Jason Gregory: Game Engine Architecture. 3. Auflage. CRC Press, 2019, ISBN 978-1-138-03545-4, S. 39 ff. (englisch).
- ↑ Ian Millington: Game Physics Engine Development. 2. Auflage. Elsevier (Morgan Kaufmann), 2010, ISBN 978-0-12-381976-5, S. 1 ff. (englisch).
- ↑ Howard Wen: Exult: The Open Age of Ultima. In: Linuxdevcenter. O’Reilly Media, 24. April 2003, abgerufen am 19. Januar 2016 (englisch): „Exult replaces Ultima VII’s engine so that the game can be played on other operating systems and platforms. It also expands the graphics capabilities of the game and adds features not present under the original engine. (A legal copy of Ultima VII is required in order to use Exult.) Lord British (aka Richard Garriott) himself, the creator of the entire Ultima franchise, has given the Exult team his unofficial blessing.“
- ↑ Exult (englisch) – Entwicklerseite bei SourceForge (Abgerufen am: 24. März 2013)