Deine Reise mit der Titan IC beginnt JETZT

Erde – Titan/ Saturn
Datum: 20.7
Boarding ab: 15 Uhr
Terminal: BB
Gate: 110

Grundgedanke von „Titan IC“ war die Entwicklung eines VR-Spiels mit Escape-Room Elementen in Unity. Zur tieferen Immersion während der Interaktion mit den digitalen Elementen kam der Gedanke auf, das in der Meta Quest integrierte Handtracking zu nutzen.  Ziel des Spiels sollte es sein, eine nicht lösbare Situation so lange wie möglich am Laufen zu halten.

Zusätzlich sollten die Funktionalitäten von Patrick Harms’ Vivian Framework darin Verwendung finden. Da das Framework darauf ausgelegt ist, Interaktionselemente zu gestalten und zu verknüpfen, bot es sich an, eine Vielzahl von Puzzles zu erstellen, die auf diesen Elementen basierten.

Jetzt bist du der Captain auf deinem eigenen Raumschiff

Willkommen auf der Titan IC

Im Folgenden wurde sich auf das Thema “Raumschiff” geeinigt, da es sowohl die Möglichkeit bot, mehrere Bedienelemente zu gestalten als auch genügend Interpretationsfreiraum ließ, um kreativ flexibel zu bleiben. Zusätzlich würde die Situation eines “kollabierenden Raumschiffs” auch eine zunehmende Schwierigkeit der Puzzles rechtfertigen.

Während des weiteren Brainstormings bildete sich die Idee aus, eine Pulsmessung in Realzeit vorzunehmen, die sich auf bestimmte Element im Spiel auswirken sollte, was Interesse im Team weckte.

 

Das Design von Titan IC

„Titan IC“ lässt sich unter dem Genre Science-Fiction einteilen und genau danach soll sich das Design richten. Im jetzigen Stand betrifft dies den Raum, Puzzle, GUI und Font. Bei letzteres handelte es sich um die Schriftart Elianto, die sich nur in ein paar Buchstaben von gewöhnlichen Fonts unterscheidet. In dieser Schrift soll auch das zukünftige Logo erstellt werden.

Beim Raum und den darin befindenden Objekten, einschließlich der Puzzels, wurden Annäherungen an spezifische Stilrichtungen, wie beispielsweise Cyberpunk, verworfen. Stattdessen kann man eine Fusion aus gegenwärtigen und futuristischen Elementen wiederfinden. Dadurch wird den Spieler*innen eine leichtere Orientierung in der Szene ermöglicht.

 

Für den zweiten Abschnitt des Semesterprojektes wurden verbliebene Ziele aus dem ersten Semester übernommen und neue Ziele definiert. Diese Ziele umfassten

  • Anpassung des Raums 

Die Optik des Raumes wurde verbessert, indem zum einen die Wände eine Tiefenwirkung durch die Nachmodellierung der Textur erhielten und Partikelsysteme eingebaut wurden. Darüber hinaus ist es möglich, mit Objekten im Raum zu interagieren. So kann der/die Spieler*in den Stuhl nehmen und durch den Raum werfen.

  • Überarbeitung des Szenenaufbaus

Das Spiel wurde in Startscreen, Tutorial, Intermezzo, Hauptspiel und Game-Over-Screen unterteilt, um Spielfunktionen leichter trennen zu können. 

  • interaktive Rätsel über das Vivian-Framework

Über das Semester hinweg wurden fünf voll funktionsfähige Virtuelle Prototypen mit dem Vivian-Framework umgesetzt, die als Puzzles in der Hauptszene fungieren. Der Aufbau der Statemachines wurde einheitlich gehalten, damit die Schnittstelle mit dem Puzzle Manager leicht umsetzbar war (States: Default, Error, Success). Bei Bedarf, wie zum Beispiel Komplikationen mit dem Handtracking, wurden die Puzzle überarbeitet und angepasst. Den Puzzles wurden zusätzlich zufällige Aufgabenstellungen und Timeout-Zeiten in ihren States zugewiesen, um Abwechslung zu generieren. Da das Vivian Framework allerdings für simplere Virtuelle Prototypen ausgelegt ist, stellte sich die Umsetzung einiger Puzzle als schwierig, aufwendig und zeitintensiv heraus und resultierte in sehr langen Quellcodes.

  • Lauffähigkeit der Anwendung

