← zurück

Spielzeug Kiste

Master • Studium • XR • Netzwerkcode · 2024

Mixed Reality RTS für die HoloLens 2 mit Multiplayer und KI Einheiten.

Spielzeugkiste Poster

Highlights

Hier stelle ich ein Masterprojekt vor, das im Studiengang Game Engineering & Visual Computing an der Hochschule Kempten entstanden ist. Das Projekt ist ein Mixed-Reality Echtzeitstrategiespiel für die Microsoft HoloLens 2. Ziel war es, eine gemeinsame Spielwelt zu schaffen, in der zwei Spieler im selben Raum miteinander interagieren können. Gebäude und Einheiten werden direkt in der realen Umgebung platziert, während KI-gesteuerte Einheiten mit der gescannten Raumgeometrie interagieren.

HoloLens2

Projektziel

Das Ziel des Projekts war es, eine geteilte Mixed-Reality Spielerfahrung zu entwickeln. Zwei Spieler sollten im selben physischen Raum spielen können und dabei dieselben virtuellen Objekte an denselben Positionen sehen. Dafür mussten mehrere technische Herausforderungen gelöst werden:

Meine Rolle im Projekt

In diesem Projekt hatte ich mehrere Verantwortlichkeiten. Ich übernahm die Rolle des Scrum Masters und koordinierte das Team sowie die Sprintplanung. Technisch lag mein Fokus auf der Netzwerkarchitektur des Spiels. Zu meinen Aufgaben gehörten:

Technische Herausforderung

Eine zentrale Herausforderung war das räumliche Koordinatensystem der HoloLens. Jede HoloLens erzeugt beim Scannen der Umgebung ihr eigenes Koordinatensystem.
Dadurch können virtuelle Objekte bei verschiedenen Spielern an unterschiedlichen Positionen erscheinen. Ursprünglich sollte dieses Problem mit Azure Spatial Anchors gelöst werden. Da dieser Dienst während der Entwicklung eingestellt wurde, entwickelten wir eine eigene Lösung. Wir nutzten einen QR-Code als gemeinsamen Referenzpunkt und implementierten ein System zur Transformation zwischen den Koordinatensystemen der beiden Geräte.

Spatial Mappingping der Umgebung

Ein weiteres wichtiges Feature war die Nutzung der realen Umgebung als Spielfeld. Die HoloLens erstellt ein räumliches Mesh der Umgebung. Dieses Mesh war jedoch zu groß, um direkt über das Netzwerk übertragen zu werden. Daher entwickelten wir eine eigene Pipeline:

  1. Erfassen des Spatial Meshes
  2. Umwandlung in eine Heightmap
  3. Generierung eines vereinfachten Game Meshes
  4. Synchronisation dieses Meshes mit dem zweiten Gerät

Das Host-Gerät erstellt dabei das Level und überträgt es an den Client.

Spatial Map
Hightmap

Ergebnis

Am Ende entstand ein funktionierender Proof of Concept für ein Mixed-Reality Multiplayer Echtzeitstrategiespiel. Das Projekt vermittelte wertvolle Erfahrungen in: