docs: reconcile project status and navigation
Add a canonical documentation map, modernize the public README, and align milestone, roadmap, architecture, issue, divergence, and session guidance with the July 20 baseline. Correct the far-teleport residual to issue #153, close visually accepted indicator and terrain-tiling work, record the remaining detail-overlay and build-warning debt, and deprecate the duplicate legacy bug ledger. Co-authored-by: OpenAI Codex <codex@openai.com>
This commit is contained in:
parent
a755b764bf
commit
6c3bd4ce4b
11 changed files with 429 additions and 155 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# acdream — strategic roadmap
|
||||
|
||||
**Status:** Living document. Updated 2026-07-20. **M3 active; automated implementation complete, visual gates pending.** M2's connected demo loop is complete. M3 now has the retail cast-intent/component/target lifecycle, exact live enchantment wire state, scoped Magic input, retained spell bar, spellbook, component book, positive/negative effects panels with authored rows and selected-spell details, the complete seven-control gameplay indicator strip and its Character Information/Link/Vitae detail pages, and shared `gmPanelUI` geometry/switching over the Step 9 projectile/PhysicsScript/particle/portal foundation. The remaining M3 work is the connected single-client magic-UI/casting gate and final two-client portal-out/materialization observer gate.
|
||||
**Status:** Living document. Updated 2026-07-20. **M3 active; automated implementation and connected single-client magic/portal gates complete.** M2's connected demo loop is complete. M3 now has the retail cast-intent/component/target lifecycle, exact live enchantment wire state, scoped Magic input, retained spell bar, spellbook, component book, positive/negative effects panels with authored rows and selected-spell details, the complete seven-control gameplay indicator strip and its Character Information/Link/Vitae detail pages, and shared `gmPanelUI` geometry/switching over the Step 9 projectile/PhysicsScript/particle/portal foundation. The next gate is a local visual rebaseline of the new R6 object-frame path; the final M3 requirement is the two-client portal-out/materialization observer gate. Issue #225's lifestone/particle alpha comparison is a separate rendering visual gate.
|
||||
**Purpose:** One source of truth for where the project is and where it's going. Every observed defect or missing feature has a named phase that owns it; when something looks wrong in-game, look here to find the phase that'll address it. Implementation details live in per-phase specs under `docs/superpowers/specs/`, not in this file.
|
||||
|
||||
---
|
||||
|
|
@ -30,9 +30,13 @@ active enchantment, then recall through the DAT-driven portal presentation.
|
|||
Connected-gate
|
||||
correction now also pins type-12 spellbook tabs, retail zero text margins,
|
||||
and `PassToChildren` Closed/Open chrome through real-DAT fixtures.
|
||||
3. **Pending user visual gate:** connected projectile/self-buff casts plus the
|
||||
complete retained magic UI interaction checklist.
|
||||
4. **Pending user visual gate:** two-client portal-out/materialization observer
|
||||
3. **Done (connected user gates):** projectile/self-buff casts, protection
|
||||
effects, spellbook/component-book filtering and deletion, favorite spell
|
||||
bar interaction, recall, portal-space presentation, and retained indicator
|
||||
pages.
|
||||
4. **Pending local visual gate:** locomotion, collision, projectile, and
|
||||
teleport comparison after the R6 complete-root-Frame/object-workset cutover.
|
||||
5. **Pending two-client visual gate:** portal-out/materialization observer
|
||||
presentation before M3 closes, including #218's finished Hidden silhouette,
|
||||
fully rendered destination reveal, and no indoor stop-time position snap.
|
||||
|
||||
|
|
@ -43,10 +47,10 @@ the active slice only when they block this demo or represent a severe regression
|
|||
|
||||
## Historical program: Phase W — Unified Cell Graph (UCG)
|
||||
|
||||
**[SUPERSEDED — G.3 dungeon work shipped; M1.5 next step = #138 round-trip
|
||||
gate + #145-residual. See the shipped table + `docs/plans/2026-05-12-milestones.md`
|
||||
M1.5 section for current status. This section's W1/W2a history below is kept
|
||||
for record.]**
|
||||
**[SUPERSEDED — G.3 shipped and M1.5 landed after the #138 round-trip gate.
|
||||
Issue #153 is a separate far-teleport edge residual. See the shipped table +
|
||||
`docs/plans/2026-05-12-milestones.md` M1.5 section for current status. This
|
||||
section's W1/W2a history below is kept for record.]**
|
||||
|
||||
**Pivot (2026-06-02).** The render-pipeline reset stalled because the indoor "world from
|
||||
below" is a cell-**membership** disagreement between the render-side `CellVisibility` and
|
||||
|
|
@ -606,7 +610,7 @@ Research: R9 + R12 + R13.
|
|||
- **✓ SHIPPED — G.1 — Sky + weather + day-night.** Deterministic client-side from Portal Year time. Sky dome geometry + keyframe gradients + rain/snow particles. See `r12-weather-daynight.md`. Full data + visual stack shipped: Region dat loader, keyframe interp, WeatherSystem with 5-kind PDF + transitions + storm flashes, WorldSession→WorldTimeService sync via ConnectRequest+TimeSync, SkyRenderer with sky-object arcs + UV scroll, rain/snow billboard renderer, F7/F10 debug cycle keys.
|
||||
- **✓ SHIPPED — G.2 — Dynamic lighting.** 8-light D3D-style fixed pipeline. Hard-cutoff at Range, no attenuation inside. Cell ambient. Shader UBO per frame. See `r13-dynamic-lighting.md`. SceneLightingUbo std140 at binding=1 feeds terrain + mesh + mesh_instanced + sky shaders. LightingHookSink auto-registers Setup.Lights at entity stream-in, flips IsLit on SetLightHook, unregisters on landblock unload.
|
||||
- **Indoor portal-based cell tracking (follow-up to Indoor walking Phase 1 / issue #87).** Replace `PhysicsDataCache.TryFindContainingCell` AABB containment with retail's `CObjMaint::HandleObjectEnterCell` portal traversal. When the player crosses a cell portal boundary, `CellId` propagates through the `CEnvCell` portal connectivity graph. Prerequisite for wall collision from outside (#85) and the remaining #84 threshold symptom. PDB symbols and `acclient.h` `CCellStructure` refs are in place (see #87). **Unblocks G.3.**
|
||||
- **✓ SHIPPED — G.3 — Dungeon streaming + portal space.** `EnvCellStreamer`, portal-visibility BFS, `PlayerTeleport (0xF751)` handling with post-transition `LoginComplete`, and the retail DAT-authored portal-space CreatureMode viewport (Setup `0x02000306`, animation `0x030005AC`, exact camera/light/timing/view-plane transitions, forward-axis roll, direct portal→world viewport switch, projection warp, destination viewer reset, object/physics-before-network frame barrier, pre-network input movement/jump output, post-inbound AutonomousPosition, non-advancing spatial reconciliation, and retail `set_hidden` PartArray timeline teardown on both Hidden and UnHide; `/ls` and spell-recall corrective visual gates passed 2026-07-16, with non-blocking visual polish deferred). Dungeons render, stream, teleport-in, collide, light, and their doors work — see the shipped-table rows (G.3, G.3a, #137 collision, A7.L1 lighting) below and the M1.5 section of `docs/plans/2026-05-12-milestones.md` for current gate status (one recorded end-to-end dungeon round-trip user gate outstanding; live residual = far-town teleport-OUT arrival cascade, #145-residual REOPENED). See `r09-dungeon-portal-space.md` and `docs/research/2026-07-15-retail-portal-space-pseudocode.md`.
|
||||
- **✓ SHIPPED — G.3 — Dungeon streaming + portal space.** `EnvCellStreamer`, portal-visibility BFS, `PlayerTeleport (0xF751)` handling with post-transition `LoginComplete`, and the retail DAT-authored portal-space CreatureMode viewport (Setup `0x02000306`, animation `0x030005AC`, exact camera/light/timing/view-plane transitions, forward-axis roll, direct portal→world viewport switch, projection warp, destination viewer reset, object/physics-before-network frame barrier, pre-network input movement/jump output, post-inbound AutonomousPosition, non-advancing spatial reconciliation, and retail `set_hidden` PartArray timeline teardown on both Hidden and UnHide; `/ls` and spell-recall corrective visual gates passed 2026-07-16, with non-blocking visual polish deferred). Dungeons render, stream, teleport, collide, light, and their doors work; the final end-to-end dungeon round-trip gate passed 2026-07-10. See the shipped-table rows (G.3, G.3a, #137 collision, A7.L1 lighting) and the M1.5 section of `docs/plans/2026-05-12-milestones.md`. The far-town unstreamed-edge arrival residual is tracked separately as #153. See `r09-dungeon-portal-space.md` and `docs/research/2026-07-15-retail-portal-space-pseudocode.md`.
|
||||
|
||||
**Acceptance:** walk outside at dusk, see the sky gradient + sun moving; enter a torch-lit dungeon via portal; leave back to daylight.
|
||||
|
||||
|
|
@ -647,7 +651,7 @@ the way retail + holtburger expect.
|
|||
- Attacking a creature produces "You hit Drudge for 12 slashing damage (87%)" lines in chat.
|
||||
- Accented character names round-trip through the wire correctly (CP1252).
|
||||
|
||||
**Memory crib:** `memory/project_chat_pipeline.md`.
|
||||
**Memory crib:** `claude-memory/project_chat_pipeline.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -704,7 +708,7 @@ with retail's MMB-hold mouse-look.
|
|||
dormant — light up in Phase L when `CombatState.CurrentMode` is
|
||||
wired (issue #L.3).
|
||||
|
||||
**Memory crib:** `memory/project_input_pipeline.md`.
|
||||
**Memory crib:** `claude-memory/project_input_pipeline.md`.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -915,8 +919,9 @@ diagnostic scaffolding, not yet the final collision system.
|
|||
InterpolationManager into the owned
|
||||
PositionManager facade remains the final R6 ownership cleanup.
|
||||
Final 2026-07-20 gate: three independent retail/architecture/adversarial
|
||||
re-reviews are clean; Release build is warning-free; the repository suite is
|
||||
6,452 passed / 5 skipped. The unattended connected Release rebaseline also
|
||||
re-reviews are clean; Release builds successfully with 17 known test-project
|
||||
warnings tracked by #228; the repository suite is 6,452 passed / 5 skipped.
|
||||
The unattended connected Release rebaseline also
|
||||
passes: seven portal materializations across Caul, Sawato, Rynthid,
|
||||
Aerlinthe, Holtburg, and same-location revisits; production-dispatcher turn,
|
||||
forward, charged-jump, and combat inputs; outbound movement evidence;
|
||||
|
|
@ -1441,8 +1446,8 @@ OpenGL ceiling; revisit macOS only if a supported graphics backend is chosen.
|
|||
|
||||
## Cross-cutting work tracked in parallel
|
||||
|
||||
- **Test coverage.** Each phase lands with unit + integration tests in `tests/`. Current count: 98 Core + 96 Core.Net = 194. Keep the ratio as new phases land.
|
||||
- **Memory files.** Project state under `memory/project_phase_*_state.md` is updated when a phase ships. `MEMORY.md` is the index.
|
||||
- **Test coverage.** Each phase lands with layer-matched unit and integration tests in `tests/`. Current Release baseline: 6,452 passed / 5 intentional skips (2026-07-20).
|
||||
- **Memory files.** Live subsystem state and digests are indexed by `claude-memory/MEMORY.md`; stable engineering references remain under `memory/`. Canonical program status stays in milestones/roadmap/issues.
|
||||
- **`CLAUDE.md` discipline.** Check all four references (ACE, ACViewer, WorldBuilder, Chorizite) before committing to an approach. WorldBuilder is the closest stack match and should be checked first.
|
||||
|
||||
---
|
||||
|
|
@ -1470,8 +1475,8 @@ OpenGL ceiling; revisit macOS only if a supported graphics backend is chosen.
|
|||
| Character clothing missing / wrong | **5 FIXED** ✓ |
|
||||
| Statue wrong color / wrong scale | **5 FIXED** ✓ |
|
||||
| Holtburg sign half-buried | **5 FIXED** ✓ |
|
||||
| Can't walk past the loaded 3×3 window | **A.1 FIXED** ✓ (5×5 default, `ACDREAM_STREAM_RADIUS` to tune) |
|
||||
| Frame hitch crossing landblock boundary | **Phase A.3** (synchronous loader for now; async returns when DatCollection is thread-safe) |
|
||||
| Can't walk past the loaded 3×3 window | **A.1/A.5 FIXED** ✓ (two-tier streaming, near 4 / far 12 by default; legacy override remains) |
|
||||
| Frame hitch crossing landblock boundary | **A.3/A.5 async streaming SHIPPED**; residual content-load hitches are measured under Modern Pipeline MP1c |
|
||||
| Walking around doesn't move me on the server | **Phase B.2/B.3 FIXED** ✓ for coarse server movement; fine retail collision parity is **Phase L.2** |
|
||||
| Packet loss / out-of-order UDP causes stale or missing world updates | **Phase M.3** |
|
||||
| Server asks for retransmit and client doesn't resend cached packets | **Phase M.3** |
|
||||
|
|
@ -1482,22 +1487,22 @@ OpenGL ceiling; revisit macOS only if a supported graphics backend is chosen.
|
|||
| Sliding along buildings / walls feels wrong | **Phase L.2c + L.2d** |
|
||||
| Roof edge / cliff / precipice blocks or slides wrong | **Phase L.2c** |
|
||||
| Crossing outdoor cell seams reports the wrong cell | **Phase L.2e** |
|
||||
| Can't talk to NPCs | **Phase H.3** (emote scripts + dialogs) |
|
||||
| Can't open a door | **Phase F** (object-use action) |
|
||||
| Portals render as a rotating black disk | **Phase E.3** (particle system) |
|
||||
| Chimneys have no smoke | **Phase E.3** |
|
||||
| Houses have no fireplace fire | **Phase E.3** |
|
||||
| Can't talk to NPCs | Basic select/use/give interaction works; full emote conversation/dialog systems remain **Phase H.3** |
|
||||
| Can't open a door | **FIXED** ✓ — object-use, animation, fading hooks, and collision transitions shipped |
|
||||
| Portals render as a rotating black disk | **FIXED** ✓ — DAT particles/effects and portal-space presentation shipped |
|
||||
| Chimneys have no smoke | **Phase E.3 SHIPPED** ✓ |
|
||||
| Houses have no fireplace fire | **Phase E.3/G.2 SHIPPED** ✓ |
|
||||
| No fireplace / torch lighting | **Phase G.2** (shipped; Setup.Lights auto-register, 8-light cap with hard-cutoff) |
|
||||
| Skin/hair color slightly off | **Phase C.3** |
|
||||
| No chat window | **Phase H.1 / I.1-I.7 FIXED** ✓ |
|
||||
| Chat? You can finally type and send messages | **I.4 FIXED** ✓ (shipped 2026-04-25) |
|
||||
| Combat doesn't show in the chat log | **I.7 FIXED** ✓ |
|
||||
| Accented character names show as `?` or garbled | **I.5 FIXED** ✓ (Windows-1252 codec) |
|
||||
| No sound | **Phase E.2** |
|
||||
| Dungeons / foundry interior missing | **Phase G.3 — SHIPPED** (render/stream/teleport-in/collide/light/doors all closed; M1.5 next step = #138 round-trip gate + #145-residual) |
|
||||
| Can't fight monsters | **Phase F.3** (combat math + damage) |
|
||||
| Can't cast spells | **Phase F.4** |
|
||||
| No inventory panel | **Phase F.2 + F.5** |
|
||||
| No sound | **Phase E.2 SHIPPED** ✓ (remaining unsupported codecs are TS-9) |
|
||||
| Dungeons / foundry interior missing | **Phase G.3 — SHIPPED + M1.5 gate passed 2026-07-10** (render/stream/teleport/collision/light/doors closed; separate far-teleport edge residual = #153) |
|
||||
| Can't fight monsters | **M2 LANDED 2026-07-15** ✓ — melee/missile, death, loot, inventory loop user-gated |
|
||||
| Can't cast spells | **M3 connected single-client casting/effects gate passed** ✓; final two-client portal observer gate remains |
|
||||
| No inventory panel | **D.5 / M2 SHIPPED + user-gated** ✓ — bags, stacks, paperdoll, equipment, drag/drop, loot |
|
||||
| No character creation — must use ACE admin | **Phase H.4** |
|
||||
| Sky is a flat color | **Phase G.1** (shipped; F7 cycles time, F10 cycles weather) |
|
||||
| Can't join allegiance | **Phase H.2** |
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue