Ein Endless-Chaser, basierend auf einer selbst hergestellten Tanzmatte

Das Team


Name

Matrikelnummer

Henry Tieu

2223359

Kemal Amet

2269511

Kevin Hagen

2270985

Gliederung


  • Konzept

  • Ideenfindung
  • Hardware
    • Konzeption
    • Bau
    • Kosten
  • Software
  • Zeitaufteilung
  • Fazit und Ausblick
    Danke Wolf. Danke, dass du immer für uns da warst. Du bist da real MVP! Bester Mann - LOVE YA <4 DU GEHÖRST ZUM TEAAAAAAAAM!

Konzept


BeatChaser ist ein Projekt, dass die Bereiche "Physical E-Sports" und "Alternativer Controller" ineinander vereint. Das hauptsächlich durch Rhythm-Games inspirierte, gleichnamige Spiel "BeatChaser" wird komplett über eine eigens entwickelte Tanzmatte gesteuert. 

In dem Spiel geht es um zwei Brüder, Alan und Steve, die sich wegen eines Streites durch die ganze Stadt jagen. Zwei Spieler schlüpfen gleichzeitig in die Rolle von jeweils einem der beiden Brüder. Alan will seinen Bruder fangen, während Steve das Ziel hat, Alan zu entkommen. In verschiedenen Level-Abschnitten geht es nun darum Alan, bzw. Steve zu kontrollieren und seinem jeweiligen Ziel näherzubringen. Bisher sind die Abschnitte "Rhythm" und "Sprint" implementiert. In den sogenannten Rhythm-Abschnitten müssen die Spieler auf der Tanzmatte im Takt der Musik tanzen und besser sein als ihr Gegenspieler. In den Sprint-Abschnitten geht es darum möglichst schnell abwechselnd die "Links"- bzw. "Rechts"-Taste zu drücken, so als würde man auf der Stelle sprinten. 

Wer zuerst sein Ziel erreicht, gewinnt. 

Ideenfindung


Nach der Bekanntgabe der Themen haben wir uns überlegt, dass wir gerne einen alternativen Controller für ein eigenes Spiel entwickeln wollten. Uns war dabei nicht klar, auf welcher Technologie der Controller basieren sollte, oder wie er aussehen könnte. Allerdings war uns wichtig, ein lokales Mehrspieler-Spiel zu entwickeln. Wir waren uns schnell relativ sicher, dass wir gerne eine Tanzmatte mit einer LeapMotion verbinden wollen. Unser Grundgedanke hierbei war, dass zwei sehr ungewöhnliche und selten genutzte Steuerungseinheiten für Spiele zusammen sicherlich eine interessante Mischung ergäben und so entstand unsere erste Idee - LeapDance

LeapDance

LeapDance sollte eine moderne Portierung von Frogger werden, bei der zwei Spieler kooperativ miteinander arbeiten müssen. Jeder Spieler bekommt einen Teil der Tanzmatte - Oben + Unten / Links + Rechts, aber nicht alle vier Tasten gleichzeitig. Zusammen müssen sie dann über eine gefährliche Straße, strömende Flüsse oder ähnliches navigieren, was schnell mal etwas schwieriger werden kann als gedacht. Denn da man nicht alle Tasten alleine kontrolliert weiß man auch nicht genau, was der andere eigentlich vor hat. Über die LeapMotion wollten wir zusätzliche Aufgaben implementieren, die auf Handsteuerung basieren. Pro Spieler sollte dabei jeweils eine Hand "gespendet" werden, um diese Aufgaben zu erledigen. 

Durch ein provisorisches Hardware-Setup haben wir, trotz anfänglicher Überzeugung, schnell gemerkt, dass die Idee einfach keinen Spaß macht. Das Spielprinzip von Frogger ist zu leicht und bietet nicht genügend Herausforderung für den Spieler. Das Spiel hätte eine unnatürlich hohe Geschwindigkeit annehmen müssen, damit die Spieler auf der Tanzmatte gefordert sind. Die Aufgaben über die LeapMotion haben das Spiel nicht interessanter, sondern unübersichtlicher gemacht. Aus dem gescheiterten Versuch konnten wir mitnehmen, dass die grundlegende Idee eines kooperatives Spiels mit geteilter Steuerung auf einer Tanzmatte Spaß machen könnte. 

