docs(M1): record all 4 demo targets met, list deferred polish
M1's demo scenario is mechanically complete:
1. Walk through Holtburg — met via L.2a/d/g
2. Open the inn door — met via B.4b + B.4c
3. Click an NPC — met via B.4b chain + chat handlers
(visually verified 2026-05-14 on Tirenia + Royal Guard)
4. Pick up an item — met via B.5 + 87ba5c9 feedback polish
What's left to formally land: record ≈30s demo video, pin still +
writeup, flip freeze list, point CLAUDE.md "currently working toward"
at M2. Per the milestone-discipline rules, milestone landing is a
user-driven event with an artifact; this commit only updates the
factual demo-target status.
Filed but explicitly deferred (don't block M1 recording): #61 (door
swing cycle-boundary flash), #62 (PARTSDIAG null-guard), #63
(server-initiated MoveToObject auto-walk — candidate Phase B.6),
#64 (local-player pickup animation).
This commit is contained in:
parent
87ba5c9a98
commit
7be13938bc
1 changed files with 46 additions and 16 deletions
|
|
@ -94,35 +94,65 @@ missing is the gameplay loop on top.
|
|||
|
||||
---
|
||||
|
||||
### M1 — "Walkable + clickable world" — 🟡 CURRENT (~4–6 weeks)
|
||||
### M1 — "Walkable + clickable world" — 🟡 CURRENT, all 4 demo targets met (pending recorded video)
|
||||
|
||||
**Demo scenario:** Walk through Holtburg without getting stuck on the inn
|
||||
doorway. Open the inn door. Click an NPC and see selection feedback. Pick
|
||||
up an item from the ground.
|
||||
|
||||
**Phases to ship:**
|
||||
- **L.2 (all sub-lanes a–g)** — Movement & Collision Conformance.
|
||||
L.2a slices 1+2+3 + L.2d slice 1+1.5 + L.2g slice 1 (code) shipped
|
||||
2026-05-12. L.2g slice 1 visual verification deferred to B.4b session
|
||||
(the inbound SetState chain can't fire until the outbound Use sends).
|
||||
- **B.4 / B.4b** — `Use` / `UseWithTarget` / `PickUp` interaction.
|
||||
B.4 (2026-04-28) shipped the wire builders, `SelectionState`,
|
||||
`WorldPicker`, the input-action enums, and the keybindings — but
|
||||
*not* the `GameWindow.OnInputAction` handler that ties them
|
||||
together. As of 2026-05-12, clicking on a door silently does nothing.
|
||||
**B.4b** is the small follow-up slice (~30-50 LOC) that subscribes
|
||||
`SelectDblLeft` and routes through pick → BuildUse → send. Once B.4b
|
||||
lands, the same Holtburg-doorway visual test verifies both L.2g
|
||||
slice 1 and B.4b in one pass.
|
||||
**Demo-target status (as of 2026-05-14):**
|
||||
|
||||
| # | Target | Status | Evidence |
|
||||
|---|---|---|---|
|
||||
| 1 | Walk through Holtburg without getting stuck | ✅ met | L.2a/d/g shipped 2026-05-12; Holtburg doorway verified |
|
||||
| 2 | Open the inn door | ✅ met | B.4b (interaction) + B.4c (swing animation) shipped 2026-05-13 |
|
||||
| 3 | Click an NPC and see selection feedback | ✅ met | B.4b chain + chat handlers; verified 2026-05-14 (Tirenia + Royal Guard double-click → NPC dialogue in chat panel) |
|
||||
| 4 | Pick up an item from the ground | ✅ met (close-range path) | B.5 + post-B.5 PickupEvent fix shipped 2026-05-14; visual-verified at Holtburg; pickup chat/toast feedback added in `87ba5c9` |
|
||||
|
||||
**What's left to formally land M1:**
|
||||
- Record ~30s demo video of the four-target scenario end-to-end.
|
||||
- Drop at `docs/milestones/M1-walkable-clickable.mp4`.
|
||||
- Pin still + one-paragraph writeup at the top of this doc.
|
||||
- Flip the freeze list. Update `CLAUDE.md`'s "currently working toward"
|
||||
line to M2.
|
||||
|
||||
**Known polish items deferred (do not block M1 recording, addressable post-M1):**
|
||||
- **#61** — AnimationSequencer link→cycle frame-0 flash on door swing. LOW.
|
||||
- **#62** — PARTSDIAG null-guard. Latent, not reachable today.
|
||||
- **#63** — Server-initiated `MoveToObject` auto-walk not honored (blocks
|
||||
double-click pickup + out-of-range F-pickup; close-range still works).
|
||||
MEDIUM. Candidate Phase B.6 — holtburger has the reference port.
|
||||
- **#64** — Local-player pickup animation does not render (retail
|
||||
observers see it correctly). LOW.
|
||||
|
||||
**Phases that shipped to clear M1:**
|
||||
- **L.2 (a + d + g sub-lanes)** — Movement & Collision Conformance.
|
||||
L.2a slices 1+2+3 + L.2d slice 1+1.5 + L.2g slice 1+1b+1c shipped
|
||||
2026-05-12 / 2026-05-13. Visual-verified via the B.4b doorway test.
|
||||
- **B.4b** — outbound Use + `WorldPicker` + double-click detection +
|
||||
`CollisionExemption` widening + `ServerGuid→entity.Id` translation
|
||||
(the ID-mismatch trap surfaced during L.2g slice 1c). Shipped
|
||||
2026-05-13.
|
||||
- **B.4c** — door swing animation: spawn-time `AnimationSequencer`
|
||||
registration + stance-value fix (`NonCombat = 0x3D` not `0x01`, which
|
||||
had been causing doors to render halfway underground). Shipped
|
||||
2026-05-13.
|
||||
- **B.5** — `BuildPickUp` (PutItemInContainer 0x0019) + `SendPickUp`
|
||||
helper + F-key wiring + new `PickupEvent (0xF74A)` despawn handler.
|
||||
Shipped 2026-05-14.
|
||||
- **B.5 polish** (`87ba5c9`) — pickup feedback chat line + toast so the
|
||||
M1 demo's "pick up" target has visible payoff.
|
||||
|
||||
**Freeze on landing:**
|
||||
- L.2 zone (collision, cell ownership, transition parity, wire authority)
|
||||
- B.4 zone (interaction outbound)
|
||||
- B.5 zone (pickup outbound + inbound despawn)
|
||||
|
||||
**What "M1 lands" looks like:** the existing Holtburg traversal works as a
|
||||
retail player would expect. Doorways are walkable. Buildings have solid
|
||||
walls. Outdoor cell seams report the right cell. Clicking an NPC selects it
|
||||
and sends a usable selection state to the server. The Use action opens doors.
|
||||
and produces NPC chat. The Use action opens doors. F picks up items at
|
||||
close range and the player sees "You pick up the X." in chat.
|
||||
|
||||
---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue