Master-Thesen aus dem Studiengang Game Engineering und Simulation

Videospiele sind ein ausdrucksstarkes Medium in der heutigen Zeit, welche immer noch unterschätzt werden. Viele Personen sehen diese als Spielzeug für junge Leute an und zeigen wenig Akzeptanz.

Obwohl “Persuasive Games” ein relativ neues Feld der Spielentwicklung darstellt, ist es ein sehr effektives Medium um, spielend Lerninhalte zu vermitteln. Es liegen verschiedene Modelle vor um lernbasierte Spiele zu entwickeln und den Design Prozess zu unterstützen.

Um Bewusstsein für die IT Sicherheit zu schaffen ist es unverzichtbar laufend Schulungen zu diesem Thema abzuhalten. Diese Schulungen stützen sich auf bestehende Unternehmensrichtlinien. Da Mitarbeiter meist das schwächste Glied im Umfeld eines technologischen Unternehmens darstellen, sind diese Sicherheitsrichtlinien grundlegend.

Diese Arbeit behandelt die Erstellung eines IT sicherheitsrelevanten Lehrspiels, welches durch die Unterstützung von “Persuasive Games” wirksam eingesetzt werden soll.Des Weiteren werden Ergebnisse einer Online Umfrage ausgewertet um das Ergebnis wissenschaftlich zu belegen.

Echtzeit Terrain-Rendering hat viele Anwendungen, von Kartografie und Landschaftsplanung bis hin zu Flugsimulation und Computerspielen.

Diesen Terrains liegen oft riesige Datensätze zugrunde, die zu groß sind um in Brute-Force-Manier gerendert zu werden. Unter Umständen passen solche gar nicht erst als Ganzes in den Hauptspeicher eines Computers. Klassische Detaillierungsgrad-Methoden, welche die Geometrie von getrennten, untereinander unabhängigen Objekten vereinfachen, sind nicht auf Terrains als einzelne große durchgehende Oberflächen anwendbar.

Geometry Clipmaps ist eine Methode die zuerst im Jahr 2004 von Losasso und Hoppe eingesetzt wurde um das Effizienzproblem sowohl beim Rendering als auch beim Speicherbedarf zu lösen. Sie rendert das Terrain als einen Satz von verschachtelten rechteckigen Gittern von unterschiedlichen Auflösungen, welche um den Betrachter angeordnet sind. Diese verschieden detaillierten Ebenen morphen ineinander, um eine einzelne, durchgehende Oberfläche zu generieren. Des Weiteren wird ein verlustbehaftetes Kompressionsverfahren benutzt, um andernfalls zu große Terrains im Hauptspeicher ablegen zu können. Im Jahr 2005 haben Asirvatham und Hoppe diese Methode unter intensiver Ausnutzung von moderner Grafik-Hardware verbessert, um eine noch bessere Leistung zu erzielen.

Diese Arbeit stellt eine Implementierung von Geometry Clipmaps vor, welche auf diesen bisherigen Implementierungen aufbaut. An Stelle von verlustbehafteter Kompression werden die Daten jedoch zur Laufzeit von der Festplatte gelesen, wie es zuvor schon für die Implementierung von Texture Clipmaps gemacht wurde. Auf diese Weise wird eine möglichst genaue Repräsentation der Daten erreicht und Terrains von jeder Größe können gerendert werden, solange sie in den Festplattenspeicher passen. Des Weiteren wurde eine Raycasting Methode für das Terrain entwickelt, welche von der zum Rendern verwendeten Datenstruktur profitiert. Darüber hinaus wurde diese Methode mit der Spiel-Engine Unity realisiert, sodass sie sich an deren Funktionen bereichern kann und damit sie in andere Unity Applikationen einfach zu integrieren ist.

Es wurde gezeigt, dass das Lesen der Terraindaten von der Festplatte zur Laufzeit eine sinnvolle Alternative zur verlustbehafteten Kompression sein kann. Die Implementierung ist visuell in Unity integriert, indem sie mit der dynamischen Beleuchtung und dem Schattenwurf in einer Szene, die auch andere gerenderte Inhalte umfassen kann, interagiert.

Der Durchbruch in der Virtual Reality Welt, mit Geräten wie der Oculus Rift, bietet neue und interessante Möglichkeiten zur Gestaltung von Game Design. Horror als Thema ist in Spielen durchaus interessant, da Spieler nicht nur wie im Film zuschauen, sondern aktiv in das Spielegeschehen eingreifen können.

Diese Arbeit beschäftigt sich mit den Game Design Möglichkeiten im Virtual Reality Umfeld und wie sich die Horrorelemente eines Spieles mit der Oculus Rift sinnvoll verbinden lassen.

Recherchen zu anwendbaren Game Design Mechaniken und in der Vergangenheit verwendeten Videospielelementen werden durchgeführt. Zusätzlich wird in Unity3D ein eigenständiger Level entwickelt der sowohl mit der Oculus Rift als auch auf einem normalen Computerbildschirm spielbar ist. In diesem Level werden verschiedene, aber zum Horrorspielgenre passende, Mechaniken des Game Designs implementiert werden. Ein eigenstendiger Test bei dem Teilnehmer den Prototyp testen wird durchgeführt. Dabei sollen die Teilnehmer Fragebögen, in Form von Single-Choice Fragen, Multiple-Choice Fragen und Likert-Skalen, ausfüllen und auf Videokameras aufgezeichnet werden. Die daraus resultierenden quantitativen und qualitativen Daten werden evaluiert.

Diese Arbeit zeigt die einzelnen Schritte von der Idee, über die Umsetzung bis zum finalen Prototyp und wie Entscheidungen für die technischen und grafischen Elemente getroffen wurden.

Genetische Algorithmen finden häufige Anwendung in Bereichen wie Optimierung, Suchverfahren oder Prognosealgorithmen, da sie es einerseits ermöglichen, in moderater Laufzeit hochqualitative oder sogar optimale Lösungen zu erzielen, sowie andererseits eine herausragende Eignung für Parallelisierung aufweisen. Kombiniert mit der stetig steigenden Rechenleistung und Programmierbarkeit moderner Grafikkarten ergeben sich somit vielversprechende Aussichten für verschiedenste Anwendungsgebiete. Diesbezüglich existieren bereits einige Studien in der Fachwelt, allerdings ist die überwiegende Mehrheit der zugehörigen Implementierungen im proprietären CUDA-Framework des Hardware-Herstellers NVIDIA realisiert, während die Potentiale von frei zugänglichen und herstellerunabhängigen Tool-Sets wie OpenCL kaum genutzt werden. 

Daher besteht das Ziel dieser Arbeit darin, eine umfassende Analyse der Möglichkeiten durchzuführen, die sich durch die Anwendung von OpenCL zur Parallelisierung von Evolutionären Algorithmen ergeben. Dies umfasst unter anderem die Identifizierung der ausschlaggebenden Parameter und deren bestmöglicher Konfiguration. 

Zu diesem Zweck wird zuerst eine umfassende Literaturstudie zum Thema durchgeführt, um anschließend einige Referenzapplikationen zur weiteren Evaluierung zu entwickeln. Diese beinhalten einen klassischen Genetischen Algorithmus zur Lösung des bekannten Problems des Handlungsreisenden, sowie einen breiter anwendbaren Algorithmus zur Genetischen Programmierung. Beide Programme werden auf Laufzeitverhalten und Lösungsqualität unter mehreren Konfigurationen geprüft. Im Vergleich zu einer entsprechenden sequentiellen Implementierung ergaben die Messungen eine bis zu 10-fache Laufzeitreduktion für die Fitnessberechnung in der ersten Referenzapplikation bei Parallelisierung auf der CPU, während die übrigen Teile des Programms weniger aussichtsreiche Werte lieferten. Die Applikation für Genetische Programmierung dagegen zeigte wesentlich vielversprechendere Beschleunigungen um das bis zu 145-fache bei Parallelisierung auf der GPU.

