Skip to content

How-to: Encounter erstellen

Status: Konkrete Encounter entstehen deterministisch in RunDefinition.Objective; Zusammensetzung und Wellen können über Godot Resources konfiguriert werden.

Zusammensetzung definieren

  1. Enemy-Definitionen nach Gegner erstellen bereitstellen.
  2. Für datengetriebene Mischungen EncounterPatternResource, EncounterWaveResource und Rollen-Gewichte unter res://Resources/Enemies/ pflegen.
  3. Pattern im EncounterCompositionCatalogResource registrieren. Shared-Fallbacks liegen in DefaultEncounterCompositionCatalog.
  4. EncounterCompositionBuilder muss für gleichen Seed, Raum und Balance-Snapshot dieselbe sortierte Zusammensetzung liefern.

Die konkrete RoomInstanceId entsteht erst pro Run. DungeonObjectiveDefinitionFactory erzeugt eindeutige EnemyObjectiveDefinition-Einträge mit Definition-, Instance-, Room-, Wave-, Progress-, Boss- und Spawn-Origin-Daten. EncounterSpawnRequestFactory übersetzt Initial-Spawns anschließend sortiert in Laufzeitanfragen.

Raum und Runtime anbinden

  • Benötigte EnemySpawnMarker3D-, BossSpawnMarker3D- und unterstützende Marker mit stabilen IDs/Tags im V3-Template anlegen.
  • RoomEncounterRuntime3D aktiviert das Encounter beim Betreten, betreibt Telegraph/Spawn über RoomEncounterDirector und bezieht Gegner aus DungeonEnemyPool.
  • WaveIndex, Caps, Reinforcement-Threshold und Inter-Wave-Pause kommen aus Objective und CombatBalanceSnapshot.
  • Defeats müssen genau einmal an Director, Objective-Tracker, Drop-Schedule und Replay gemeldet werden. Completion öffnet Türen unabhängig davon, ob ein physischer Drop eingesammelt wurde.

Tests und manuelle Prüfung

  • EnemyCompositionAndDensityTests.cs: Patternwahl, Rollen, Dichte und Determinismus.
  • EncounterDirectorAndBalanceTests.cs: Caps, Wellen, Reinforcements und Completion.
  • DungeonRunDefinitionTests.cs und DungeonObjectiveTrackerTests.cs: stabile IDs, Raumreferenzen und Quote.
  • Manuell im Developer-Run oder in der Balancing-Sandbox: Marker, Telegraph, Pool-Reuse, Doors, Drops und Replay-Ereignisse prüfen.

Serverautoritative Waffenentscheidungen sind aktiv; der vollständige Enemy-/Encounter-Lifecycle wird noch nicht vollständig auf dem Headless-Server simuliert.

Verwandt: Gegner, Boss, Dungeon-Runs.