Rift-Diving ist das Ergebnis eines Projektpraktikums zum Thema „virtuelle Realität“ am Institut für Computergrafik der RWTH Aachen. Die vorgegebene Aufgabe bestand darin, eine Tech-Demo für die Oculus Rift zu entwickeln.

Development time 2014
Development duration 3 Months
Technologies C++, OpenGL
License Closed source
Team size 5 developers

Um das Übelkeitsgefühl (Reisekrankheit) zu vermeiden, das bei Spielen für VR-Hardware manchmal auftritt, platzieren viele Spiele den Spieler in ein virtuelles Cockpit, zum Beispiel in einem Fahrzeug. Dies gibt dem Gehirn eine Erklärung dafür, dass Körper des Spielers sich nicht bewegt, während sich um ihn herum die Welt bewegt. Wir dachten, dass dieses Konzept auch für Unterwasser-Tauch-Szenarios funktionieren könnte. Der Spieler sollte einen „Torpedo“ halten, mit dem er sich bewegt. Dies hatte den erwünschten Effekt: Keine unserer Testpersonen klagte nach dem Spiel über Übelkeitsgefühle.

Um die Größe der Welt zu begrenzen, die wir für das Spiel zu entwerfen hatten, legten wir uns auf Höhlentauchen als Szenario fest. Das Ziel des Spiels ist es, einen Ausgang aus der Höhle zu finden, bevor der Sauerstoffvorrat verbraucht ist.

Oculus Rift
Oculus Rift, die verwendete VR-Brille
(Quelle)

Das Spiel wird mit einer Oculus Rift-Brille gespielt und mit einem Wii-Controller bedient. Das Nunchuck-Gerät kontrolliert dabei die Bewegung des Spielers. Die eigentliche Wii‐Fern­bedienung repräsentiert eine Taschenlampe, die der Spieler verwenden muss, um sich in den dunkleren Teilen der Höhle zurechtzufinden.

Der Quellcode des Spiels wurde von Grund auf selbst geschrieben, lediglich OpenGL und eine Bibliothek zur Kommunikation mit dem Wii-Controller wurde verwendet.

Weitere nennenswerte Features sind:

  • Vorberechnete globale Beleuchtung
  • Schwarm-Simulation für Fische
  • Ein selbst entwickelter Postprozess, der eine Art körniges depth-of-field erzeugt, um einen Unterwasser-Effekt zu simulieren
  • Triplanar-projection Texturierung und entsprechende Beleuchtung
  • Ein sehr schöner Postprozess-Effekt, der die leicht verschmutzte Tauchermaske simuliert
  • Nahtloses level-of-detail der Höhlenwände mit Tessellation

Ich war dabei hauptsächlich für das Rendering, die Postprozesse und die Gesamtstruktur der Software zuständig. Die Entwicklung fand in einem eingespielten Team von fünf Informatikstudenten statt. Wir trafen uns alle zwei Wochen und entwickelten dabei ohne Rücksicht auf Wartbarkeit rein Zielorientiert, was zu sehr guten Ergebnissen angesichts des geringen Entwicklungsaufwandes führte.

Mehr Projekte