Entwicklung einer formalen Ablaufbeschreibung für 3D-Computerspiele auf Basis von Storyboards
Bachelorarbeit von Michael Hilus
Motivation
3D-Computerspiele erfreuen sich in allen Altersgruppen einer großen Beliebtheit. Deren Verkaufszahlen schießen buchstäblich nach oben. Angetrieben durch viele neue Spieleplattformen, wie Netbooks, Table-PCs und auch Handy werden Spiele zu einem alltäglichen Gut.
Die Entwicklung von Spielen ist aber teuer und dauert lange. Denn jedes Spiel, insbesondere der Ablauf im Spiel wird individuell entwickelt. Die Idee muss entstehen, ein Spielkonzept erarbeitet, 3D-Modelle erstellt und der Ablauf, das Gameplay, in eine Beschreibung überführt werden. Die Entwicklung der Ablaufbeschreibung wird durch Programmier-Frameworks und Autorenwerkezuge erleichtert. Beides bietet den Entwicklern graphische Oberflächen und verschiedenen Techniken zur Ablaufbeschreibung. Hauptsächlich werden zwei Techniken eingesetzt: Programmierung und Modellierung. Bild 1 stellt die Techniken in Abhängigkeit von Aufwand und Flexibilität dar. Programmierung meint: Eine Schar von Entwicklern erstellt den Ablauf durch Schreiben von Programmcode. Dies ist flexibel, treibt den Aufwand aber in die Höhe. Dem Gegenüber steht die Modellierung: Entwickler erstellen mit graphisch-unterstützten Sprachen eine Ablaufbeschreibung, die von der eingesetzten Software in einen Programmablauf umgesetzt wird. Selbstredend existieren auch hybride Lösungen, die Modellierung und Programmierung kombinieren.
Obgleich alle Techniken Vorteile besitzen, schränken sie die Entwickler ebenfalls eins. So sind die Entwickler heute entweder flexibel oder an starre Restriktionen bestehende GUIs gebunden.
Zielsetzung
Ziel dieser Arbeit war eine formale Ablaufbeschreibung, mit der die Entwicklung von 3D-Computerspielen, insbesondere deren Abaufbeschreibung beschleunigt und vereinfacht werden kann.
Ansatz ist die Unified Modelling Language, dessen graphische Konstrukte in maschinenlesbarer Form für die Ablaufbeschreibung geeignet erscheinen. Die Annahme ist, dass die maschinenlesbare graphische Modellierungssprache zur Ablaufbeschreibung die Vorteile der Programmierung und der Modellierung vereint, ohne ihre Nachteile zu übernehmen. Die Programmierung soll erheblich vereinfacht werden, gleichzeitig soll der Entwickler den Spielablauf beliebig komplex umsetzen können.
Vorgehen und Ergebnisse
Im Rahmen der Arbeit wurde untersucht, welche Funktionen in einem 3D-Computerspiel mit der Ablaufbeschreibung modellierbar sein müssen. Dazu gehören zum Beispiel Bewegungen der Kamera, Einblendungen von Bildern oder das Abspielen von Animationen, aber auch Benutzereingaben. Dies erfolgte durch eine Analyse von Computerspielen und anderen 3D-Anwendungen. Zusätzlich wurde ermittelt, in welche Relationen diese Funktionen normalerweise in einem Spiel stehen. Als Ergebnis entstand ein Katalog aus Funktionen und Relationen, die ein komplexes 3D-Computerspiel ausmachen.
Aufgrund dieser Informationen wurde eine Modelliersprache auf Basis der UML entwickelt. UML-Klassen- und Aktivitätsdiagramme dienten als Basis. Eine formale Beschreibung der Semantik der Diagramme ermöglichte die Abbildung der Funktionen und Relationen auf die Elemente der UML. Um den Zweck der UML-Konstrukte möglichst bei zuhalten erfolgte vorab eine Analyse des Informationsgehalt und der Konstrukte. Wesentlich dabei war zu klären, was die Konstrukte leisten.
Das Ergebnis ist eine graphische Sprache auf Basis der UML. Bild 2 zeigt einige Beispiel. Dargestellt sind Zustandsdiagramme und ein Aktivitätsdiagramm. Diese werden mit der Software Magic Draw UML erstellt, als XML-Dateien abgespeichert und anschließend von einem eigens entwickelten Interpreter verarbeitet.
Zur Demonstration der Möglichkeiten wurde die Ablaufbeschreibung getestet, indem einige Spielszenen umgesetzt worden sind. Dazu wurden Szenen eines 3D-Rollenspiel erstellt, dessen Ablaufbeschreibung ausschließlich mit der entwickelten Sprache modelliert wurde. Damit wurde dessen Praxistauglichkeit . Bild 3 und 4 zeigen Screenshots aus dem entwickelten Spiel. In dem Spiel bewegt der Spieler sich in einer dreidimensionalen Welt, interagiert mit virtuellen Charakteren und bedient technische Systeme. Das Spiel zeigte, dass die Erstellung einer Ablaufbeschreibung auf Basis von UML flexibler ist als andere graphische Modelliersprachen, dennoch den Aufwand für die Entwickler reduziert.