Um die künstliche Umgebungen für die Stimuli der Linguisten zu erzeugen, habe ich mich für die Gameengine Irrlicht entschieden. Wieso? Die Bedienung ist nicht zu kompliziert, ist gut dokumentiert und wird durch eine sehr aktive Community unterstützt. Und sie steht unter einer freien Lizenz. Und sie ist plattformunabhängig.
Es ist eine in C++ geschriebene freie Cross Plattform 3D Graphik Engine. Sie hat eine gute API mit der man komplexe 3D und 2D Anwendungen erstellen kann.
Die Engine stellt alle gängigen Features wie dynamische Schatten, Partikelsysteme, Charakter Animation und Kollisionserkennung zur Verfügung. Alle Funktionen sind
über eine C++ Schnittstelle verfügbar.
Der Programmierer braucht sich nicht darum zu kümmern welche 3D API von Irrlicht benutzt wird. Die Irrlicht API ist völlig abstrakt und übersetzt alle Aufrufe in die
richtigen Befehle der Ziel API. Beim Start muss der Engine nur mitgeteilt werden, welche API verwendet werden soll. Mit dem Projekt werden zwei Software Renderer
mitgeliefert. Wenn verfügbar, können OpenGL und DirectX Renderer verwendet werden.
Skriptsprachen sind meistens robuster und verursachen weniger Abstürze. Änderungen am Spielablauf bedeuten daher weniger Risiko für den Entwicklungsprozess. Spieledesigner, welche den Inhalt der Spiele bestimmen, sind nicht notwendigerweise professionelle Programmierer, Skriptsprachen sind jedoch auch für Nicht-Programmierer schnell zu erlernen. Am Inhalt des Spiels werden meistens viele Änderungen vorgenommen. Skriptsprachen machen es einfach, die Programmierung zur Laufzeit interaktiv zu ändern, ohne das Spiel neu starten zu müssen. Eine Skriptsprache ist meistens langsamer als andere Programmiersprachen wie etwa C++. Die Spiel-Engine selbst ist daher meistens nicht in einer Skriptsprache programmiert, sondern in aller Regel in C++. Die Spiel-Engine stellt aber meistens eine Skriptsprache zur Verfügung. Wie ist es bei Gameengine Irrlicht? Für Irrlicht gibt es zahlreiche Anbindungen an Skriptsprachen, wie IrrLua, JIrr, IrrPascal.
IrrEdit ist ein freier 3D-World Editor. Er kann die Welten in das Irrlicht-eigene .irr-Format exportieren, was die Zusammenarbeit mit Irrlicht erleichtert. Es können alle für eine Szene erforderlichen Elemente, wie zum Beispiel Lichter, Partikelsysteme, Animationen etc. gesetzt werden. 3D-Objekte müssen durch andere Anwendungen erstellt werden, IrrEdit kann diese dann importieren. Irrlicht unterstützt viele 3D-Formaten, die auch von preiswerter und kostenloser 3D-Modelling Software unterstützt wird, so zum Beispiel: .3ds (Blender), .x (Milkshape) und .obj (Delgine DeleD). Da aber das Erstellen von 3D-Objekten in IrrEdit (bis auf einzelne grafische Primitive) nicht möglich ist, war der nächste Schritt, die am häufigsten verwendeten Objekte mit Hilfe von Maya zu modellieren und eine sog. Mesh Library zu erstellen, wo man die Objekte als .obj Datei gespeichert sind. Hier gelangt man zur Mesh Library.
Das Ziel:
Die Erzeugung einer Landschaft mit einfachen Bäumen, Häusern, in der man ein einfaches Automodell, ein einfaches Tiermodell bzw. ein
einfaches Menschmodell mit der Tastatur navigieren kann.
1. Die Modellierung der einzelnen Modelle in Maya (Modell des Autos, Menschenmodell) und Erstellung einer Charakteranimation in Milkshape 3D bzw. Laden der Modelle aus der
Mesh Library.
2. Das Speichern des modellierten Autos als .obj Datei (Exportformat bei Maya) und des animierten Pferdes und Menschenmodells als .md2 oder .x Datei (Exportformate bei Milkshape 3D).
3. Das Laden der Landschaft (statische Objekte) in IrrEdit.
4. Die Anbindung dieses .irr files aus IrrEdit ins Programm.
5. Das Hochladen und die Bewegung der Modelle durch Tastatur wird programmiert.
6. Das Ergebnis sieht so aus (Klicken auf die Bilder).