Design: multi-level world model for tunnels & mining (epic, design-first) #268

Open
opened 2026-08-03 13:24:34 +02:00 by panda · 0 comments
Collaborator

Agreed design (design-first)

Full design doc: docs/superpowers/specs/2026-08-03-multi-level-world-model-design.md.

Locked decisions:

  • Representation = ModernUO surfaces, arbitrary stacking — a cell's walkable surfaces = the land (GroundZAt) + surface statics (statics flagged walkable-on-top, each with its Z + a height for head-clearance). Cave floor = a surface static low with the mountain land staying high (the roof); bridge = a surface static above; multi-storey = stacked. The chunked format already stores stacked statics with Z ⇒ no new map format.
  • Rendering = level-focus, seamless (UO-classic) — you see the surface you stand on; geometry above your level that would occlude you is culled. Continuous world, same coordinates.

Per-layer changes: StaticDef gains surface/height columns · position gains Z (⇒ protocol bump, entity-Z persistence) · a pure SurfaceResolver picks the reachable surface (step-height + head-clearance), server-authoritative · client culls the roof above the player's level · AoI stays 2D for the MVP · editor gains a floor/tunnel brush.

Phases (each = its own spec/plan/PR/DoD)

  • P1 — Foundation: surfaces + walkability (Shared/server): defs, entity Z, SurfaceResolver, movement, protocol bump, persistence. Unit-tested, not visible yet.
  • P2 — Rendering: level-focus draw (client): surface floors + roof cull + entity-on-surface Z. Caves become visible.
  • P3 — Authoring: cave/tunnel brush (editor).
  • (later, separate design) Mining gameplay — dig/ore/resources.

MVP = walk into a cave and see it (P1 + minimal P2 + a test cave). Order: P1 → P3-min → P2.

Definition of Done (this design issue)

  • Agreed design doc with the chosen model, a critical ModernUO comparison, per-layer changes, and the epic decomposed into phases each with its own DoD.
  • Passes the critical-design-review Invariants Check (in the doc): server-authoritative surface selection, protocol/persistence version bumps flagged, multi-platform, ModernUO reference.
  • No implementation until the P1 sub-design/plan is agreed.
## Agreed design (design-first) Full design doc: `docs/superpowers/specs/2026-08-03-multi-level-world-model-design.md`. **Locked decisions:** - **Representation = ModernUO surfaces, arbitrary stacking** — a cell's walkable surfaces = the land (`GroundZAt`) + **surface statics** (statics flagged walkable-on-top, each with its Z + a **height** for head-clearance). Cave floor = a surface static low with the mountain land staying high (the roof); bridge = a surface static above; multi-storey = stacked. The chunked format already stores stacked statics with Z ⇒ **no new map format**. - **Rendering = level-focus, seamless** (UO-classic) — you see the surface you stand on; geometry above your level that would occlude you is culled. Continuous world, same coordinates. **Per-layer changes:** `StaticDef` gains `surface`/`height` columns · position gains **Z** (⇒ protocol bump, entity-Z persistence) · a pure `SurfaceResolver` picks the reachable surface (step-height + head-clearance), server-authoritative · client culls the roof above the player's level · AoI stays 2D for the MVP · editor gains a floor/tunnel brush. ## Phases (each = its own spec/plan/PR/DoD) - **P1 — Foundation: surfaces + walkability** (Shared/server): defs, entity Z, `SurfaceResolver`, movement, protocol bump, persistence. Unit-tested, not visible yet. - **P2 — Rendering: level-focus draw** (client): surface floors + roof cull + entity-on-surface Z. Caves become visible. - **P3 — Authoring: cave/tunnel brush** (editor). - **(later, separate design) Mining gameplay** — dig/ore/resources. **MVP** = walk into a cave and see it (P1 + minimal P2 + a test cave). Order: P1 → P3-min → P2. ## Definition of Done (this design issue) - [x] Agreed design doc with the chosen model, a critical ModernUO comparison, per-layer changes, and the epic decomposed into phases each with its own DoD. - [x] Passes the critical-design-review Invariants Check (in the doc): server-authoritative surface selection, protocol/persistence version bumps flagged, multi-platform, ModernUO reference. - [ ] No implementation until the P1 sub-design/plan is agreed.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
marco/IsoMmo#268
No description provided.