From d966813a36e455e433402cc06cb691c2933e1c30 Mon Sep 17 00:00:00 2001 From: Luis Gonzalez Date: Tue, 7 Jul 2026 21:14:03 -0700 Subject: [PATCH] Docs: Phase 1 gate verdict (static/boring world) -> Phase 1.5 World Alive inserted + boons pulled forward to 1.7 Co-Authored-By: Claude Opus 4.8 (1M context) --- .../06_Roadmap/Iteration_2026-07_CoopHades.md | 62 ++++++++++++++++++- 1 file changed, 59 insertions(+), 3 deletions(-) diff --git a/Docs/Vault/06_Roadmap/Iteration_2026-07_CoopHades.md b/Docs/Vault/06_Roadmap/Iteration_2026-07_CoopHades.md index 936cf381f..d1caf45e4 100644 --- a/Docs/Vault/06_Roadmap/Iteration_2026-07_CoopHades.md +++ b/Docs/Vault/06_Roadmap/Iteration_2026-07_CoopHades.md @@ -61,6 +61,12 @@ after a playtest gate). **Blender scope: hero props + decals.** No time estimate **Gate:** one honest solo campaign to Victory + one 2-instance LAN lap with the overlay open. +> **Gate outcome (2026-07-07 operator playtest):** trunk holds mechanically, but the verdict is *"not cohesive, very +> static, visually boring — comparable games' environments are dynamic and interactable"* + ability upgrades boring + +> the 07-07 harvest shrink/pop never showed on-screen (the pre-flagged PostTransformMatrix-on-root risk is real). +> → **Phase 1.5 (World Alive) inserted below; mechanic-changer boons PULLED FORWARD from Phase 3 (Phase 1.7).** +> Explicit operator framing: make the game **look better**, not more "juice" — the code-side hit-feel layer stays as-is. + ### Slice B folded design (design-review `wf_fd177263-b67`, 2026-07-06 — 3 lenses done, 15 verify verdicts ALL isReal=true; synthesis died on session limit, folded by hand from the verified findings) - **B3 Dying window:** server-only `Dying{uint UntilTick}` (TickUtil.NonZero, stamp ONCE on the 0-crossing in @@ -96,6 +102,52 @@ after a playtest gate). **Blender scope: hero props + decals.** No time estimate threshold + separation strength as live TuningConfig knobs. ⚠ Bursted query-set edits on an UNFOCUSED editor can leave a stale Burst binary — have the editor focused for the compile, or expect the restart cure. +## Phase 1.5 — World Alive (inserted 2026-07-07 from playtest verdict; visual + dynamism, explicitly NOT juice) + +Operator interactivity scope (all four selected + two write-ins): breakable clutter with drops · environmental +hazards · cosmetic reactivity + ambient motion · destructible cover · **collision precision** · **more distinct +attacks/animations/effects**. Art direction deliberately UNDECIDED — lighting pass first, then pick (see gate). + +### Stabilize first (bugs, do before the pass) + +1. **Node harvest feedback fix:** the shrink/pop drives `PostTransformMatrix` on the ghost ROOT, but node meshes are + render (LEG) children → scale the render children instead (the 07-07 session log pre-flagged exactly this). + **Verify ON-SCREEN this time** — the operator's eyes are the test for skinned/scaled visuals. +2. **Collision precision pass:** operator reports collisions imprecise/not working well. Diagnose scope FIRST + (environment collision vs body-blocking vs melee/projectile hit registration — each is a different system) with a + live repro session, then fix. Swept-not-point rules apply to anything hit-reg. + +### Short-term wins (asset/scene/client layer) + +3. **Lighting/atmosphere pass (direction-agnostic):** ambient way down, dynamic point lights on projectiles / portal / + pickups / braziers / ability impacts, per-biome fog + color-grade tune. Build AS IF no pixel filter (it composes on + top). Then the **art-look decision gate**: side-by-side screenshots pixel filter ON vs OFF over the lit scene → + operator locks pixel-art-3D vs dark-Synty vs both. Every later visual choice hangs off this lock. +4. **Ambient motion layer (client-only, zero netcode):** foliage sway/rustle on walk-through, per-biome dust/embers/fog + drift particles, critters that scatter, flags/banners. Biggest bang-per-effort for "not static". +5. **Breakable clutter with drops:** Hades-style urns/crates/Blight growths seeded per room; shatter on hit → small + resource drops. Reuses the destructible-ghost + `BlightClutter` + pickup patterns — netcode-cheap. +6. **Attack distinctness:** every enemy kind + class ability gets a unique read — anim + VFX + effect shape (not more + hit-stop). Builds on the shipped Blender clip pipeline + sword-combo work; creature locomotion for monsters still + open from Phase 1.3. + +### Long-term (server-sim; adversarial design-review REQUIRED per slice) + +7. **Environmental hazards:** exploding barrels, Blight geysers, trap tiles — damage BOTH sides so enemies can be + baited into them. Real combat interplay; replication + predicted-damage surface needs the review. +8. **Destructible cover:** in-room cover rocks take damage and crumble (Charger smashes through, players carve LOS). + Structures already have Health; **re-validate the enemy stuck-fix backstop when cover can disappear mid-fight.** + +**Gate:** operator playtest says "no longer static"; node harvest feedback visibly works; art direction LOCKED. + +## Phase 1.7 — Boon overhaul (PULLED FORWARD from Phase 3, operator call 2026-07-07) + +- **Boons → ~12 mechanic-changers** on existing hooks: dash damage trail, finisher AoE detonation, projectile + pierce/fork/chain, ability-SWAP boons (replicated AbilityRef byte via the ClassSwapUtil pattern), knockback→pull… + plus synergy tags, duplicate/dominated-offer protection. Design-review before coding (replicated ability swaps). + +**Gate:** two consecutive runs feel different from boons alone. + ## Phase 2 — Hub-ification (structural; adversarial design-review REQUIRED before coding) - **Mothball, don't delete:** sieges/CoreIntegrity/turret-ammo retired from the flow via baked toggles (the @@ -111,9 +163,7 @@ after a playtest gate). **Blender scope: hero props + decals.** No time estimate ## Phase 3 — Depth (folded in now; design-review per netcode-heavy slice) - **Kit:** second ability slot + one new active per class (reuse AbilityRef catalog + predicted-input review). -- **Boons → ~12 mechanic-changers** on existing hooks: dash damage trail, finisher AoE detonation, projectile - pierce/fork/chain, ability-SWAP boons (replicated AbilityRef byte via the ClassSwapUtil pattern), knockback→pull… - plus synergy tags, duplicate/dominated-offer protection. +- ~~Boons~~ **MOVED to Phase 1.7** (pulled forward 2026-07-07 — operator playtest called flat-stat upgrades boring). - **Real node types:** Elite (affixed alphas via the boss spawn-stamp pattern), Shrine (combat-free choice), Survive, Cursed. - **Second boss chassis** (Spitter artillery) so lap 2 differs. @@ -141,3 +191,9 @@ sim) · encounter-composition buttons in DevSandbox · WasAllReady regression te Supersedes the DR-042 "final beat = base siege" lock (win moves fully expedition-side). DR-034 Core / EB-1/2 siege systems → mothballed, not deleted. The "present forks" ritual re-runs at each phase's design review. + +**2026-07-07 restructure (Phase 1 gate playtest):** Phase 0 + Phase 1 SHIPPED (commits `7c1fee097`…`cc2e7ad95`, incl. +Blender clips, sword combo, pixel-art render style, enemy-stuck fix, markers, harvest feedback). Gate playtest verdict += static/boring world → **Phase 1.5 World Alive** inserted (stabilize: node-feedback fix + collision precision; short: +lighting→art-look gate, ambient motion, breakables, attack distinctness; long: hazards + destructible cover, review-first) +and **boons pulled forward to Phase 1.7**. Phase 2 (hub) now follows 1.7. Order: 1.5 → 1.7 → 2 → 3 → 4/5 parallel.