Split Body

Von LeapDance kamen wir dann zu der Idee, die wir SplitBody getauft haben. Hierbei sollen zwei Spieler gemeinsam einen Charakter steuern, dessen Bewegungen sich sehr ungewohnt anfühlen, ebenso wie das gemeinsame Bedienen einer Tanzmatte. Inspiration für die Idee waren vor allem Spiele wie Octodad oder I Am Bread. Wichtig war uns dabei, dass die Steuerung an sich zwar leicht und intuitiv zu lernen ist, aber die gemeinsame und gleichzeitige Bedienung für eine komplexe Steuerung sorgt. Damit der Charakter nicht sinnlos durch die Welt läuft, wollten wir Testräume und Aufgaben entwickeln. SplitBody wäre somit ein kleines Puzzle-Game geworden. Da die Tanzmatte nur die Füße als Steuerungselement wirklich abdeckt, wollten wir weiterhin die LeapMotion verwenden und somit dem Charakter auch Hände geben. Zu dem Zeitpunkt haben uns die Dozenten aber mehrmals empfohlen stattdessen die Kinect zu verwenden, da diese der LeapMotion hinsichtlich Erkennung und Aktionsspielraum schlicht überlegen sei. Für weitere Erfahrungswerte haben wir uns dann mit der Gruppe Guardian in Verbindung gesetzt. 

Während der Prototyping-Phase haben wir aber gemerkt, dass das Konzept nicht wie gewünscht funktioniert. Die Steuerung des gemeinsamen Charakters hat einfach nicht mit der Erfahrung, die wir den Spielern bieten wollten harmoniert. Nach diesem zweiten gescheiterten Versuch haben wir uns die Frage gestellt, was mit unserem Konzept falsch ist. Dabei ist uns zu erst aufgefallen, dass wir zu viele, für uns unerforschte, Gebiete miteinander kombinieren wollten. Die Erstellung von Software und Hardware an sich ist schon eine große Herausforderung, aber dann noch zwei verschiedene Hardware-Komponenten, mit denen wir keine Erfahrung haben, zu kombinieren, war einfach zu viel. Also haben wir, obwohl uns die Kinect sehr gefiel, die Idee gestrichen die Kinect bzw. die LeapMotion zu verwenden. Von nun an lag der Fokus voll und ganz auf der Tanzmatte.

BeatChaser

Das Resultat unserer eigenen Limitation ist BeatChaser. Statt eines kooperativen Spiels wollten wir nun ein wettbewerbsorientiertes Spiel entwickeln. Der Gedanke führte uns zu bekannten Rhythm- und Dance-Games wie osu!mania oder DanceDanceRevolution, bei denen die Spieler direkt gegen andere Spieler bzw. die Weltrangliste antritt. 

Hardware


Konzeption

Ein großer Teil unseres Projektes bestand darin, eine Tanzmatte selbst zu bauen. Für uns war hierbei wichtig, dass unsere eigene Tanzmatte stabiler und rutschfester ist, als die handelsüblichen Matten, ihnen aber auch in den anderen Punkten in nichts nachsteht. Viele Fans der Dance Dance Revolution Spiele betätigen sich selbst als Modder für solche Tanzmatten. Dabei nutzen die Meisten von ihnen Holz als Basis und montieren rutschfeste Füße darunter, damit der Boden nicht zerkratzt. Durch diese Bauweise werden die Matten allerdings sehr schwer, sperrig und unkomfortabel, was den Transport angeht. Außerdem verwenden viele als Grundlage eine bereits bestehende Tanzmatte und nutzen ihre Technik. All das wollten wir bei unserer Matte vermeiden. 

Nach einem intensiven Brainstorming über die Materialien und Austausch mit den Dozenten entschieden wir uns dazu, unsere Matte aus einem Schmutzfangläufer und einer Anti-Rutsch-Unterlage anzufertigen. Für die Elektronik wollten wir fertige Drucksensoren nutzen und diese an einen I-PAC-Controller anschließen. Ein solcher Controller übersetzt seine Eingangssignale direkt zu gewöhnlichen Tastatursignalen, mit denen man in einer Game-Engine wunderbar arbeiten kann.

