Top-Down Coop-Shooter

Grobkonzept

Grobe Inspiration: Alien Breed –> auch als grafische Inspiration, daher spare ich mir Konzeptzeichnungen

Das Konzept ist im Grunde das klassische Zombie/Alien-Schredder-Konzept. Alleine oder im Team läuft man durch die Spielwelt und räuchert alles aus, was sich bewegt. Dabei könnte man entweder das typische Zombie-Thema oder ein Alien-Thema fokussieren (und damit konventionelle oder Sci-Fi-Waffen verwenden). In der Spielwelt finden sich zusätzliche Waffen, Munition, Medi-Packs und sonstige „Power-Ups“ (Unsichtbarkeit, Unverwundbarkeit, Schnelligkeit usw.), die sich ggf. kombinieren lassen und nach einer gewissen Zeit verblassen.

Coop

Mittels Aufträgen/Quests könnte man die „Story“ erzählen. Allerdings habe ich da kein konkretes Story-Konzept. Im Team (von z.B. 3 Spielern) werden Sprengladungen positioniert, Ablenkungsmanöver durchgeführt oder auch „starke“ Gegner bezwungen. Diese Aufträge werden (aus einem Pool vordefinierter Aufträge) zufällig gewählt, modifiziert und sind von der Spielerzahl abhängig - z.B. machen Ablenkungsmanöver alleine wenig sinn, das Positionieren von Sprengladungen allerdings schon.

Survival

Jedes Team bekommt X Leben (proportional zu Spielerzahl). Stirbt ein Spieler, kann er sich duch ein Leben aus dem Team-Pool wiederbeleben. Ist kein Leben mehr vorhanden, bleibt er tod und seine Mitstreiter können alleine weiterkämpfen –> werden i.d.R. aber schnell scheitern.

Waffen, Munition und Rüstungswerte bleiben nach dem Spielende erhalten, d.h. können im neuen Spiel weiterverwendet werden –> Savegame pro Spieler

Für Aufträge und besiegte Gegner gibt es Teampunkte und persönliche Punkte (quasi für jeden selbst nochmal). Die könnte man dann irgendwie speichern/vergleichen/auswerten usw.

Ideen für Auftragsarten

  • TODO ^^

Technische Notizen

  • Spielwelt: orthogonale Tile-based Map
  • Spielfiguren: animierte Sprites
  • HUD: Anzeigen für Lebensenergie, Munition etc.
  • Aufträge in einem einfachen Format (z.B. INI) –> Erweiterbarkeit
  • Gegner- und ggf. auch weitere Spielwelten könnten in einem ähnlichen Format gepflegt werden.
  • Server-Client-Struktur, „diktatorischer“ Server (d.h. Client „entscheidet“ keine spielrelevanten Dinge)

Möglicher Ablauf

Phase 1: Modellierung

  • eine Art Model-View-Controller-Pattern
  • klare Schnittstellen –> Use-Cases, Class Diagrams usw. ?

Phase 2: Implementierung, Modultests

  • Spiellogik (serverseitig, kaum bis keine Verwendung von SDL) –> 2 Personen
  • Spielausgabe (clientseitig, viel SDL) –> 2 Personen
  • Netzwerkkommunikation (mittels SDL_net, Boost::Asio oder anderem Framework) –> 1 Person
  • Dateiarbeit (d.h. mit INI-Files oder ähnlichem) –> 1 Person
  • Koordination –> 1-2 Leute
  • hab ich was vergessen / sind wir genug oder zu wenige Leute / usw. ?

Phase 3: Gesamttests kp was ich hier schreiben könnte :D