Merge branch 'claude/quirky-jepsen-fd60f1' — N.4-N.10 strategy revision
This commit is contained in:
commit
0fb93171e4
1 changed files with 45 additions and 29 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
# acdream — strategic roadmap
|
# acdream — strategic roadmap
|
||||||
|
|
||||||
**Status:** Living document. Updated 2026-05-08 for Phase N.3 (texture decode via WB TextureHelpers) shipping.
|
**Status:** Living document. Updated 2026-05-08 for Phase N.3 shipping + N.4-N.9 strategy revision (rendering rebuild on shared WB infrastructure rather than independent substitutions).
|
||||||
**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.
|
**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.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
@ -604,41 +604,57 @@ for our deletions/additions; merge upstream `master` periodically.
|
||||||
byte-identical equivalence per format** before substitution; updated
|
byte-identical equivalence per format** before substitution; updated
|
||||||
`SurfaceDecoderTests` to match the new A8 split semantics. Visual
|
`SurfaceDecoderTests` to match the new A8 split semantics. Visual
|
||||||
verification at Holtburg passed 2026-05-08 — no texture regressions.
|
verification at Holtburg passed 2026-05-08 — no texture regressions.
|
||||||
- **N.4 — Object meshing.** Replace `SetupMesh.cs` + `GfxObjMesh.cs`
|
- **N.4 — Rendering pipeline foundation.** **Rebranded from "object
|
||||||
with calls to WB's `ObjectMeshManager`. Character-appearance
|
meshing" 2026-05-08 after brainstorm.** WB's `ObjectMeshManager` is
|
||||||
behaviors (CreaturePalette / GfxObjRemapping / HiddenParts) remain
|
not a static helper — it's a 2070-line stateful asset pipeline that
|
||||||
ours — ACME is the secondary oracle. **Realistic estimate: 1.5-2
|
owns GPU resources (VAO/VBO/IBO), an LRU cache + memory budget,
|
||||||
weeks** (was 1) — character appearance edge cases like N.1's
|
background staging, a shared texture atlas, and a bindless rendering
|
||||||
rotation bug will surface.
|
path. Adopting it wholesale is the foundation that N.5 + N.6 + N.7
|
||||||
- **N.5 — Terrain rendering.** Replace `TerrainChunkRenderer` +
|
build on. Concretely: (1) integrate `ObjectMeshManager` +
|
||||||
`TerrainAtlas` + `TerrainBlending` with WB's `TerrainRenderManager` +
|
`TextureAtlasManager` as the shared infrastructure; (2) build a
|
||||||
`LandSurfaceManager` + `TerrainGeometryGenerator`. **Realistic
|
per-instance customization layer that threads `CreaturePalette` /
|
||||||
estimate: 3-4 weeks** (was 2) — largest single phase, GPU-buffer
|
`GfxObjRemapping` / `HiddenParts` / `TextureChanges` / `SubPalettes` /
|
||||||
ownership shifts, integration with our streaming loader is
|
`AnimPartChange` through WB's atlas keys; (3) extend WB's
|
||||||
non-trivial.
|
`MeshBatchData` to carry our surface metadata (`Translucency` /
|
||||||
- **N.6 — Static objects rendering.** Replace `StaticMeshRenderer` +
|
`Luminosity` / `Diffuse` / `SurfOpacity` / `NeedsUvRepeat` /
|
||||||
`InstancedMeshRenderer` with WB's `StaticObjectRenderManager`.
|
`DisableFog`) — likely a fork patch on the `acdream` branch; (4)
|
||||||
**Realistic estimate: 2-3 weeks** (was 2) — interacts with N.4
|
decide animation cache strategy (per-frame transform via uniform/SSBO
|
||||||
output.
|
vs. cache invalidation); (5) adapter from our streaming loader's
|
||||||
|
Setup/Static spawn events to WB's `IncrementRefCount` lifecycle.
|
||||||
|
**Estimate: 3-4 weeks.** No visible change yet — visual verification =
|
||||||
|
"world looks identical to before." Foundation enables the next phases.
|
||||||
|
- **N.5 — Terrain rendering.** Wire WB's `TerrainRenderManager` +
|
||||||
|
`LandSurfaceManager` + `TerrainGeometryGenerator` onto the foundation
|
||||||
|
N.4 builds. Closes N.2's deferred terrain math substitution: visual
|
||||||
|
mesh and physics both switch to WB's `CalculateSplitDirection` +
|
||||||
|
`GetHeight` + `GetNormal` in lockstep, resolving ISSUE #51. **Estimate:
|
||||||
|
2-3 weeks** (was 3-4 — atlas + GPU pipeline already in place from N.4).
|
||||||
|
- **N.6 — Static objects rendering.** Wire WB's
|
||||||
|
`StaticObjectRenderManager` onto N.4's foundation; replace our
|
||||||
|
`StaticMeshRenderer` + `InstancedMeshRenderer`. Mostly draw
|
||||||
|
orchestration at this point — most of the substance landed in N.4.
|
||||||
|
**Estimate: 1-2 weeks** (was 2-3).
|
||||||
- **N.7 — EnvCells / dungeons.** Replace EnvCell rendering with WB's
|
- **N.7 — EnvCells / dungeons.** Replace EnvCell rendering with WB's
|
||||||
`EnvCellRenderManager` + `PortalRenderManager`. **Realistic
|
`EnvCellRenderManager` + `PortalRenderManager` on top of N.4's
|
||||||
estimate: 2-3 weeks** (was 2).
|
foundation. **Estimate: 1-2 weeks** (was 2-3 — naturally smaller now
|
||||||
|
that infrastructure is shared).
|
||||||
- **N.8 — Sky + particles.** Replace sky rendering + particle pipeline
|
- **N.8 — Sky + particles.** Replace sky rendering + particle pipeline
|
||||||
(#36 / C.1 work) with WB's `SkyboxRenderManager` +
|
(#36 / C.1 work) with WB's `SkyboxRenderManager` +
|
||||||
`ParticleEmitterRenderer`. **Realistic estimate: 1.5-2 weeks**
|
`ParticleEmitterRenderer`. **Estimate: ~1 week** (was 1.5-2 — C.1
|
||||||
(was 1) — visual continuity matters; we just shipped C.1 and that
|
already shipped most of this; N.8 is glue + sampler-object reuse).
|
||||||
work flows through here.
|
|
||||||
- **N.9 — Visibility / culling.** Replace `CellVisibility` +
|
- **N.9 — Visibility / culling.** Replace `CellVisibility` +
|
||||||
`FrustumCuller` with WB's `VisibilityManager`. **Realistic
|
`FrustumCuller` with WB's `VisibilityManager`. **Estimate: ~1 week**
|
||||||
estimate: 1 week** (was 3-5 days) — affects perf and what gets
|
(was 3-5 days, slight bump for streaming-loader interaction).
|
||||||
drawn.
|
|
||||||
- **N.10 — GL infrastructure consolidation (optional).** Replace our
|
- **N.10 — GL infrastructure consolidation (optional).** Replace our
|
||||||
`Shader` / `TextureCache` / `SamplerCache` plumbing with WB's
|
`Shader` / `TextureCache` / `SamplerCache` plumbing with WB's
|
||||||
`ManagedGL*` wrappers + `OpenGLGraphicsDevice`. ~1 week.
|
`ManagedGL*` wrappers + `OpenGLGraphicsDevice`. **Largely subsumed by
|
||||||
|
N.4** — `OpenGLGraphicsDevice` arrives as the host of `ObjectMeshManager`
|
||||||
|
and atlas. May not need a dedicated phase; revisit after N.6.
|
||||||
|
|
||||||
**Estimated calendar:** **3-4 months / 10-12 engineering weeks for
|
**Estimated calendar:** **2.5-3 months / 9-13 engineering weeks for
|
||||||
N.2-N.9 (skipping N.10).** (Was 2-3 months / 6-8 weeks — revised
|
N.4-N.9 (N.10 likely subsumed; N.2 folded into N.5; N.3 shipped).**
|
||||||
upward after N.1 landed; realistic per-phase numbers above.)
|
Revised 2026-05-08 after recognizing N.4-N.6 are one rendering rebuild
|
||||||
|
on shared infrastructure rather than three independent substitutions.
|
||||||
|
|
||||||
**Each sub-phase:**
|
**Each sub-phase:**
|
||||||
- Ships behind `ACDREAM_USE_WB_<NAME>=1` flag.
|
- Ships behind `ACDREAM_USE_WB_<NAME>=1` flag.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue