202403_blog_car_kickers_ar-cover

Car Kickers AR

Von , und am 06.03.2024

Die Lehrveranstaltung

Im Zuge der Masterklasse Mobile des Studiengangs Interactive Technologies, haben wir beschlossen zusammen ein AR Multiplayer Game zu entwickeln. Ausschlaggebend dafür war die Vorgabe, dass ein gemeinsames kreatives Projekt mit allen Teammitgliedern erstellt werden soll. Da sich ein Spiel sehr gut in einzelne Bereiche aufteilen lässt und der Umfang angemessen schien, haben wir uns für dieses gemeinsame Projekt entschieden.

Die Idee

Nach dem Beschluss ein Multiplayer AR Game in Unity realisieren zu wollen, haben wir mit dem Brainstorming begonnen. Schnell haben wir uns für den Tech Stack mit der Game Engine Unity, dem Framework AR Foundation und dem Multiplayer Server Photon entschieden, dazu später mehr. Folgende Spielideen kamen auf:

  • ARtillery Game: Jeder Spieler besitzt eine kanone und muss den richtigen winkel finden, um die anderen zu zerstören, vielleicht unter Beeinflussung von echten Wind (sensoren/mikro?) Beispiel: https://rb.gy/g377b
  • AR Zombie Apocalypse, einer ist Zombie und kann andere infizieren. Ziel: Zombies müssen in einem Zeitraum alle anderen infizieren (hide & seek)
  • AR Treasure Hunt / Geocaching, Zusammenarbeiten um Rätsel zu lösen und schatz zu finden, oder einer versteckt, anderer sucht usw, z.B.: https://t.ly/yt6eA
  • Rube Goldberg Machine, z.B.: https://t.ly/0AiCV
  • Rennspiel: zufällig generierte strecken in realen Umgebungen, im Stil von Micro Machines (https://bit.ly/3MsMmnl)

Schlussendlich hat der Mehrheit die Idee mit den kleinen Autos, ähnlich zu Micro Machines sehr gefallen und Idee wurde weiter zu einer Art Rocket League in AR mit Modellautos geformt.

Das Konzept

In diesem Multiplayer-Spiel treten 2 vs 2 Spielern gegeneinander an, um mit kleinen Autos den Ball ins gegnerische Tor zu schießen. Das Spielfeld und die anderen Objekten werden in der Realität platziert. Am Spielfeld gibt es zudem eine Bombe von der man sich fernhalten sollte.

Es soll einfach möglich sein, dass jeder mit einem Smartphone, irgendwo in der echten Umgebung ein Spiel erstellen kann und andere Spieler einlädt. Das Spielprinzip sollte leicht zugänglich sein und dennoch durch die Mixed Reality beeindrucken.

Innovative Technologie: Mit Augmented Reality auf Smartphones nutzt das Spiel eine moderne Technologie, um eine realistische Spielumgebung zu schaffen. Spieler können das Spielfeld in ihrer realen Umgebung platzieren, wobei das Spiel sehr vom Chaosfaktor lebt.

Multiplayer-Erlebnis: Das Projekt ermöglicht ein intensives Multiplayer-Spiel mit Teams von 2 gegen 2. Dies fördert die soziale Interaktion und den Wettbewerb unter den Spielern, was besonders in der heutigen Gaming-Kultur beliebt ist.

Spannendes Gameplay: Das Konzept des Spiels, bei dem Spieler mit Autos einen Ball ins Tor schießen, ist einfach zu verstehen und gleichzeitig herausfordernd, was das Spiel für eine breite Zielgruppe zugänglich macht.

Lernpotenzial: Die Entwicklung eines AR-Multiplayer-Spiels erfordert komplexe Fähigkeiten in Bereichen wie 3D-Modellierung, Netzwerkkommunikation und AR-Technologien. Dieses Projekt bot eine hervorragende Möglichkeit für uns Studenten, wertvolle Erfahrungen und Fähigkeiten zu sammeln.

Insgesamt kombiniert Car Kickers AR auf geschickte Weise Technologie, Wettbewerb und Spaß, was es zu einem simplen und chaosorientierten Projekt für unsere Masterklasse machte.

Gruppendynamik

Erst vergangenes Semester konnten wir erste Erfahrungen zur gemeinsamen Zusammenarbeit in der großen Runde sammeln. Im Zuge einer Extreme Programming Week haben wir eine Progressive Web App entwickelt, mit der man Schnitzeljagden realisieren kann. Das Projekt war herausfordernd und sehr lehrreich, mehr dazu könnt ihr im Blogartikel PinGo – oder die einwöchige Entstehung eines Location-Based-Service nachlesen.

Die Personen kannten sich untereinander schon gut und Aufgaben wurden passend je nach Wunsch verteilt. Da jedoch regelmäßige Meetings fehlten und durch den Workload des laufenden Semesters wurden Aufgaben teils aus den Augen verloren. Schnell wurde klar, dass einige mehr Zeit investierten als andere, was jedoch bei solchen Projektarbeiten ein vorhersehbares Phänomen ist.

Projektmanagement

Das Projektmanagement hat Christoph übernommen, da er die Idee einbrachte. Es wurde gemeinsam beschlossen, auf die All-In-One Software Notion zu setzen, welche für Notizen, Aufgaben, Projekte und Zusammenarbeit dient. Darin wurde das gesamte Projektmanagement abgewickelt.

Das Team wurde in unterschiedliche Aufgabenbereiche eingeteilt:

Development & Physics: Mindestens ein oder zwei Teammitglieder sollten sich auf AR-Tracking und die grundlegende Spiellogik konzentrieren. Sie würden sich mit AR Foundation beschäftigen und sicherstellen, dass das Spielfeld richtig in die reale Welt projiziert wird.

Game Design: Diese Abteilung ist für die Konzeption und Gestaltung des Spiels verantwortlich. Game Designer erstellen das Spielszenario, entwerfen die Spielmechanik, Level und Charaktere, und definieren die Spielregeln.

Multiplayer: Ein oder zeit Teammitglieder sollten sich auf den Multiplayer-Aspekt spezialisieren. Das beinhaltet das Arbeiten mit Photon oder einem ähnlichen Netzwerkdienst, um die Synchronisation zwischen Spielern herzustellen.

Mindestens ein Mitglied sollte sich auch um Backend-Systeme kümmern, die für das Speichern von Spielerdaten, Fortschritten und Ranglisten notwendig sind.

User Interface & Sound Design: Ein Mitglied sollte sich auf die Benutzeroberfläche (UI) und die User Experience (UX) konzentrieren, um sicherzustellen, dass das Spiel intuitiv und ansprechend ist.

AR Development: Im Fokus steht hier die Integration der Augmented Reality Funktionalität über das Framework AR Foundation und das Beheben von möglich Problemen des eigentlich Spiels.

Nach der Teameinteilung wurden sämtliche Tasks erstellt, aufgeteilt und priorisiert:

Anfangs wurde noch mit Sprint gearbeitet:

Dies wurde jedoch schnell aus den Augen verloren, da es aufgrund anderer Prioritäten während des Semester unrealistisch war, in regelmäßigen Abständen an dem Spiel zu arbeiten.

Die Umsetzung

Das Softwareprojekt wurde in der Game-Engine Unity umgesetzt. Die AR Aspekte werden mit dem Framework AR Foundation integriert. Das ganze Projekt lässt sich sowohl für Apple als auch Android Geräte bereitstellen.

Unser Tech Stack

Unity3D 2022.3.11 (LTS)Unser Game Framework für das Cross-Plattform-Development
Asset ForgeTool für die Modellierung unserer Fahrzeuge
AR FoundationAR-Framework für Unity
PhotonMultiplayer Engine für Unity
IntellJ RiderAls IDE-Ersatz für das Performance intensive Visual Studio

Szenen

Die Oberflächen teilen teilt sich auf in:

  • Hauptmenü – Scene_Main_Menu
  • Quickmatch – Scene_Lobby
  • Auto Auswahl – Scene_Player_Selection
  • Lobby – Scene_Lobby
  • Gameplay – Scene_Gameplay

Player

Das Prefab für den Spieler beinhaltet neben dem eigentlichen 3D-Modell auch das Skript Car Controller, mit dem die Steuerung realisiert wurde, sowie Sound und Animationen:

Scripts

Natürlich sind auch sehr viele Scripts entstanden, grob unterteilt wurde hier das Verhalten folgender Aspekte programmiert:

  • AR: Marker-Based und Markerless Verhalten
  • Networking und Spawn Management
  • Player Movement und Verhalten
  • UI und Menü

Genutzte Tutorials

Folgende Tutorials haben maßgeblich zur Entwicklung beigetragen:

Projektevernissage

Auf der Projektevernissage erhielten wir durchweg positives Feedback zu unserem AR-Spiel “Car Kickers AR”. Die Besucher:innen fanden den Einsatz von Augmented Reality und den Multiplayer-Aspekt besonders spannend. Dank einer kurzen Erklärung durch unser Team konnten alle schnell ins Spiel einsteigen. Allerdings war die Steuerung der Fahrzeuge mit dem virtuellen Lenkrad aufgrund hoher Sensibilität problematisch, was die Spielerfahrung beeinträchtigte. Ein weiterer Kritikpunkt war, dass die Fahrzeuge gelegentlich am Rand steckenblieben, was das Spielvergnügen einschränkte. Trotzdem wurde die Möglichkeit, vor Ort direkt mit anderen Besucher:innen am virtuellen Spielfeld zu interagieren, als sehr positiv bewertet. Viele zeigten Interesse an der Möglichkeit zum Download des Spiels aus einem App Store, was für die Attraktivität unseres Spiels spricht.

Auf einem Flipchat wurde ganz analog das Feedback der Besucher:innen gesammelt. Unsere Fragen waren folgende:

Wählt euer Lieblingsfahrzeug?

In der Projektevernissage präsentierten wir eine Vielfalt von Designs für auswählbare Fahrzeuge. Besucher:innen wurden aufgefordert, ihre bevorzugten Designs zu wählen, die letztendlich im Spiel integriert werden. Vier Fahrzeuge mit einem eher verspielten Design, darunter Zug- und Schiffautos, kristallisierten sich als besonders beliebt heraus. Dieses Feedback beeinflusst maßgeblich die endgültige Auswahl und Gestaltung der Fahrzeuge im Spiel.

Wie findest du die Steuerung?

Unsere eigenen Tests und das Feedback der Besucher:innen zeigten Probleme mit unserer Steuerung. Eine gezeichnete Stimmungsumfrage mit drei Gesichtszuständen – fröhlich, neutral und traurig – ergab im Durchschnitt eher neutrale oder traurige Gesichter. Empfohlen wurde, die Steuerung zu ändern, beispielsweise von einem Lenkrad auf einen Joystick umzusteigen.

Welches Feature würdet ihr euch noch wünschen?

  • Jedes Fahrzeug hat eine einzigartige Fähigkeit.
  • Einen Map Marker.
  • Stats, also ein bestimmter Aspekt eines fiktiven Charakters (Auto) darstellt,
  • die z.B. durch Zahlen repräsentiert werden.
  • Zuschauer:innen können während einem Spiel Hindernisse reinwerfen.
  • Eine Rampe oder Fallen wie eine Banane als Hindernis.
  • Eine Optionsmöglichkeit, wo man die Geschwindkeit der Fahrzeuge auswählen kann.
  • Pilze die man sammeln kann um mit einem Fahrzeug schneller fahren zu können.
  • Der Ball bounced am Rand wieder zurück, damit dieser nicht vom Feld fällt.
  • Das Fahrzeug soll am Rand nicht stehen können.

Ein Demo-Video einer Testrunde bei der Projektevernissage (16.01.2024)

Herausforderungen & Learnings

Augmented Reality: Die Integration von AR gestaltet sich dank bereits etablierter Frameworks für Unity sehr leicht und ist auch in kostenlosen Video Tutorials schnell erlernbar. Das Platzieren eines Spielfeld per Marker funktionierte in einem ersten Prototypen problemlos. An der FH wurde dies jedoch schnell zum Problem aufgrund der spiegelnden Untergründe, weshalb die Spielfeld Platzierung von Malek auf ein Marker-based Modell mit QR Code umgebaut wurde.

Multiplayer Game: Die Integration von Photon lässt sich schnell anhand zahlreicher Tutorials realisieren. Da das manuelle Joinen in Lobbies etwas komplexer ist, haben wir uns vorerst für ein Quickmatch entschieden. Dabei wird automatisch ein Match gehostet, wenn noch keines existiert. Sollte bereits eines bestehen, wird automatisch gejoined und über den SpawnManager der Spieler im entsprechenden Team platziert.

Physik: Durch AR-Realisierung verhält sich die Skalierung und Physikberechnung von 3D Objekten sehr merkwürdig. Dies hatten wir nicht am Schirm und bedurfte viel Anpassungen und absurden Werten bei Geschwindigkeit und Masse.

Mögliche zukünftige Features

Links

The comments are closed.