Skip to content

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.cs
  • Features/Dungeons/Run/DungeonRun3DController.cs
  • Features/Dungeons/Run/Completion/RunCompletionService.cs
  • Features/Dungeons/Run/Completion/PendingRunResultQueue.cs
  • Features/Dungeons/Run/Completion/LocalReplayStore.cs