BallRun

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche


Dieses Projekt wurde im Sommersemester 2019 realisiert, es lässt sich von den bekannten Smartphone-Spielen Helix Jump und Temple-Run inspirieren.

Das Projekt wurde unter Windows 10 (Version: 1803) und Visual Studio 2017 mithilfe verschiedener OpenFrameworks-Addons (ofxOSC, ofxOpenCV, ofxKinect) realisiert.


Konzept

In diesem Spiel soll ein über eine Fläche rollender Ball per Handgeste zum Springen gebracht werden. Auf der Ebene tauchen in unterschiedlichen Zeitabständen zwei verschiedene Arten von Hindernissen (Erhebungen und Lücken) auf. Die Handbewegung wird über einen Kinect-Sensor erfasst, sobald sich die Hand in einem definierten Abstand vor dem Sensor befindet. Das Eintreten der Hand in den Bereich löst einen Sprung des Balls aus. Sollte der Ball nicht rechtzeitig springen, kollidiert er mit dem Hindernis und das Spiel wird gestoppt, man hat verloren.


Umsetzung

Grafik

Das erste wichtige Element des Projekts ist die grafische Gestaltung der Spielausgabe. Selbstständig konzipiert und programmiert, wird eine von rechts nach links laufende Ebene generiert, auf der in unregelmäßigen Abständen rechteckige Lücken und rechteckige Erhebungen erscheinen. Als "Spielfigur" dient ein farbiger Kreis, der auf der Grundebene entlangrollt und vom Benutzer gesteuert werden kann. Springt der Ball, führt er eine parabelförmige Bewegung aus, um die Hindernisse zu überwinden. Nach erfolgter Landung begibt er sich wieder auf seine ursprümgliche Bildschirmposition zurück, um zu verhindern, dass er aus dem Bild springt.

Grafik RB.jpg

Grafische Ausgabe - Eigenentwicklung


Spielbeginn und Neustart

Um das Spiel zu starten, muss der Spieler komplett in den definierten Abstandsbereich treten, um einen Timer zu aktivieren. Während der Timer abläuft, muss er sich wieder vollständig aus dem Bereich bewegen. Sobald der Ball das Rollen anfängt, muss der Spieler mit der unten beschriebenen Handbewegung dafür sorgen, dass der Ball sich über Hindernisse bewegt. Crasht der Ball in ein Hindernis, bleibt das Spiel stehen und muss neu gestartet werden. Der Neustart erfolgt auf dieselbe Art und Weise wie der erste Spielstart.


Steuerung durch Handbewegung

Zur Steuerung des Verhaltens des Balls wird mithilfe einer Kinect-Tiefenkamera eine Handerkennung implementiert. Bringt der Spieler seine Hand in einen definierten Abstandsbereich vor der Kinect-Kamera, wird ein Impuls ausgelöst, der das Springen des Balls zur Folge hat. Um erneut springen zu können, muss der Spieler seine Hand aus dem Bereich und danach wieder hineinbewegen. Ein dauerhaftes Halten der Hand würde nur einen einzigen Impuls und somit nur einen Sprung auslösen.


Übertragungslösung

Als Übertragungsschnittstelle zwischen Eingabegerät (Kinect) und Ausgabe (Spielsequenz am Bildschirm) wird OSC verwendet. Hierbei dient die Kamera-Applikation als OSC Server und die Spiel-Applikation als OSC Receiver. Über die OSC-Schnittstelle wird zudem gewährleistet, dass das Projekt theoretisch leicht auf andere Hardwarekomponenten erweitert werden kann.

Schema Wiki.jpg

Hardware-Software-Kombination


Ergebnis

Aufgrund der begrenzten Anzahl an Praktikumsterminen, wurde das Spiel nur mit minimalem Funktionsumfang implementiert. Einfache Sprünge über zwei Arten von Hindernissen und Kollisionserkennung genügen völlig zur Umsetzung der Projektidee, jedoch wären weitere Funktionen durchaus von Vorteil für das Spielerlebnis.


Mögliche Erweiterungen

Denkbare Funkionen, die aber derzeit noch nicht umgesetzt wurden, sind:

  • Menüblock zum gestengesteuerten Starten und Beenden des Spiels
  • Fortschrittsanzeige mit Bestenliste, dafür auch Eingabe der Spielernamen
  • Levelfunktion (läuft nach gewisser Zeit schneller, andere Hindernisse, etc.)
  • Premium: 3D-Spiel mit voll funktionaler Physics Engine




Downloads

Link zum Downloadmaterial in der Oracle Content Suite:

Daten zu BallRun