Docs: DR-040 Slice 3 (Expedition Combat Spine) reviewed + scope-locked
Heaviest pre-code review done (1 ground + 3 lenses). v1 loop scope-locked: walk gate ->
epoch-seeded enemy wave in the expedition -> clear -> return + Ore -> escalated base siege.
4 netcode blockers fixed-in-spec (EnemyAISystem per-region targets; WaveSystem cleared-check
RegionTag{Base}; relevancy MaxAlive cap; reward per-epoch sentinel). Arena pool / zone-theme
byte / TimedModifier buff / SaveData v6 / mini-boss deferred to v2. Build is the next unit.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -47,6 +47,10 @@ Ran the adversarial pre-code review (1 ground + 3 lenses: netcode/determinism ·
|
||||
|
||||
Built the whole slice across 4 committed chunks (`d9d67c4e7` → `431a7e2ed`): the data layer + melee-augment routing; the class carrier (`GoInGameRequest.ClassId` + `ClassSelection` + `ClassTraits`, the review's fix for the per-world-`ConnectionConfig` blocker); the aim-directed Warrior cone (inline in `AbilityFireSystem`'s server branch, same-tick); the WarriorCone ability authored + subscene re-baked; the menu class picker. Character deltas ride replicated `StatModifier` seeds on the Default character (prediction-correct, no per-class blob churn); melee asymmetry folds in `MeleeComboSystem`. **348/348 EditMode** (+3 `ClassTraits` tests); **Warrior Play-validated end-to-end, server==client** (`AbilityRef=WarriorCone`, 4 seeds, eff MaxHP 130 / MoveSpeed 5.1 / cone dmg 22; `conns=1` — re-bake handshake intact; zero runtime errors). **Deferred (review-sanctioned polish):** the WarriorCone client VFX + the slash-arc reading the folded melee reach. **Open: the Slice 2 fun-gate** (do the classes feel distinct — operator's eyes).
|
||||
|
||||
## Slice 3 — Expedition Combat Spine: REVIEWED + scope-locked (2026-06-18, [[DR-040_Slice3_Expedition_Combat_Spine]])
|
||||
|
||||
Ran the heaviest pre-code review (1 ground + 3 lenses — netcode/determinism · procgen-feel · reuse/scope). Verdict: PROCEED WITH BLOCKERS RESOLVED; the chassis is heavily reused. Scope-locked to a tractable **v1 loop** (walk gate → epoch-seeded enemy wave in the expedition → clear → return + Ore → escalated base siege), all forks at the recommended defaults. **4 netcode blockers identified + fixes specified:** `EnemyAISystem` per-region target lists (the known bug is broader — base structures + Core fallback leak too); `WaveSystem` cleared-check must filter `RegionTag{Base}` (else the base siege never clears while expedition enemies live — a NEW blocker the review caught); RegionRelevancy `MaxAlive` cap; reward double-fire gated by a per-epoch sentinel + a real clear. Deferred to v2: arena-layout pool, zone-theme byte, `TimedModifier` buff, SaveData v6, mini-boss. The plan is build-ready (precise component/system/test/Play spec in DR-040). **Status: reviewed + locked, NOT built.**
|
||||
|
||||
## Next
|
||||
|
||||
Continue the roadmap: **Slice 3 — Expedition Combat Spine** (the procedural run venue). Open it with its adversarial netcode/determinism design review FIRST ([[validate-netcode-design-before-coding]]) — it's the heaviest netcode slice (reactivate `ExpeditionFieldSystem` → authored-arena pool + `ZoneEnemySpawnSystem(RegionTag{Expedition})` + the `EnemyAISystem` region-filter fix + the `ThreatDirector` mid-siege-return gate + a zone-clear reward + a replicated zone-theme byte + the required sortie→clear→return→escalated-siege loop; manage `RegionRelevancySystem` per-tick cost). Then Slice 4 (persistent meta). Operator fun-gates for Slices 1 + 2 remain open (their eyes).
|
||||
**Build Slice 3 v1** from [[DR-040_Slice3_Expedition_Combat_Spine]] (start: new components + the 3 surgical server-count fixes → the `EnemyAISystem` region-filter (riskiest — test it) → `ZoneEnemySpawnSystem` + authoring + the Ore reward → tests + Play-validate → commit). Then Slice 4 (persistent meta). Operator fun-gates for Slices 1 + 2 (and, once built, 3) remain open (their eyes); the optional-vs-required-sortie fork defaults to optional.
|
||||
|
||||
Reference in New Issue
Block a user