22.07.2014 Aufrufe

Studienarbeit

Studienarbeit

Studienarbeit

MEHR ANZEIGEN
WENIGER ANZEIGEN

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 -

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!