milestone: re-open M1.5 — dungeon support (full G.3) pulled into scope; M2 re-deferred
Correction to 1bf037a. The user reverted the M1.5 landing: the indoor
world isn't done while dungeons are completely broken. Attempting the
dungeon demo revealed it's not a single bug (#133) but a whole-feature
gap — terrain-less indoor-only dungeon landblocks aren't supported
anywhere in the streaming/load/render/physics pipeline:
- LandblockLoader.Load returns null when there's no LandBlock terrain
record (dungeons have none) -> the dungeon never loads.
- LandblockStreamer fails when the terrain mesh build returns null
(dungeons have no terrain mesh).
- The teleport-arrival snap Resolves before the dungeon hydrates ->
places the player in the old Holtburg frame over ocean.
The user chose the FULL Phase G.3 scope (dungeon streaming + portal-space
loading screen + multi-landblock LOD + PlayerTeleport handling) and
pulled it into M1.5. M1.5 lands only when BOTH the building/cellar demo
(done) and the dungeon demo (enter via portal, navigate 3-5 rooms, walls
block, smooth transitions) pass. M2 (CombatMath) re-deferred.
Currently brainstorming the dungeon-support design (spec ->
docs/superpowers/specs/). Docs corrected: milestones (M1.5 ACTIVE +
extended, M2 DEFERRED, currently-working-toward -> M1.5), CLAUDE.md
current-state, ISSUES.md #133 (G.3 pulled into M1.5).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1bf037a1c9
commit
9c2ceb2336
3 changed files with 63 additions and 39 deletions
|
|
@ -2,9 +2,13 @@
|
|||
|
||||
**Status:** Living document. Created 2026-05-12.
|
||||
**Sits above:** [`docs/plans/2026-04-11-roadmap.md`](2026-04-11-roadmap.md) (the strategic phase index).
|
||||
**Currently working toward:** **M2 — Kill a drudge.** (M1.5 — Indoor world
|
||||
feels right — LANDED 2026-06-13 on the building/cellar demo; the dungeon
|
||||
half deferred to Phase G.3 via issue #133. See the M1.5 section.)
|
||||
**Currently working toward:** **M1.5 — Indoor world feels right.** The
|
||||
building/cellar demo is DONE + user-gated, but M1.5 was EXTENDED 2026-06-13
|
||||
to include **dungeon support (full Phase G.3)** — dungeons don't work yet
|
||||
(terrain-less dungeon landblocks aren't supported by the streaming/load
|
||||
pipeline; issue #133). M1.5 does NOT land until dungeons work. M2 stays
|
||||
deferred. (Correction: M1.5 was briefly marked landed 2026-06-13; the user
|
||||
reverted that — the indoor world isn't done while dungeons are broken.)
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -187,9 +191,24 @@ close range and the player sees "You pick up the X." in chat.
|
|||
|
||||
---
|
||||
|
||||
### M1.5 — "Indoor world feels right" — ✅ LANDED 2026-06-13 (building/cellar demo; dungeon half → Phase G.3 / issue #133)
|
||||
### M1.5 — "Indoor world feels right" — 🔵 ACTIVE (building/cellar demo DONE; EXTENDED 2026-06-13 to include dungeon support / Phase G.3)
|
||||
|
||||
**M1.5 LANDED 2026-06-13.** The indoor world reads as solid. Across the
|
||||
**EXTENDED 2026-06-13 — dungeons pulled into M1.5 scope.** The
|
||||
building/cellar demo (below) is DONE + user-gated, but attempting the
|
||||
dungeon demo surfaced that dungeons don't work AT ALL: terrain-less
|
||||
dungeon landblocks aren't supported anywhere in the streaming/load/
|
||||
render/physics pipeline (`LandblockLoader.Load` returns null with no
|
||||
`LandBlock` terrain record; the streamer fails with no terrain mesh; the
|
||||
teleport snap Resolves before hydration — issue #133). The user decided
|
||||
M1.5 is NOT done while the indoor world excludes dungeons, and chose the
|
||||
FULL Phase G.3 scope (dungeon streaming + portal-space loading screen +
|
||||
multi-landblock dungeon LOD + `PlayerTeleport` handling). Design in
|
||||
progress (`docs/superpowers/specs/` — dungeon-support spec). M1.5 lands
|
||||
when: building/cellar demo (DONE) + dungeon demo (enter via portal,
|
||||
navigate 3-5 rooms, walls block, smooth transitions) both pass.
|
||||
|
||||
**Building/cellar demo — DONE + user-gated.** The indoor world reads as
|
||||
solid. Across the
|
||||
2026-06 sessions the holistic retail-faithful render port (Option A: ONE
|
||||
`DrawInside(viewer_cell)`, no inside/outside branch — BR-2..BR-7 / T1..T6)
|
||||
shipped and was user-gated, and the indoor physics/membership family was
|
||||
|
|
@ -204,14 +223,18 @@ closed); cell transitions are smooth (the doorway "flap" family killed —
|
|||
closed with user gates). The #90-stickiness + `TryFindIndoorWalkablePlane`
|
||||
synthesis workarounds were removed by A6.P4. Remaining feel-level debt is
|
||||
tracked (#116 slide-response, partial Ghidra fix shipped; A7 indoor
|
||||
lighting fidelity not yet done — folded forward). **The dungeon demo is the
|
||||
one piece NOT landed here:** attempting it (2026-06-13, meeting-hall portal)
|
||||
surfaced issue **#133** — teleport-into-a-dungeon snaps the player before
|
||||
the dungeon landblock streams in, landing them in the old (Holtburg) frame
|
||||
over ocean. That is the **Phase G.3** machinery (dungeon streaming +
|
||||
`PlayerTeleport` handling), an M4 concern; the dungeon demo is correctly
|
||||
promoted there rather than blocking M1.5. Drudges for M2 can spawn
|
||||
outdoors, so M2 is unblocked.
|
||||
lighting fidelity not yet done — folded forward).
|
||||
|
||||
**Still OPEN in M1.5 — dungeon support (Phase G.3, issue #133).** Dungeons
|
||||
don't work: the streaming/load/render/physics pipeline was built entirely
|
||||
around outdoor landblocks (terrain + scattered buildings) and has no path
|
||||
for terrain-less indoor-only dungeon landblocks. Confirmed gaps:
|
||||
`LandblockLoader.Load` returns null with no `LandBlock` record; the
|
||||
streamer fails with no terrain mesh; the teleport-arrival snap Resolves
|
||||
before the dungeon hydrates → places the player in the old frame over
|
||||
ocean. Full G.3 scope chosen by the user 2026-06-13 (streaming + portal-
|
||||
space loading screen + multi-landblock LOD + `PlayerTeleport` handling).
|
||||
Spec under `docs/superpowers/specs/`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -325,24 +348,22 @@ unblocks that).
|
|||
|
||||
---
|
||||
|
||||
### M2 — "Kill a drudge" — 🔵 ACTIVE (started 2026-06-13, after M1.5 landed)
|
||||
### M2 — "Kill a drudge" — ⏸ DEFERRED until M1.5 lands (incl. dungeons)
|
||||
|
||||
**Demo scenario:** Equip a sword. Walk to a drudge. Swing. See "You hit
|
||||
Drudge for 12 slashing damage (87%)" in chat. Watch the swing animation
|
||||
play. Drudge dies, drops loot. Pick up the loot. Open the inventory panel
|
||||
and see it.
|
||||
|
||||
**Dungeon note:** drudges live in dungeons in retail, but the M2 demo does
|
||||
NOT require dungeon streaming (#133 / Phase G.3) — spawn a drudge outdoors
|
||||
near Holtburg for the combat loop. Dungeon access lands later with G.3 (M4).
|
||||
|
||||
**First port target (per the M2 combat-math research memo,
|
||||
`memory/research/2026-06-04-combat-math-deep-dive.md`):**
|
||||
**First port target when M2 starts (per the M2 combat-math research memo,
|
||||
`docs/research/2026-06-04-combat-math-deep-dive.md`):**
|
||||
`CombatMath.ComputeDamage` — damage-calc + armor-resists are port-ready
|
||||
(ACE is the high-confidence oracle; two known scaffold bugs in
|
||||
`CombatModel.cs` identified). Hit-roll is well-documented client-side;
|
||||
the server sigmoid/crit + weapon-timing (the x87 `GetPowerBarLevel`
|
||||
artifact) come after.
|
||||
`CombatModel.cs` identified — additive attributeBonus + subtractive armor).
|
||||
Hit-roll is well-documented client-side; the server sigmoid/crit +
|
||||
weapon-timing (the x87 `GetPowerBarLevel` artifact) come after. NOTE: M2
|
||||
was briefly started 2026-06-13 then re-deferred when M1.5 was extended to
|
||||
include dungeons.
|
||||
|
||||
**Phases to ship:**
|
||||
- **F.2 (panels)** — Inventory panel reading `ItemRepository` (data already
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue