Studienarbeit
Studienarbeit
Studienarbeit
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Die folgende Abbildung liefert eine schematische Darstellung für den Aufbau einer Game-Engine.<br />
Über eine Programmierschnittstelle (eine API, eine Skriptsprache oder ein visuelles Werkzeug) wird die<br />
Programmierung einer Komponente (Graphik, Physik, K.I., ...) ermöglicht. Es wird üblicherweise eine<br />
zusätzliche Abstraktionsschicht eingefügt, die Plattformunabhängigkeit ermöglicht. Diese Schicht übersetzt<br />
komplexe Aufrufe so, dass sie mittels einer Low-Level-API und des Treibers realisiert werden können. Auf<br />
diese Weise kann das darunterliegende System die gewünschten Funktionen mittels spezialisierter Hardware<br />
(GPU, Sound-Chip, Physik-Chip, ...) oder auf dem Hauptprozessor durchführen – abhängig davon, welche<br />
Möglichkeiten dem System zur Verfügung stehen.<br />
Eine Game-Engine abstrahiert also von der zugrundeliegenden Plattform und niederen APIs, wodurch die<br />
Komplexität für den Programmierer sinkt. Außerdem stellt die Engine oft benötigte Funktionalität zur<br />
Verfügung, wodurch eine Wiederverwendbarkeit im softwaretechnischen Sinn gegeben ist. Weitere<br />
Erläuterungen zu diesem Thema bietet Kapitel 2.2 (siehe dort).<br />
Da eine Game-Engine eine Reihe von Modulen für die verschiedenen Spezialaufgaben besitzt, sollte sie in der<br />
Regel auch über ein System verfügen, das die Austauschbarkeit dieser Module erlaubt, falls zum Beispiel die<br />
Physik-Berechnung durch ein anderes Physik-Modul erfolgen soll. Diese Austauschbarkeit stellt hohe<br />
Anforderungen an das System, welches diese komponentenorientierte Sicht erlauben muss. Es ist bei heutigen<br />
Engines üblich, dass zusätzliche Funktionalität über ein Plugin-System ermöglicht wird, wie dies<br />
beispielsweise bei der Engine OGRE der Fall ist (siehe Kapitel 2.3.2).<br />
Eine Game-Engine kann unter Umständen auch eine Laufzeitumgebung darstellen, wenn sie eine Art<br />
„Plattform“ für das Spiel darstellt. In diesem Extremfall bietet die Game-Engine eine komplette virtuelle<br />
Umgebung für Computerspiele – sie werden dann nur noch mit Mitteln der Game-Engine erzeugt, etwa durch<br />
Skriptsprachen oder visuelle Programmierung.<br />
Jedoch ist diese Vorgehensweise nicht allgemein üblich. Die meisten Game-Engines bieten zwar<br />
Skriptsprachen und visuelle Editoren zur Vereinfachung an. Sie sind jedoch eher mit Software-Bibliotheken<br />
vergleichbar: Das eigentliche Spiel wird in einer Hochsprache wie C++ programmiert und nutzt die Game-<br />
Engine und weitere Komponenten als Bibliothek. Zur Laufzeit werden dann verschiedene Aspekte durch die<br />
Game-Engine kontrolliert, etwa physikalische Abläufe oder das Verhalten von künstlichen Agenten.<br />
2.1.2 „Primitive“ Game-Engines<br />
Eine Game-Engine, wie im vorherigen Abschnitt beschrieben, enthält immer eine Render-Engine. Es ist jedoch<br />
möglich, statt einer vollwertigen Game-Engine nur mit einer leicht erweiterten Render-Engine zu arbeiten. In<br />
- 7 -