Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Modified

„ROCKET LAWNCHAIR!“ (Metal Slug 2)


Inhaltsverzeichnis

Table of Contents
stylesquare



Das Team


TeammitgliedMatrikelnummerAufgabenbereich

Yannic Kühn

2382131Konzept, Coding
2380225Konzept, Coding, Art Design, 3D Modeling
Justus Boos2388000Konzept, Coding, Multiplayer
Tom Kalberg2382485Konzept, Level-, Art & Sound-Design, Dokumentation



Kurzbeschreibung


Runner's Rampage ist ein Partyspiel, bei dem sich 2-4 Spieler in einem Arena-ähnlichen Level mit einer Auswahl an Items/Powerups bekämpfen. Last Man Standing - der letzte Überlebende gewinnt!



Walkthrough-Video


Widget Connector
urlhttps://www.youtube.com/watch?v=ERqQNKGC6HE




Download


Info
Download-Link folgt, sobald eine spielbare Version des Spiels vorliegt.

Das Spielprinzip

Nach dem Spielstart hat der Spieler im Hauptmenü/Startscreen die Möglichkeit, seinen Spielernamen zu ändern, einen öffentlichen oder privaten Raum zu erstellen, bereits erstellte Räume zu suchen oder einem Raum beizutreten. Sobald man sich in einem Raum befindet, hat man die Auswahl zwischen vier Charakteren: Blau, Grün, Schwarz und Rot. Wenn alle Spieler ihre Charakter ausgewählt haben, wird das Spiel gestartet und alle Spieler werden in dem Arenalevel gespawnt.

Nun gilt es, schnell zu reagieren!


Erste Ideen & Konzept

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. Außerdem sind Offline-Multiplayerspiele eine aussterbene Art - heutzutage ein Multiplayerspiel ohne Onlinekomponente zu veröffentlichen, ist weder zeitgemäß noch besonders klug, gerade wenn man sein Produkt am Ende vielleicht sogar einmal vermarkten möchte.

Nach dem die Genre-Ideen, die von jedem aus der Gruppe in die Runde geworfen wurden, in mehreren (teilweise hitzigen) Diskussion abgewogen wurden, kamen wir letztendlich auf einen ersten gemeinsamen Nenner: Das Spiel sollte am Ende ein Jump ’n’ Run Partyspiel werden, bei dem mehrere Spieler um die Wette laufen und sich währenddessen mit Items bzw. Powerups bekämpfen. Wer zuerst das Ziel erreicht oder als letzter Spieler überlebt, gewinnt die Runde. Bei der Konzeptionierung haben wir uns hierbei von Spieletiteln wie z.B. Mario Kart, Mashed und vor allem 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 Polygone 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 zu stark auf Assetpakete angewiesen zu sein.


Mario KartImage ModifiedMario KartImage ModifiedImage ModifiedImage ModifiedSpeedrunnersImage ModifiedSpeedrunnersImage Modified




Umsetzung

Das Projekt bzw. Spiel wurde mit Hilfe von Unity erstellt - eine genaue Auflistung aller benutzten Tools und Assets findet sich weiter unten. Um den Leser nicht mit einer kompletten Schritt-für-Schritt Dokumentation unserer Arbeit an dem Projekt zu langweiligen, werden im folgenden einige Teilbereiche der Umsetzung, die wir für nennenswer







Ziele


In der folgenden Tabelle sind unsere ursprünglich geplanten Ziele in Form von Spielelementen aufgelistet und in "Must Have" bzw. "Nice To Have" unterteilt sowie mit der jeweiligen Priorität quantifiziert. Außerdem wurden der Status farblich markiert, sodass direkt ersichtlich ist, welche Ziele erreicht wurden und welche nicht.

Prio (0-10)Must HaveNice To Have
8

Status
colourYellow
titleIn Arbeit
Ein vollständiges Level

Status
colourGrey
titleGeplant
Zwei oder mehr Level

6

Status
colourYellow
titleIN ARBEIT
 Items bzw. Powerups

Status
colourGrey
titleGeplant
Fähigkeiten

9

Status
colourYellow
titleIn Arbeit
 Kamera


6

Status
colourGrey
titleGeplant
Score bzw. Highscore-System


5

Status
colourGrey
titleGeplant
Sounds


10

Status
colourYellow
titleIn Arbeit
2-4 Spieler

Status
colourGrey
titleGeplant
> 4 Spieler

6

Status
colourYellow
titleIn Arbeit
Hauptmenü / Multiplayer-Lobby


6

Status
colourGrey
titleGeplant
Start-Screen


6

Status
colourGrey
titleGeplant
Game-Over-Screen


6

Status
colourGrey
titleGeplant
Einstellungen bzw. Settings


9

Status
colourYellow
titleIn Arbeit
Movement: Laufen

Status
colourYellow
titleIn Arbeit
Movement: Slide bzw. Dash

9

Status
colourYellow
titleIn Arbeit
Movement: Jump

Status
colourYellow
titlein arbeit
Movement: Wall Jump

9

Status
colourYellow
titleIn Arbeit
Movement: Double Jump


9

Status
colourYellow
titleIn Arbeit
Animationen


5

Status
colourYellow
titleIn Arbeit
Controller-Implementierung


7

Status
colourGrey
titleGeplant
Gameplay-Effekte

Status
colourGrey
titleGeplant
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


Image ModifiedImage ModifiedImage ModifiedLobbyImage Modified

Image ModifiedImage ModifiedImage Modified

Image Modified

Image ModifiedImage ModifiedImage Modified

Image ModifiedImage ModifiedImage Modified

Widget Connector
urlhttps://www.youtube.com/watch?v=jgvqRWeXG4U
Widget Connector
urlhttps://www.youtube.com/watch?v=GgU2jJdD0UA


Screenshots


Info
Wird später mit vorzeigbaren Screenshots gefüllt, wenn sich das Spiel in einem spielbaren Zustand befindet und ein Großteil der primären Ziele erfüllt ist.



Zeitaufwand/Stundenrechnung


Info
Wird aktuell in einer separaten Excelliste gepflegt und zu einem späteren Zeitpunkt in das Wiki übertragen.



Tools


Lessons Learned


Info
Wird gegen Ende der Projektarbeit ausformuliert.