Technische Zeichnung des Dance-Pads

Bau

Ufff... Dieser minimale falsche Abstand...

Zu Beginn haben wir die Funktionsweise der Drucksensoren getestet. Über den I-Pac Controller haben wir die Sensoren an den Laptop angeschlossen und so unsere Prototypen getestet.

Da die Kabel der Drucksensoren zu kurz waren, haben wir andere Kabel rangelötet.

Als Unterlage für die Tanzmatte haben wir Anti-Rutsch-Unterlagen genutzt. So konnten wir gewährleisten, dass die Matte fest an ihrer Position bleibt und praktischerweise direkt unsere Elektronik verbauen.

Ich bin so leer, wie mein Magen

Damit der Controller nicht frei auf dem Boden liegt und beim Spielen stört, haben wir ein Gehäuse aus Plexiglas gebaut. Der Controller wird in das Gehäuse geschraubt und die Kabel durch Löcher im Gehäuse mit ihm verbunden.

YOU CAN DO THIS!

Die Anti-Rutsch-Unterlagen mussten wir noch auf unsere Größenvorstellungen anpassen. Auf ihnen haben wir auch die Elektronik verbaut.

I SWEAR YOU CAN!

Oben drauf kommt der umgedrehte Schmutzfangläufer, um eine hübschere Oberfläche abzugeben. Die Kabel sind mit Schrumpfschläuchen ummantelt.

BUGFIXING LEVEL OVER 9000!

Die Matte wird mit schwarz übersprüht. Oben rauf kommt das Controllerlayout und unser Logo. Abschließend wird alles mit mattem Klarlack übersprüht, damit die Farbe hält.

