====== Top-Down Coop-Shooter ====== === Grobkonzept === Grobe Inspiration: [[http://www.mobygames.com/game/amiga/alien-breed|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