Docs: bring GAME_DESIGN.md up to date with current feature set

Add shipped features (session browser, radar pings + self-ping taunt,
X-ray reveal, conversion statues, match start trigger, fur shells, PBR
paint channels + camo knobs + painting library, settings persistence,
SkyboxEnvironmentUpdater, volumetric climb probes), correct stale claims
(MatchHud is uGUI, matchmaking exists), reprioritize next steps.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Fable 5 committed 2026-07-08 08:29:25 +02:00
1 parent 6c03e5d3f6
commit 755fffa997
1 file changed
+49 -18
+49 -18
View File
@@ -41,7 +41,8 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
- **Infection-artiger Modus: ja** — als **Conversion-Modus** umgesetzt (getroffener Hider - **Infection-artiger Modus: ja** — als **Conversion-Modus** umgesetzt (getroffener Hider
wird zum Hunter, statt nur „gefunden" zu sein). wird zum Hunter, statt nur „gefunden" zu sein).
- **Noch offen / Geschmacksfrage:** - **Noch offen / Geschmacksfrage:**
- Taunt/Pfeifen ja/nein? (noch nicht umgesetzt) - Taunt: der **Radar-Selbst-Ping** (E) ist umgesetzt (Hider verrät sich freiwillig auf dem
Hunter-Radar); ob zusätzlich ein **akustisches Pfeifen** (ggf. erzwungen) kommt, ist offen
> **TODO (User):** Hier eintragen, was dir bei Meccha Chameleon gefällt und was nicht — danach > **TODO (User):** Hier eintragen, was dir bei Meccha Chameleon gefällt und was nicht — danach
> schärfen wir Scope & Reihenfolge. > schärfen wir Scope & Reihenfolge.
@@ -57,7 +58,8 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
- [x] **Beschleunigung/Entschleunigung** (sanfter Anlauf/Ausrollen statt Snap) - [x] **Beschleunigung/Entschleunigung** (sanfter Anlauf/Ausrollen statt Snap)
- [x] **Slope-Sliding** (Abrutschen von zu steilen Flächen/Kanten) - [x] **Slope-Sliding** (Abrutschen von zu steilen Flächen/Kanten)
- [x] **Wall-Climb**: Wände/Decken hochklettern (wand-relative Steuerung: - [x] **Wall-Climb**: Wände/Decken hochklettern (wand-relative Steuerung:
W ran/hoch, S weg+ablösen, A/D seitlich) W ran/hoch, S weg+ablösen, A/D seitlich); **volumetrische SphereCast-Probes** —
hält auch dünne Bretter, weiche Kontakt-Normale an Kanten/Rundungen (kein Flackern)
- [x] **Mantle / Top-Out**: über die Oberkante ziehen statt droppen, an steilen - [x] **Mantle / Top-Out**: über die Oberkante ziehen statt droppen, an steilen
Schrägen mit Aufwärts-Hop drüber (kein Kanten-Flackern) Schrägen mit Aufwärts-Hop drüber (kein Kanten-Flackern)
- [x] **Animator-Anbindung**: `Running`-Bool wird bei Bodenbewegung gesetzt - [x] **Animator-Anbindung**: `Running`-Bool wird bei Bodenbewegung gesetzt
@@ -69,6 +71,8 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
`Running`-Animator-Bool angebunden `Running`-Animator-Bool angebunden
- [x] **Fall-Animation**: eigene Pose-Animation beim Fallen (Abwärts-Velocity über - [x] **Fall-Animation**: eigene Pose-Animation beim Fallen (Abwärts-Velocity über
Schwellenwert, nicht am Boden; pro Pose authorbar mit Idle-Fallback) Schwellenwert, nicht am Boden; pro Pose authorbar mit Idle-Fallback)
- [x] **Fell** (`FurShellRenderer`): Shell-basiertes Fur auf dem Body, färbt mit der
Bemalung mit
### Bemalen (Kern der Camouflage-Idee) ### Bemalen (Kern der Camouflage-Idee)
- [x] **MeshPainter**: nahtfreies Bemalen direkt auf dem 3D-Mesh des Charakters - [x] **MeshPainter**: nahtfreies Bemalen direkt auf dem 3D-Mesh des Charakters
@@ -80,6 +84,12 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
- [x] Weitere Brushes (Größe per Hotkey/Slider, evtl. Muster/Texturen) - [x] Weitere Brushes (Größe per Hotkey/Slider, evtl. Muster/Texturen)
- [x] **Undo** der Bemalung (Checkpoint-basiert, auch über das Netzwerk) — ein - [x] **Undo** der Bemalung (Checkpoint-basiert, auch über das Netzwerk) — ein
separates Komplett-**Reset** ist bewusst nicht nötig (Undo deckt das ab) separates Komplett-**Reset** ist bewusst nicht nötig (Undo deckt das ab)
- [x] **PBR-Kanäle malbar**: Metallic/Smoothness und **Höhe** (Occlusion-Kanal mit
Relief-Normal- und Parallax-Shading) — pro Kanal zuschaltbar im Paint-HUD
- [x] **Camo-Regler**: **Brightness** (generelle Exposure) + **Saturation**
(0 = neutral, −1 = grau) — persistent und netz-repliziert
- [x] **Painting-Library**: Bemalungen benannt **speichern/laden/löschen** (versionierte
Slots inkl. aller Regler; Laden wird an Mitspieler re-broadcastet)
### Kamera ### Kamera
- [x] **Cinemachine** 3.1.7 Third-Person **Orbit-Kamera** (Maus) - [x] **Cinemachine** 3.1.7 Third-Person **Orbit-Kamera** (Maus)
@@ -94,11 +104,19 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
- [x] **First-Person-Modus** (Hunter: FP-Kamera + Schießen per Linksklick-Raycast) - [x] **First-Person-Modus** (Hunter: FP-Kamera + Schießen per Linksklick-Raycast)
- [x] **Free-Cam / Spectator-Modus** (gefundene/zuschauende Spieler beobachten frei) - [x] **Free-Cam / Spectator-Modus** (gefundene/zuschauende Spieler beobachten frei)
- [x] **FrameRateLimiter** (FPS-Begrenzung, VSync-Handling) - [x] **FrameRateLimiter** (FPS-Begrenzung, VSync-Handling)
- [x] **Settings-Persistenz** (`GameSettings`): Master-Volume- & Maus-Sensitivitäts-Slider
- [x] **SkyboxEnvironmentUpdater**: Sky-Reflexion + Ambient ohne gebackenes LightingData
(Custom-Cubemap-Render, Intensity-Regler, separates Reflexions-Sky-Material möglich)
- [x] **Concealment-Tooling**: `ConcealmentMeter` (volumetrische „wie tief steckt der Hider
in Geometrie"-Messung) + Collider-Baker (`ConcealmentColliderBaker`, VHACD, Skinned)
- [x] Git initialisiert (Unity-`.gitignore` + `.gitattributes`), englische Commits - [x] Git initialisiert (Unity-`.gitignore` + `.gitattributes`), englische Commits
### Multiplayer (reines Online-PvP) ### Multiplayer (reines Online-PvP)
- [x] **Netcode for GameObjects** (NGO 2.13) als Netzwerk-Stack - [x] **Netcode for GameObjects** (NGO 2.13) als Netzwerk-Stack
- [x] **Host/Join**, Lobby-Szene + Match-Szene (`The Room`) - [x] **Host/Join**, Lobby-Szene + Match-Szene (`The Room`)
- [x] **Session-Browser** (UGS Sessions, `OnlineSessionBrowserUI`): Host / Liste
aktualisieren / Join per Klick; im Spiel als **Esc-Pause-Overlay** mit
kontextsensitivem Disconnect (Exit / Back-to-Lobby / Disconnect)
- [x] **Spieler-Synchronisation** (NetworkTransform, owner-authoritativ) - [x] **Spieler-Synchronisation** (NetworkTransform, owner-authoritativ)
- [x] **Bemalung über das Netzwerk** (`PlayerPaintSync`: ServerRpc/ClientRpc/NetworkVariable, - [x] **Bemalung über das Netzwerk** (`PlayerPaintSync`: ServerRpc/ClientRpc/NetworkVariable,
Late-Join-Replay der Paint-Stamps) Late-Join-Replay der Paint-Stamps)
@@ -119,11 +137,23 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
- [x] **Found-State** (`NetworkVariable<bool>`, server-write): getroffener Hider → - [x] **Found-State** (`NetworkVariable<bool>`, server-write): getroffener Hider →
Mesh bei allen aus → nur noch **Spectator-Freecam** Mesh bei allen aus → nur noch **Spectator-Freecam**
- [x] **Früh-Ende der Suchphase**, wenn alle Hider gefunden/konvertiert sind - [x] **Früh-Ende der Suchphase**, wenn alle Hider gefunden/konvertiert sind
- [x] **Match-Start per Trigger-Zone** in der Lobby (`StartMatchTrigger`): die Match-Authority
stellt sich in den Bereich; server-seitiger Overlap-Poll (funktioniert auch für
Remote-Authority ohne Rigidbody)
- [x] **Radar-Pings**: Intervall-Sweep in der Suchphase — jeder un-gefundene Hider blippt
auf dem **Hunter-Radar** (Overlay-Radar mit Fade); HUD zeigt Countdown zum nächsten Sweep
- [x] **Selbst-Ping / Taunt** (E): Hider verrät sich freiwillig mit einem sofortigen Radar-Blip
- [x] **X-Ray-Reveal** (Umriss-Glow durch Wände): in der Auflösung, als kurzer Schuss-Flash
und als **Embedded-Schutz** — steckt ein Hider tiefer als die Schwelle in Geometrie
(`ConcealmentMeter`), wird er für alle enthüllt (Anti-Cheese)
- [x] **Conversion-Statuen** (`MatchStatue`): eingefrorene, bemalte Statue jedes konvertierten
Hiders (Ort/Pose/Bemalung) erscheint zur Auflösung
- [x] **Zwei Match-Modi** (`matchMode`, Inspector): - [x] **Zwei Match-Modi** (`matchMode`, Inspector):
- **Classic** — getroffener Hider wird „gefunden" (Freecam) - **Classic** — getroffener Hider wird „gefunden" (Freecam)
- **Conversion** (Infection) — Hider blind füreinander; getroffener Hider **wird Hunter** - **Conversion** (Infection) — Hider blind füreinander; getroffener Hider **wird Hunter**
(echte Hunter-Variante, **an Ort und Stelle**, sauberes Reveal via `conversionRevealDelay`) (echte Hunter-Variante, **an Ort und Stelle**, sauberes Reveal via `conversionRevealDelay`)
- [x] **Platzhalter-HUD** (`MatchHud`, OnGUI): Phasenname + Countdown + Hunter-Crosshair - [x] **Match-HUD** (`MatchHud`, uGUI `MatchHudCanvas`): Phase + Countdown, Rollen-Zähler,
Hunter-Crosshair, Radar-Sweep-Countdown
- [x] **Kamera-Occlusion-Fade** (`HeroCutout`): kegelförmiger weicher Cut (radial + axial), - [x] **Kamera-Occlusion-Fade** (`HeroCutout`): kegelförmiger weicher Cut (radial + axial),
konstante Bildschirm-Lochgröße, raycast-getriggert konstante Bildschirm-Lochgröße, raycast-getriggert
@@ -132,39 +162,40 @@ Online-PvP-Versteckspiel (Hide & Seek), 2–10 Spieler. Kurzüberblick der Mecha
## 4. Checkliste — Was noch fehlt ❌ ## 4. Checkliste — Was noch fehlt ❌
### Spielablauf (Hide & Seek) ### Spielablauf (Hide & Seek)
- [ ] **Auflösungs-Phase mit Inhalt**: aktuell läuft nur der Countdown; noch kein - [ ] **Ergebnis-Screen** in der Auflösung (wer hat gewonnen, wer wurde gefunden/konvertiert) —
**Ergebnis-Screen** (wer hat gewonnen, wer wurde gefunden/konvertiert) Conversion-Statuen + X-Ray-Reveal sind da, eine explizite Auswertung/Anzeige fehlt
- [ ] **Explizite Sieg-/Niederlage-Auswertung** (Hunter gewinnt bei „alle gefunden", - [ ] **Explizite Sieg-/Niederlage-Auswertung** (Hunter gewinnt bei „alle gefunden",
Hider gewinnen bei Timeout) — derzeit nur impliziter Phasenwechsel Hider gewinnen bei Timeout) — derzeit nur impliziter Phasenwechsel
- [ ] **Taunt/Pfeifen** (optional, ggf. erzwungen) — noch offen - [ ] **Akustisches Taunt/Pfeifen** (optional, ggf. erzwungen) — der Radar-Selbst-Ping
deckt die Mechanik bereits ab
### Multiplayer ### Multiplayer
- [ ] **Matchmaking** über reines Host-Join hinaus (Lobby-Browser / Codes / Relay) - [ ] **Matchmaking-Ausbau**: Join-Codes / Relay / private Sessions
(Session-Browser mit Host/Join existiert bereits)
- [ ] Robustheit: Reconnect, Host-Migration, Disconnect-Edge-Cases im Match - [ ] Robustheit: Reconnect, Host-Migration, Disconnect-Edge-Cases im Match
### Welt & Präsentation ### Welt & Präsentation
- [ ] **Maps / Level-Design** ausbauen (mehr Verstecke, abwechslungsreiche - [ ] **Maps / Level-Design** ausbauen (mehr Verstecke, abwechslungsreiche
Oberflächen/Farben) — Szenen `Lobby`, `The Room`, `Test Map` existieren als Basis Oberflächen/Farben) — Szenen `Lobby`, `The Room`, `Test Map` existieren als Basis
- [ ] **Echtes UI/HUD** statt des OnGUI-Platzhalters: Timer, Rollen-/Phasen-Anzeige, - [ ] **UI-Ausbau**: Menüs + Ergebnis-Screen — Match-HUD, Paint-HUD (inkl. Library)
Farbwähler, Menüs, Ergebnis-Screen (uGUI-Canvas) und Session-Browser sind bereits uGUI
- [ ] **Audio**: SFX (Schritte, Klettern, Schuss, ggf. Pfeifen), Musik - [ ] **Audio**: SFX (Schritte, Klettern, Schuss, ggf. Pfeifen), Musik
- [ ] **Beleuchtung / Art-Direction** finalisieren (erste Reflection-/Shadow-Passes sind drin) - [ ] **Beleuchtung / Art-Direction** finalisieren (Sky-Reflexion/Ambient via
`SkyboxEnvironmentUpdater` und erste Shadow-Passes sind drin)
--- ---
## 5. Vorgeschlagene nächste Schritte (Reihenfolge zur Diskussion) ## 5. Vorgeschlagene nächste Schritte (Reihenfolge zur Diskussion)
Der Kern-Loop steht (Netcode, Rollen, Phasen, beide Modi, Schießen/Konversion). Die nächsten Der Kern-Loop steht (Netcode, Session-Browser, Rollen, Phasen, beide Modi, Schießen/Konversion,
Schritte machen ihn **rund** und **präsentabel**: Radar, X-Ray-Reveal, Statuen). Die nächsten Schritte machen ihn **rund** und **präsentabel**:
1. **Match-Abschluss ausbauen:** echte Sieg-/Niederlage-Auswertung + Ergebnis-Screen in der 1. **Match-Abschluss ausbauen:** echte Sieg-/Niederlage-Auswertung + Ergebnis-Screen in der
Auflösungs-Phase (statt nur Countdown → Lobby). Auflösungs-Phase (Statuen + Reveal sind da, die Auswertung fehlt).
2. **Echtes HUD** (uGUI) statt des `MatchHud`-OnGUI-Platzhalters: Timer, Rolle/Phase, 2. **Map-/Level-Design** vertiefen: mehr Verstecke und farblich abwechslungsreiche
Treffer-/Konversions-Feedback.
3. **Map-/Level-Design** vertiefen: mehr Verstecke und farblich abwechslungsreiche
Oberflächen, damit die Tarnung wirklich zählt. Oberflächen, damit die Tarnung wirklich zählt.
4. **Politur:** Audio (Schritte/Schuss), Art-Direction/Beleuchtung, 3. **Politur:** Audio (Schritte/Schuss, optional Pfeifen), Art-Direction/Beleuchtung.
optional Taunt-System. 4. **Robustheit:** Reconnect / Host-Migration / Disconnect-Edge-Cases.
> Reihenfolge bewusst so, dass aus dem funktionierenden Prototyp ein **fühlbar fertiges** > Reihenfolge bewusst so, dass aus dem funktionierenden Prototyp ein **fühlbar fertiges**
> Match wird, bevor wir Breite (mehr Modi/Maps) draufsetzen. > Match wird, bevor wir Breite (mehr Modi/Maps) draufsetzen.