Wer das liest ist doof (:

Die fertigen Tanzmatten sind jetzt bereit für den Playtest!


Kosten 

Die Gesamtkosten für den Bau einer Tanzmatte belaufen sich auf 56€. Für beide Matten haben wir insgesamt 112€ ausgeben, wobei wir die Kosten für den I-Pac-Controller und die Kabel nicht mit aufgeführt haben. Den Controller haben wir aus der Uni geliehen, die Anschaffung eines Controllers würde etwa 32€ kosten. Alternativ kann auch einen Arduino (oder jeglichen anderen Mikro-Controller) verwendet werden, um ein wenig Geld zu sparen. Kupferkabel in benötigter Länge würden ca. 2€ Kosten. 

Die erste Tabelle zeigt die Kosten, die wir im Laufe des Projektes aufgebracht haben. Im Nachhinein hätten wir einige Kosten beim Bau sparen können. Die Spraydosen waren sehr teuer, man kriegt für weniger Geld auch Vinyl-Sticker. Vor allem die Drucksensoren hätten wir günstiger selbst herstellen können. Unsere Schätzung liegt bei 16€ für alle acht Sensoren. Die Kosten für die Elektronik (WAGO-Klemmen und Kabel) lassen sich nicht optimieren. Mit dem Schmutzfangläufer und der Anti-Rutsch-Unterlage waren wir sehr zufrieden. 

Man könnte beide Matten also wahrscheinlich auch für rund 80€ neu bauen.



Weil die Wiki scheiße ist muss ich das so machen.

MaterialKosten
Farben(Spraydosen)25€
Matten(Oberfläche)28€
Matten(Unterfläche)12€
Elektronik10€
Drucksensoren32€
Tape

5€


112€

Materialkosten während des Projekts

Hier auch.. Fuck this. What a Time to be alive!

MaterialKosten
Farben(Vinyl Sticker)10€
Matten(Oberfläche)28€
Matten(Unterfläche)12€
Elektronik10€
Drucksensoren(selbstgebaut)16€
Tape5€

81€

Optimierte Kosten

Software


Das Spiel wurde mit Hilfe der Unity-Engine entwickelt.  

BeatChaser ist im Kern ein Rhythm-Game, bei dem zwei Spieler gegeneinander antreten, indem der eine den anderen jagt. Wie in anderen Rhythm-Games geht es hauptsächlich um die Performance der Spieler, also wie gut sie im Takt der Musik agieren. Damit die Spieler eine Orientierung haben, läuft dabei im Hintergrund Musik. Wir haben zur Demonstration drei Lieder implementiert, diese sind aber problemlos austauschbar. Mittels Onset Detection werden aus den aktuellen Audiodateien Werte ausgelesen und ausgewertet. Auf Basis dieser wird dann eine Beatmap generiert. Ursprünglich war ein Filebrowser geplant, der das Austauschen der Musik zur Laufzeit ermöglichen sollte. Jedoch gibt es in Unity diesbezüglich mehrere Schwierigkeiten, die ihren Ursprung in dem von Unity verwendeten C#-Framework haben. Unity ist schlichtweg nicht dafür gedacht ein Filebrowser zu implementieren, der das Spiel mit dem restlichen System verbindet. Deshalb hätte die Entwicklung alleine eines solchen Systems den Rahmen bereits gesprengt. 

Die Musik im Hintergrund ist allerdings nicht nur einfach so da, sondern das Kernelement unseres Spiels. Aus jedem Lied wird mit Hilfe der bereits erwähnten Onset Detection eine Beatmap generiert. In einer Beatmap sind Schlüssel-Werte-Paare gespeichert, die beschreiben, zu welchem Zeitpunkt der Musik an welcher Stelle eine "Note" erscheinen soll. Außerdem nutzen wir die Informationen aus der Beatmap um verschiedene Levelabschnitte zu generieren. Das Gameplay ändert sich zum Beispiel basierend auf der Geschwindigkeit des Liedes. Da jedes Lied eine eigene Beatmap hat, verändert die Wahl des Liedes das Spielerlebnis. Jedes Lied steht somit für ein eigenes "Level". Außerdem sind alle Lieder auch unterschiedlich schwer: Ein sehr schnelles Lied beispielsweise generiert automatisch mehr Noten, wodurch es schwieriger zu spielen ist, als ein ruhiges Lied mit weniger Noten. 

In den Rhythm-Abschnitten geht es darum zum richtigen Zeitpunkt die richtige Note zu spielen. Die in der Beatmap verschlüsselten Noten laufen in diesem Levelabschnitt von unten nach oben ins Bild rein. Noten werden dabei durch Richtungspfeile repräsentiert: Links, Rechts, Oben und Unten. Sie haben die gleichen Farben wie die Pfeile auf der Tanzmatte und entsprechen jeweils diesen Tasten. Wenn eine "Links"-Note kommt, muss der Spieler also die "Links"-Taste auf der Matte mit seinem Fuß drücken. Das sollte er aber nicht irgendwann tun, sondern wenn sie genau die richtige Position im Bild hat. Dafür gibt es vier Aktivatoren, einen pro Taste, für jeden der beiden Spieler. Sie sind immer an der gleichen Stelle und wenn die Noten dann diesen Bereich decken, kann der Spieler die entsprechende Taste drücken und somit die Note spielen. Im Hintergrund kriegt er dafür Punkte angerechnet. Es gibt außerdem einen Multiplikator, wenn man viele Noten hintereinander trifft, ohne einen Fehler zu machen.

In den Sprint-Abschnitten ändert sich das Controller-Layout im Spiel. Zwei der vier Aktivatoren verschwinden und es bleiben nur die Tasten "Links" und "Rechts" sichtbar. Das ist ein Signal für die Spieler, dass nur noch diese beiden Tasten zu drücken sind. Nun müssen die Spieler abwechselnd die korrespondierenden Tasten auf der Tanzmatte drücken und zwar am Besten so schnell wie möglich. Denn je schneller die beiden Tasten abwechselnd gedrückt werden, desto mehr Punkte gibt es hier. 

Zwischen den beiden Abschnitten wird, wie bereits angeschnitten, auf Basis der Beatmap gewechselt. Wenn es im Verhältnis zum Rest des Liedes eine hektischere Stelle gibt, kommen die Spieler in den Sprint-Abschnitt. Sobald die Geschwindigkeit normalisiert, kommen die Spieler wieder in den Rhythm-Abschnitt. Dabei gibt es eine Mindestzeit pro Abschnitt, damit nicht versehentlich unnatürlich schnell zwischen den Abschnitten gewechselt werden kann. Um den Spielern zu signalisieren, in welchem Abschnitt sie sich aktuell befinden, gibt es unterschiedliche Layouts für die Aktivatoren. Außerdem findet sich darüber ein kleines Männchen, dass je nach Abschnitt eine andere Pose einnimmt - im Rhythm-Abschnitt tanzt es, im Sprint-Abschnitt läuft es. Die oben erwähnten Punkte aus den beiden Abschnitten werden addiert und ergeben immer eine aktuelle Gesamtpunktzahl. Mit dieser berechnen wir die Distanz zwischen den beiden Spielern. Das heißt für unser Spiel also, wenn der Charakter Alan mehr Punkte sammelt, als der Charakter Steve, kommt er ihm näher und umgekehrt, dass Steve Alan flieht, wenn er mehr Punkte sammelt. 

Am Ende gewinnt der Spieler, der zu Ende des Liedes mehr Punkte hat oder eben sein Ziel bereits vor Ablauf des Liedes erreicht hat.  

This is a hidden Whitespace. MUHAHAHA

Softwar

In-Game Ansicht des Spiels BeatChaser (Rhythm-Abschnitt)
Controller-Layout im Sprint-Abschnitt



Zeitaufteilung


AufgabeKevin HagenKemal AmetHenry Tieu
Bau der Tanzmatten


Konzept3h3h3h
Testsetups2h2h2h
Kabel löten + isolieren-10h10h
Sensoren bearbeiten3h3h3h
Verbauen5h-5h
Schablonen anfertigen--4h
Sprayen6h-6h
Gehäuse-4h-
Matten, gesamt:19h22h33h
Entwicklung d. Logos:--3h
Ideenfindung


LeapDance15h15h15h
SplitBody12h15h10h
BeatChaser7h7h7h
Ideenfindung, gesamt:34h37h32h
Programmierung


Prototyp8h5h5h
Onset Detection Research23h--
Onset Detection Umsetzung33h--
"Sprint"-Abschnitt-15h-
UI-10h25h
Map-Generierung15h8h-
Bugfixing9h4h7h
Programmierung, gesamt:88h42h37h
Level-Design:-12h8h
Doku:8h8h8h
Gesamt149h121h121h

Fazit und Ausblick


Die Arbeit an BeatChaser hat uns sehr viel Spaß gemacht. Es gab viele, abwechslungsreiche Aufgaben, die uns bei der Entwicklung immer wieder gefordert haben. Es war sehr spannend mit den Drucksensoren und der Matte zu experimentieren, um ein passendes Spiel dafür zu entwickeln. Überraschend war für uns, wie simpel die Drucksensoren zusammengebaut sind. Deshalb sind wir uns einig, dass wir die Sensoren bei der nächsten Matte selbst bauen und die Kosten sparen. Die Matte hat als Controller sehr gut funktioniert und selbst den Stresstest über mehrere Stunden mit mehreren Leuten überstanden. Sie ist rutschfest, stabil und für ihre Größe immer noch angenehm zu transportieren. Auch die Latenz für die Tastenanschläge ist kaum merklich und sorgt somit für ein flüssiges Spielerlebnis. Das zugehörige Spiel hat ebenfalls gut funktioniert, die verschiedenen Levelabschnitte bringen eine schöne Abwechslung mit, wodurch die Spieler immer wieder neu gefordert werden. Der Onset Detection-Algorithmus läuft bei den meisten Liedern und Musik-Genres zuverlässig, hat aber eindeutig seine Schwächen. Hier könnten sicherlich noch einige Verbesserungen ausführen und eine ganze Weile weiterforschen.

Für die Zukunft haben wir vor, noch weiter am Projekt zu arbeiten, um beispielsweise mehr Levelabschnitte zu integrieren oder es fertig zu polishen. Ein ausgiebiger Playtest mit Freunden hat gezeigt, dass das Konzept durchaus Potenzial hat und ein witziges Party-Spiel ist. Auch in der Uni wird das Projekt voraussichtlich weiterhin genutzt: Im Rahmen der Orientierungseinheit gibt es eine Campus-Rallye mit verschiedenen Stationen, demnächst wird BeatChaser eine davon sein, um zu demonstrieren, was die Studenten hier an der Uni so machen.

  • No labels