Das Projekt sollte nicht nur auf High-End Gaming PCs lauffähig sein, sondern auch auf mobilen Laptops. Mehrere Laptops wurden hierzu durch Updates der USB Treiber, Grafiktreiber, und BIOS für die VR Anwendung vorbereitet. Allein diese Updatevorgänge auf beiden Laptops waren sehr zeitaufwändig, es mussten die korrekten Treiber gesucht werden und die BIOS Updates schlugen wiederholt fehl. Die Grafik und Rendersettings des Projekts wurden für eine höhere Framerate angepasst, wofür sehr viel herumexperimentiert wurde. Durch spezielle Drittanbieter Tools sollte sowohl eine native Portierung auf die Meta Quest, als auch kabelloses Streaming ermöglicht werden. Die Portierung selbst erforderte einige grundlegende Maßnahmen, um überhaupt Software auf das Headset laden zu können. Das Live Streaming Feature funktionierte nach einigen Anläufen über ein lokales Router Setup problemfrei und ohne Latenz.

  • Optimierung des Handtrackings

Das Handtracking als zentrales Feature des Projektes sollte weiter verbessert     werden, um fehlerfreier zu funktionieren. Dazu wurden weitere Collider an einzelnen Handgelenkpunkten hinzugefügt und in Größe sowie Form verändert. Hierzu waren einige Testanläufe nötig, um in VR damit zu experimentieren. Ein neues Handmodell wurde implementiert, um  Handschuhe eines Raumanzugs zu visualisieren.

  • ein funktionaler Puzzle Manager

Ein Monat der Entwicklung des Puzzle Managers wurde darauf verwendet, eine Version zu erstellen, die die Prototypen direkt beeinflussen sollte. Zur Optimierung des Skripts wurde auf eine Version umgestellt, die auf Statechanges reagiert, und diese über den weiteren Verlauf an Veränderungen im restlichen Skript angepasst. 

  • Anzeige relevanter Daten über GUI

Die ursprüngliche Version des Countdowns war bereits funktional. Das Ablaufen der Zeit wurde in den Hintergrund verschoben und durch eine prozentuale Anzeige ersetzt. Die Berechnung des Countdowns wurde umstrukturiert und an die neuen Erfordernisse angepasst. 

  • Anzeige von Spielleistung im Game-Over-Screen

Die Erstellung der Szene war schnell verwirklichbar. Die Struktur der Textfelder musste an den Game Over Manager angepasst werden. Die Aktualisierung der Variablen des Game Managers, die dann ausgelesen werden, erforderte zusätzlich Zeit, was sich während der weiteren Entwicklung und beim Anpassen assoziierter Skripte wiederholte. 

  • Entwicklung einer Pulsmessungs-App 

Zum Zeitpunkt der Präsentation stand eine Funktionsfähige App auf der Smartwatch zur Verfügung, welche die Herzfrequenz der Spieler*innen per WIFI auf den PC übertragen konnte. Vergleiche mit der Android eigenen Pulsmessung oder in der Gegenüberstellung mit der von einer AppleWatch zeigen, dass die gemessenen Ergebnisse akkurat waren.

  • Aufbau eines Netzwerks zwischen App und Unity:

Die Implementierung des lokalen Servers erfolgte über das Riptide Network von Tom Weiland. Dadurch, dass das die von Weiland entwickelte Anwendung bereits lokales Networking vereinfacht und intuitiv verwenden lässt, erforderte die Gestaltung von Lokalem Server und des kommunizierenden Skripts in der Hauptanwendung wenig Zeit. Da der Verbindungsaufbau zwischen Client und Server nicht möglich war, wurde der Server nicht in die endgültige Version übernommen. 

  • Sound Design (Voice Lines, Ingame Sounds)

Die erste Version einer Implementierung von Soundeffekten und Umgebungsgeräuschen in Unity nahm relativ viel Zeit in Anspruch, da grundlegende Recherche nötig war. Diese Implementierung wurde im Nachgang durch den Soundmanager eines Teammitgliedes ersetzt. Es wurde sich ebenfalls mit 3D Audio in VR beschäftigt, um Soundquellen je nach Position des Users im Raum anzupassen.

Die Voicelines wurden einzeln nach dem zugrunde liegenden Skript aufgenommen und anschließend geschnitten und gerendert. Alle Sounds wurden in Stereo in die Anwendung geladen. Ambience wurde auf -6db normalisiert. Soundeffekte wurden je nach initialer Lautstärke und Tonpräsenz auf -6db oder -3db normalisiert. Die Voicelines wurden auf -3db normalisiert. Es wurden akkustische Effekte wie Reverb, chromatisches Autotune und Stimmoptimierung hinzugefügt, ebenso sollte ein künstlich wirkender Roboterklang erreicht werden. Jedes der rund 50 Voiceline Files musste einzeln in Adobe Audition angepasst, normalisiert, geschnitten und bearbeitet werden, ebenso wurden die Files einzeln manuell in den Code der Prototypen integriert.