Update the game design doc to the current state
Move the implemented systems (netcode, hunter role, phase/timer match loop, win conditions, both match modes, spawn areas, shooting, role-based visibility, spectator freecam, networked paint) out of the "missing" section, document the multiplayer and match-loop subsystems, and trim the open items to what's actually left. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
057c99fa1d
commit
6e76510005
1 file changed
+67
-27
+67
-27
@@ -36,9 +36,12 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
|
||||
sind immer menschliche Spieler.
|
||||
- **Keine automatische Tarnungs-Bewertung.** Wie gut eine Bemalung tarnt, entscheidet
|
||||
allein das Auge des Seekers — das Spiel misst/wertet die Tarnung nicht.
|
||||
- **Noch offen / Geschmacksfrage** (bitte hier markieren, was dir an Meccha Chameleon (nicht) gefällt):
|
||||
- Posen-System ja/nein?
|
||||
- Taunt/Pfeifen ja/nein?
|
||||
- **Entschieden (seit letzter Fassung):**
|
||||
- **Posen-System: ja** — ist umgesetzt (Silhouette anpassen).
|
||||
- **Infection-artiger Modus: ja** — als **Conversion-Modus** umgesetzt (getroffener Hider
|
||||
wird zum Hunter, statt nur „gefunden" zu sein).
|
||||
- **Noch offen / Geschmacksfrage:**
|
||||
- Taunt/Pfeifen ja/nein? (noch nicht umgesetzt)
|
||||
|
||||
> **TODO (User):** Hier eintragen, was dir bei Meccha Chameleon gefällt und was nicht — danach
|
||||
> schärfen wir Scope & Reihenfolge.
|
||||
@@ -86,46 +89,83 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
|
||||
- [x] **GameModeManager** (erweiterbare State-Machine, Tab schaltet um)
|
||||
- [x] **Player-Control-Modus** (Laufen + Kamera per Maus)
|
||||
- [x] **Paint-Modus** (kein Movement, Linksklick malt, Rechtsklick hält Kamera-Dreh)
|
||||
- [x] **First-Person-Modus** (Hunter: FP-Kamera + Schießen per Linksklick-Raycast)
|
||||
- [x] **Free-Cam / Spectator-Modus** (gefundene/zuschauende Spieler beobachten frei)
|
||||
- [x] **FrameRateLimiter** (FPS-Begrenzung, VSync-Handling)
|
||||
- [x] Git initialisiert (Unity-`.gitignore` + `.gitattributes`), englische Commits
|
||||
|
||||
### Multiplayer (reines Online-PvP)
|
||||
- [x] **Netcode for GameObjects** (NGO 2.13) als Netzwerk-Stack
|
||||
- [x] **Host/Join**, Lobby-Szene + Match-Szene (`The Room`)
|
||||
- [x] **Spieler-Synchronisation** (NetworkTransform, owner-authoritativ)
|
||||
- [x] **Bemalung über das Netzwerk** (`PlayerPaintSync`: ServerRpc/ClientRpc/NetworkVariable,
|
||||
Late-Join-Replay der Paint-Stamps)
|
||||
- [x] **Rollen-Prefab-Varianten**: Hunter (groß, Sprint ×2, FP+Schießen) / Hider (klein)
|
||||
- [x] **Spawn-Areas** über getaggte (konvexe) Collider: `SpawnArea`, rollenspezifisch
|
||||
`HunterSpawnArea` / `HiderSpawnArea` mit Fallback-Kette (Rolle → `SpawnArea` → Ring);
|
||||
zufälliges Streuen per Rejection-Sampling innerhalb der Form
|
||||
|
||||
### Match-Loop (Hide & Seek)
|
||||
- [x] **Server-autoritative State-Machine** (`MatchManager`, repliziert via Named Messages):
|
||||
**Verstecken → Suchen → Auflösung → zurück zur Lobby**
|
||||
- [x] **Pro-Phase-Timer** als Inspector-Properties in Sekunden (`hideDuration`,
|
||||
`seekDuration`, `resolveDuration`)
|
||||
- [x] **Rollenabhängige Sichtbarkeit** (jeder Client rechnet lokal aus Rolle/Phase/Modus):
|
||||
Hider-Meshes werden je nach Modus/Phase für Hunter (bzw. andere Hider) ausgeblendet
|
||||
- [x] **Hunter-Schießen**: Raycast aus FP-Kameramitte, Cooldown (`shootCooldown`),
|
||||
Reichweite (`shootRange`), server-validierter Treffer
|
||||
- [x] **Found-State** (`NetworkVariable<bool>`, server-write): getroffener Hider →
|
||||
Mesh bei allen aus → nur noch **Spectator-Freecam**
|
||||
- [x] **Früh-Ende der Suchphase**, wenn alle Hider gefunden/konvertiert sind
|
||||
- [x] **Zwei Match-Modi** (`matchMode`, Inspector):
|
||||
- **Classic** — getroffener Hider wird „gefunden" (Freecam)
|
||||
- **Conversion** (Infection) — Hider blind füreinander; getroffener Hider **wird Hunter**
|
||||
(echte Hunter-Variante, **an Ort und Stelle**, sauberes Reveal via `conversionRevealDelay`)
|
||||
- [x] **Platzhalter-HUD** (`MatchHud`, OnGUI): Phasenname + Countdown + Hunter-Crosshair
|
||||
- [x] **Kamera-Occlusion-Fade** (`HeroCutout`): kegelförmiger weicher Cut (radial + axial),
|
||||
konstante Bildschirm-Lochgröße, raycast-getriggert
|
||||
|
||||
---
|
||||
|
||||
## 4. Checkliste — Was noch fehlt ❌
|
||||
|
||||
### Bemalen / Camouflage (höchste Priorität, ist unser Alleinstellungsmerkmal)
|
||||
### Bemalen / Camouflage (Alleinstellungsmerkmal)
|
||||
- [ ] Bemalung **zurücksetzen** / Undo
|
||||
|
||||
### Spielablauf (Hide & Seek)
|
||||
- [ ] **Seeker/Hunter-Rolle** (immer menschlicher Spieler)
|
||||
- [ ] **Runden-System**: Vorbereitungsphase (verstecken/bemalen) → Suchphase
|
||||
- [ ] **Zeitlimit** + Timer-Logik
|
||||
- [ ] **Sieg-/Niederlage-Bedingungen** (Seeker findet alle Hider im Zeitlimit — keine automatische Tarnungs-Wertung)
|
||||
- [ ] **Taunt/Pfeifen** (optional, ggf. erzwungen) — falls gewünscht
|
||||
- [ ] **Spielmodi**: Standard, Infection, ggf. eigene Ideen
|
||||
- [ ] **Auflösungs-Phase mit Inhalt**: aktuell läuft nur der Countdown; noch kein
|
||||
**Ergebnis-Screen** (wer hat gewonnen, wer wurde gefunden/konvertiert)
|
||||
- [ ] **Explizite Sieg-/Niederlage-Auswertung** (Hunter gewinnt bei „alle gefunden",
|
||||
Hider gewinnen bei Timeout) — derzeit nur impliziter Phasenwechsel
|
||||
- [ ] **Taunt/Pfeifen** (optional, ggf. erzwungen) — noch offen
|
||||
|
||||
### Multiplayer (Kern — reines Online-PvP, kein Singleplayer)
|
||||
- [ ] **Netcode** (z. B. Netcode for GameObjects / Mirror / Photon)
|
||||
- [ ] Lobby / Matchmaking / Host-Join
|
||||
- [ ] Spieler-Synchronisation inkl. **Bemalung über das Netzwerk**
|
||||
### Multiplayer
|
||||
- [ ] **Matchmaking** über reines Host-Join hinaus (Lobby-Browser / Codes / Relay)
|
||||
- [ ] Robustheit: Reconnect, Host-Migration, Disconnect-Edge-Cases im Match
|
||||
|
||||
### Welt & Präsentation
|
||||
- [ ] **Maps / Level-Design** (Verstecke, abwechslungsreiche Oberflächen/Farben)
|
||||
- [ ] **UI/HUD**: Timer, Rollen-Anzeige, Farbwähler, Menüs, Ergebnis-Screen
|
||||
- [ ] **Audio**: SFX (Pfeifen, Schritte, Klettern), Musik
|
||||
- [ ] Beleuchtung / Art-Direction
|
||||
- [ ] **Maps / Level-Design** ausbauen (mehr Verstecke, abwechslungsreiche
|
||||
Oberflächen/Farben) — Szenen `Lobby`, `The Room`, `Test Map` existieren als Basis
|
||||
- [ ] **Echtes UI/HUD** statt des OnGUI-Platzhalters: Timer, Rollen-/Phasen-Anzeige,
|
||||
Farbwähler, Menüs, Ergebnis-Screen (uGUI-Canvas)
|
||||
- [ ] **Audio**: SFX (Schritte, Klettern, Schuss, ggf. Pfeifen), Musik
|
||||
- [ ] **Beleuchtung / Art-Direction** finalisieren (erste Reflection-/Shadow-Passes sind drin)
|
||||
|
||||
---
|
||||
|
||||
## 5. Vorgeschlagene nächste Schritte (Reihenfolge zur Diskussion)
|
||||
|
||||
1. **Tarnung sichtbar machen:** Farbwähler-UI + Pipette → das Bemalen wird im Play-Mode
|
||||
bedienbar (ohne Inspector). Macht den Kern sofort spielbar.
|
||||
2. **Eine einfache Test-Map** mit unterschiedlich gefärbten Oberflächen zum Üben der Tarnung.
|
||||
3. **Lokaler Gameplay-Loop zum Testen** (zweiter lokaler Controller als Seeker) +
|
||||
Runden/Timer → erster echter Hide-&-Seek-Ablauf, noch ohne Netzwerk.
|
||||
4. **Multiplayer-Netcode** angehen (Kern des Spiels): Lobby/Host-Join, Spieler- und
|
||||
Bemalungs-Synchronisation.
|
||||
Der Kern-Loop steht (Netcode, Rollen, Phasen, beide Modi, Schießen/Konversion). Die nächsten
|
||||
Schritte machen ihn **rund** und **präsentabel**:
|
||||
|
||||
> Reihenfolge bewusst so, dass wir früh etwas **Spielbares** haben, bevor wir uns an
|
||||
> Netcode (aufwendig) binden.
|
||||
1. **Match-Abschluss ausbauen:** echte Sieg-/Niederlage-Auswertung + Ergebnis-Screen in der
|
||||
Auflösungs-Phase (statt nur Countdown → Lobby).
|
||||
2. **Echtes HUD** (uGUI) statt des `MatchHud`-OnGUI-Platzhalters: Timer, Rolle/Phase,
|
||||
Treffer-/Konversions-Feedback.
|
||||
3. **Map-/Level-Design** vertiefen: mehr Verstecke und farblich abwechslungsreiche
|
||||
Oberflächen, damit die Tarnung wirklich zählt.
|
||||
4. **Politur:** Bemalung-Undo/Reset, Audio (Schritte/Schuss), Art-Direction/Beleuchtung,
|
||||
optional Taunt-System.
|
||||
|
||||
> Reihenfolge bewusst so, dass aus dem funktionierenden Prototyp ein **fühlbar fertiges**
|
||||
> Match wird, bevor wir Breite (mehr Modi/Maps) draufsetzen.
|
||||
Reference in new issue
Block a user