Dungeon-Runs und Objectives
Der aktive 3D-Run erzeugt aus DungeonRunConfig deterministisch eine RunDefinition und eine Dungeon-Definition, baut die Raumwelt, startet Encounters, verfolgt Objectives und finalisiert genau ein Run-Ergebnis.
Aktiver Ablauf
Hub-Terminal
-> SeedService.BuildRunConfig
-> DungeonRunContextStore
-> DungeonRunService (Nakama: start/notify/abort)
-> DungeonRun3DController
-> IRunCompletionService
-> PendingRunResultQueue + Nakama Upload/Submit
Docker-Nakama und Live-Server nutzen denselben Online-Pfad (nur Host/Key unterscheiden sich). Es gibt keinen Offline-/Local-Run-Backend-Pfad.
Der V3-Generator liefert Start-Lounge, Hauptpfad, optionale Räume, Treasure-Räume und Bossräume entsprechend dem gewählten Profil. DungeonObjectiveTracker dedupliziert Enemy-IDs und öffnet den Exit erst, wenn alle Boss- und Enemy-Point-Regeln erfüllt sind.
Loadouts und Authority
Die finalisierte Run-Definition trägt Run-Regeln, Balance-Version, Policy-Hash und validierte Loadouts. Der Player konfiguriert AdvancedWeaponController vor Combat-Beginn aus diesem Snapshot.
Lokale Eingabe verändert den Run nicht direkt. Sie erzeugt Move-, Weapon- und Interaction-Commands, die IRunAuthority tickbasiert verarbeitet. Details stehen unter Phase 2: Run Authority.
Completion und Replay
Exit, Tod und bestätigter Abbruch laufen durch IRunCompletionService. Die Finalisierung ist idempotent und speichert Metriken, Loadout-Snapshot und Replay-ID. Replay-Chunks und Pending-Results liegen in LocalReplayStore (user://replays); Upload/Submit laufen über die Pending-Queue gegen Nakama.
Wichtige Dateien
Features/Dungeons/Run/DungeonRunService.csFeatures/Dungeons/Run/DungeonRun3DController.csFeatures/Dungeons/Run/Completion/RunCompletionService.csFeatures/Dungeons/Run/Completion/PendingRunResultQueue.csFeatures/Dungeons/Run/Completion/LocalReplayStore.cs