Diese Masterarbeit behandelt das Thema der automatischen Textgenerierung in Videospielen. Natural Language Generation (NLG), die Generierung von natürlichem, menschlich wirkendem Text, wird in Videospielen bisher nur sehr selten genutzt. Diese Arbeit vermittelt daher zuerst Grundwissen über das Thema NLG. Des Weiteren werden mögliche Anwendungsgebiete für automatische Textgenerierung in Videospielen ermittelt und analysiert, sowie unterschiedliche NLG Methoden beleuchtet. Basierend auf Wissen, Anwendungsgebieten und Methoden werden daraufhin einige Praxisbeispiele vorgestellt, welche den Nutzen von NLG in Videospielen hervorheben. Zuletzt folgt eine Ergebnisanalyse der Praxisbeispiele, in der sowohl Vor- und Nachteile der verwendeten Methoden veranschaulicht werden, als auch auf unerwartete oder interessante Resultate hingewiesen wird.

Als Basis der Arbeit dienen zahlreiche Bücher und wissenschaftliche Arbeiten zum Thema NLG und Game Design, sowie eine breit gefächerte Auswahl an Videospielen. Durch Analyse von bestehenden NLG Systemen, sowie aktuellen Verwendungen von Text in Videospielen entstanden Thesen und Annahmen, welche im Praxisteil der Arbeit auf die Probe gestellt wurden. Bisher gibt es nur wenige Videospiele, die NLG aktiv nutzen. Diese Arbeit soll dem Leser oder der Leserin bewusst machen, welche Möglichkeiten sich durch die Verwendung von NLG in Videospielen ergeben. Sie soll weiters als Einstiegshilfe in die Thematik dienen und interessierten und erfahrenen Game Developern die Möglichkeit bieten, selbst NLG Systeme in Videospielen umzusetzen.

example_bayyarapu.jpg (374.23 KB)
example_rud.jpg (449.56 KB)
example_wbs.jpg (351.69 KB)

Für die unterschiedlichsten Anwendungen wird an Gestenerkennung geforscht. Diese Anwendungen umfassen die Interaktion mit Robotern, das Erfassen von Tätigkeiten und andere diverse Anwendungen im Unterhaltungsbereich. In vielen Fällen ist jedoch die Erfassung der BenutzerInnen aufwendig, da sie entweder teure motion capturing-Verfahren, komplizierte optische Systeme oder an den Körper angebrachte Sensoren verwendet. Mit dem Aufkommen der Microsoft Kinect ist ein kostengünstiger, optischer Sensor für den Innenbereich auf den Markt gekommen, welcher es auf Grund der zugehörigen Skeletterkennung möglich macht, Gestenerkennung kommerziell zu nutzen.

 

In dieser Arbeit wird ein Gestenerkennungssystem entwickelt, das auf der Skeletterkennung der Microsoft Kinect basiert. Dieses System ist darauf ausgelegt, ohne große Trainingsdatensätze auszukommen und Gesten anhand weniger Vorlagen zu erkennen. Dazu wurde eine beschleunigte Variante des aus der Spracherkennung bekannten Dynamic Time Warping-Algorithmus eingesetzt. Die Bewegungen der BenutzerInnen werden in multivariante Zeitreihen umgewandelt, welche dazu verwendet werden, mittels einer multivarianten Zeitreihenvorhersage die möglichen Gesten der BenutzerInnen vorhersagen zu können.Dadurch können sich die Anwendungen frühzeitig auf Aktionen der BenutzerInnen einstellen.

Das Gestenerkennungssystem ist mit acht Gesten und einer unterschiedlichen Anzahl von Vorlagen getestet worden. Die evaluierte Erkennungsgenauigkeit erreicht einen Maximalwert von 93,3% mit 18 Vorlagen pro Geste und liegt durchschnittlich bei 85,6%.

 

Bei der Vorhersage konnten durchschnittlich 0,57 Sekunden vorhergesagt werden.  Alle getroffenen Vorhersagen waren in 36,9% der Fälle richtig und von allen erkannten Gesten wurden 63,2% richtig vorhergesagt.

In Kartenspielen resultiert die Spielstärke von menschlichen Spielern aus den Summen ihrer Erfahrungen. Dieses Lernen durch Erfahrung kann durch Maschinen Lernen nachgeahmt werden.In dieser Master Thesis wurde eine bestehende Künstliche Intelligenz für das Kartenspiel „Schnapsen“ durch ein Bayes’sches Netz erweitert. Das Bayes’sche Netz übernimmt dabei die Aufgabe einer heuristischen Funktion, die bestimmt, mit welcher Wahrscheinlichkeit der gegnerische Spieler eine Karte sticht. 

Durch Maschinen Lernen mit Testdatensätzen wurden die Parameter des Bayes’schen Netzes optimiert. Mit diesem Prototyp wurden im Blindversuch sechshundert Spiele gegen eine Testgruppe von Spielern vorgenommen und statistisch ausgewertet. In der Arbeit wird so gezeigt, dass eine Verbesserung der Spielstärke einer Künstlichen Intelligenz durch den Einsatz eines Bayes‘schen Netzes möglich ist.

In den letzten Jahren hat sich die traditionelle Spieleentwicklung entscheidend verändert. Während früher nur wenige Personen für die Entwicklung eines Videospiels verantwortlich waren, arbeiten heutzutage oft mehrere hundert Personen an einem einzigen Spiel. Gleichzeitig stieg das Risiko der AAA-Spiele enorm an. Daher und um den Prozess der Spieleentwicklung zu beschleunigen, setzen die verschiedenen Studios Game-Engines ein. Diese sind für die Entwickler und Entwicklerinnen ein umfangreiches Werkzeug und ermöglichen die einfache Unterstützung von mehreren Plattformen – wie PC und Konsolen – ohne großen Aufwand. Ein häufig auftretendes Problem bei der Entwicklung von Spielen ist die Dauer der Kompilierung und die damit verbundenen Iterationszeiten. Um diese zu verkürzen, werden üblicherweise Skripte für spielrelevanten Code oder die Künstliche Intelligenz verwendet. Während fast der komplette Quellcode einer Game-Engine in C++ entwickelt wird, bestehen Skripte im Spielebereich fast ausschließlich aus Skriptsprachen, wie Lua oder Python, und werden nur selten in einer statischen Sprache wie C oder C++ implementiert.

iese Arbeit beschäftigt sich mit der Verwendung von C++ als Skriptsprache in der Spieleentwicklung, um herkömmliche Skriptsprachen wie Lua oder Python in diesem Bereich abzulösen. In den Grundlagen wird auf verschiedene relevante Begriffsdefinitionen eingegangen. Anschließend werden spezielle Sprach-Konstrukte von C++ erläutert. So wird unter anderem auf die Verwendung des virtual-Schlüsselwortes eingegangen und die Unterschiede von statischen und dynamischen Bibliotheken werden beleuchtet. Weiters wird der - in Verbindung mit dieser Thesis erstellte - praktische Prototyp vorgestellt und dessen Funktionalität dargelegt. Die Funktionalität des Prototyps besteht unter anderem aus Speicherverwaltung, Serialisierung, Debugging und dem Laden und Entladen von Skripten. Es wird besonderes Augenmerk auf die Fehlerbehandlung und die Eingliederung der Skripte in eine Game-Engine gelegt. Dadurch, dass der Prototyp für die Plattformen Windows 7 und Playstation 3 entwickelt wurde, wird auf die Playstation 3 im Allgemeinen eingegangen und Unterschiede in der Implementierung des Prototyps zwischen den Plattformen werden erwähnt.

Video zur Master Thesis