„Nur wo du zu Fuß warst, bist du wirklich gewesen.“ (Goethe)
Inhaltsverzeichnis
Das Team
Teammitglied | Matrikelnummer | Aufgabenbereich |
---|
Yannic Kühn | 2382131 | Konzept, Coding |
| 2380225 | Konzept, Coding, Art Design, 3D Modeling |
Justus Boos | 2388000 | Konzept, Coding, Multiplayer |
Tom Kalberg | 2382485 | Konzept, Level und Art Design, Dokumentation |
Kurzbeschreibung
Runner's Rampage ist ein Jump ’n’ Run Partyspiel, bei dem 2-8 Spieler um die Wette laufen und sich währenddessen mit Items bzw. Powerups bekriegen. Wer zuerst das Ziel erreicht oder als letzter Spieler überlebt, gewinnt die Runde.
Walkthrough-Video
Download
Erste Ideen
Beim ersten Brainstorming kristallisierte sich schnell heraus, dass wir alle gerne ein Spiel mit Online-Multiplayer kreieren möchten, da wir zum einen bisher nur wenig Erfahrung mit diesem Thema und den dazugehörigen Komponenten wie etwa Netcode, Serverinfrastruktur oder API sammeln konnten, zum anderen macht die aktuelle COVID-19-Situation es nicht gerade einfach, ein Spiel mit lokalem Multiplayer effektiv gemeinsam zu testen.
Das Spiel soll am Ende ein Jump ’n’ Run Partyspiel werden, bei dem 2-8 Spieler um die Wette laufen und sich währenddessen mit Items bzw. Powerups bekriegen. Wer zuerst das Ziel erreicht oder als letzter Spieler überlebt, gewinnt die Runde. Bei der Konzeptionierung haben wir uns hierbei von den beiden Spielen Mario Kart und Speedrunners inspirieren lassen.
Bei den Überlegungen bezüglich des Game Designs stand zuerst die Idee im Raum, das Spiel auf einer 2D-Basis zu erstellen. Somit könne man sich beim Design einer der drei Achsen gänzlich sparen und wäre bei der Erstellung von Assets auf Sprites statt Polygonen angewiesen. Unity hat hierfür sogar einen eigenen 2D-Modus, der das Programmieren auf zweidimensionaler Ebene vereinfacht. Diese Idee haben wir jedoch letzendlich verworfen, da wir unsere bereits gesammelten Erfahrungen mit Unity 3D und der Erstellung und Animation von 3D-Assets mit Blender anwenden möchten. Die Entscheidung fiel also auf 3D-Grafik mit Low-Poly Assets, um den Gesamtaufwand im Rahmen zu halten und Teile der Assets selber erstellen zu können, ohne auf viele Assetpakete angewiesen zu sein.
Ziele
In der folgenden Tabelle sind unsere geplanten Ziele in Form von Spielelementen aufgelistet und in "Must Have" bzw. "Nice To Have" unterteilt sowie mit der jeweiligen Priorität quantifiziert.
Prio (0-10) | Must Have | Nice To Have |
---|
8 | IN ARBEIT 2 x vollständige Level | |
6 | IN ARBEIT Items bzw. Powerups | |
9 | |
|
6 | GEPLANT Score bzw. Highscore-System |
|
5 | |
|
10 | | |
6 | IN ARBEIT Hauptmenü / Multiplayer-Lobby |
|
6 | |
|
6 | |
|
6 | GEPLANT Einstellungen bzw. Settings |
|
9 | IN ARBEIT Movement: Laufen | IN ARBEIT Movement: Slide bzw. Dash |
9 | | IN ARBEIT Movement: Wall Jump |
9 | IN ARBEIT Movement: Double Jump |
|
9 | |
|
5 | IN ARBEIT Controller-Implementierung |
|
7 | | GEPLANT Environment-Effekte |
Das Spielprinzip
Umsetzung / Devblog
- Projekt in Unity erstellt und mit Hilfe von Collaborate für alle Gruppenmitglieder verfügbar gemacht
- Basic Movement mit RigidBody funktioniert
- Experimente RigidBody vs. CharacterController
- Rudimentäres Testlevel zum Testing des Movements erstellt
- Recherche und Tests mit verschiedenen Spiral Meshes
- Erstes Low-Poly Charaktermodell in Blender erstellt und nach Unity exportiert
- Erste Animationen (laufen, springen, rutschen) in Blender erstellt und nach Unity exportiert
- MLAPI (Unity Multiplayer API) in Unity Projekt integriert
- Photon Realtime Networking implementiert
- Erste Multiplayer-Tests mit mehreren Spielern
- Multiplayer-Lobby mit mehreren Räumen implementiert
- Animation over Network implementiert
- Erstes UI-Design für Hauptmenü und Lobby
- Charakterauswahl implementiert
- Mehrere Multiplayer-Funktionstest
- Recherche nach passenden Assetpacks und anschließendes Testing
- Implementierung von ausgesuchten Assetpacks
- Konzeptionierung, Design und Erstellen des ersten Levels
- Umstieg von CharacterController auf RigidBody
- Erweiterung des RigidBody Movement-Scripts, Implementierung eines "Dashes"
- Weitere Low-Poly Charaktermodelle in Blender erstellt und nach Unity exportiert
- Erste Low-Poly Itemmodelle (z.B. Rocket Launcher) in Blender erstellt und nach Unity exportiert
- Weitere Experimente mit RigidBody Movement
- Erstellen eines zweiten Levels
- Finetuning des RigidBody Movements
Screenshots
Zeitaufwand/Stundenrechnung
Fazit