Files
Project-M/Docs/Vault/06_Roadmap/Backlog.md
T
kronic a7405c3f38 Docs: reconcile vault roadmap + indexes to current state
Bring the living docs up to 2026-06-08 reality (Milestones/Backlog/Home/Systems_Index were stalled at 2026-06-06): add the 6 missing Milestones rows (animation, enemy animation, HUD Synty skin, world redo, world collision, Inventory+Equipment Phase 0/1); declutter Backlog to open-work-only (remove shipped [x] items whose context lives in their DRs/session logs, resolve items completed by later slices, surface Inventory/Equipment Phase 2-4 as next); refresh Home links (DR range -> DR-027, latest sessions); add a Systems_Index Items/Inventory/Equipment section + fix the stale 'StructureType 2-4 reserved for M7' note + a pointer to systems documented only in their DRs.

Reconcile DR-026's roadmap (mark Phase 0/1 done; the Phase-1 line now carries the DR-027 event-driven supersession note). Trim Data_Driven_Abilities resolved open-questions + fix cross-links. DRs + session logs (the historical record) untouched apart from that one DR-026 note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 11:33:46 -07:00

68 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
tags:
- roadmap
- backlog
updated: 2026-06-08
permalink: gamevault/06-roadmap/backlog
---
# Backlog
Open / candidate work only. **Done items live in [[Milestones]] + their DR / session log** (this file is intentionally
kept to the forward-looking pool — promote an item to [[Milestones|a milestone]] when committed, then drop it here).
Last decluttered 2026-06-08 (removed all shipped `[x]` items; their context is preserved in the linked records).
## NEXT — Inventory · Equipment · Progression (roadmap [[DR-026_Inventory_Equipment_Progression_Foundation]] / [[DR-027_Equipment_Slots_Phase1]])
Phases 0 (inventory backbone) + 1 (equipment slots) shipped 2026-06-08. Remaining phases, in order:
- [ ] **Phase 2 — tool-gated harvesting** (NEXT): bake `RequiredToolType`/`RequiredToolTier` on `ResourceNode`/`BlightClutter`; `ResourceHarvestSystem` gates + scales yield by the owner's equipped Tool-slot tier (the Tool slot is already reserved + baked). The gear-tier progression loop. "Need a [tool]" HUD cue.
- [ ] **Phase 3 — crafting + per-player persistence**: extend the Fabricator to craft *items* into a player's inventory; equip-tier gates; additive `SaveData` v3 that restores inventory + equipment AND **replays equip** on load (effects are event-driven, so a buffer restore alone wouldn't re-add the StatModifiers).
- [ ] **Phase 4 — (optional) multi-slot spell loadout**: expand the single `AbilityRef` into primary + 23 hotkey ability slots (subsumes the old "multi-ability slots" item). Per-slot cooldowns/inputs.
- [ ] **Items/abilities UI pipeline** (was the deferred M3 item): icons + descriptions via a managed lookup keyed by `ItemId`/`AbilityId`, off the blob (the HUD inventory/equipment panels show names only today).
- [ ] **Multi-prefab ability variants***partly addressed by Phase 1* ([[DR-027_Equipment_Slots_Phase1]]): different weapons already swap the projectile prefab via `AbilityRef.Id` + the catalog. Only multiple cosmetic prefab variants *per single ability* remain (needs `ProjectileClassificationSystem` generalized beyond one shared prefab).
## Combat / enemies
- [ ] **Live interactive fire test** (focused Play: press fire → predicted projectile + dummy/Husk HP drop) — the server loop + replication are validated; the input→`AbilityFireSystem`→predict-spawn→classify path is only validated structurally.
- [ ] **Ranged Husk (Spitter)** — a server-spawned enemy-projectile subsystem for dodge depth (melee-only today).
- [ ] **Boss / per-wave composition weighting** (brutes later, swarms early) instead of flat round-robin; a "broodmaker" that spawns.
- [ ] **Server perf under wave load** — validate in a real standalone build (in-editor multi-world cost ruled out Burst; single-process ServerWorld+ClientWorld+physics+waves is the likely factor).
- [ ] **Projectile/pickup visuals** — primitive meshes/materials today; optional predicted client-side auto-target if the soft server reconcile feels off.
## Automation (M7 follow-ups)
- [ ] **Throughput visuals** (item-on-belt) — server-only machine buffers don't reach clients (they see only `PlacedStructure.Type`); add one small replicated byte if live belt visuals are wanted.
- [ ] **Relevancy ceiling**`RegionRelevancySystem`'s O(structures×connections)/tick scan becomes load-bearing at high conveyor counts; batch it when counts grow.
- [ ] **Recipe depth** — multi-input fabricator recipes; fabricator→conveyor output chaining (give the fabricator a `MachineOutput`); per-machine distinct meshes (they reuse the Turret mesh as a placeholder).
## Frontend / infrastructure
- [ ] **Operator-run validation** — launch the Windows build → menu → Single/Host/Join; a real **2-build LAN Host↔Join**; MPPM co-op regression in default-editor mode.
- [ ] **Controls settings + key rebinding** (Input System rebinding UI) — out of the Graphics/Audio settings scope so far.
- [ ] **Full base-state saves** (placed structures done in M7; add threat/storage) — `SaveData` is versioned so this is additive.
- [ ] **Unity Relay** for remote (non-LAN) Host/Join — swap the endpoint source feeding `ConnectionConfig` (the frontend lifecycle is transport-agnostic).
- [ ] **Dedicated-server build** — the `RequestedPlayType==Server` auto-host branch is in but UNTESTED.
- [ ] **Volume-slider theming** — sliders render via the default runtime theme; swap to +/- cycle rows if a build shows them unstyled.
## Physics / character controller (M5b)
- [ ] **Multi-client CC interpolation validation** — live two-build/thin-client run to confirm remote-peer smoothness (predicted-only `CharacterInterpolation` variant is in; only single-client validated). Pairs with the M4 real-LAN two-build test.
- [ ] **Player-vs-player collision** — currently non-physical (`SimulateDynamicBody=false`); enable + handle masses if mutual push is wanted.
- [ ] **Gravity / verticality** — CC character is gravity-free + planar (no floor collider); add gravity + a ground collider + reconsider `SnapToGround` if terrain is introduced.
- [ ] **CC package version** — 1.4.2 declares `entities/physics@1.3.x` (resolves via SemVer floor); move to a CC build targeting Entities 6.x when published.
- [ ] **Physics-based hit detection** (lag compensation `NetCodePhysicsConfig` + `PhysicsWorldHistorySingleton`; projectiles as physics bodies; hard rotation lock via `PhysicsMass.InverseInertia=0`) — only if the swept-segment server check is replaced.
## World / visuals
- [ ] **Base-side cohesion accents** — cyan ordered-Aether lights + perimeter relief + tiled base ground (the Blightfield/biomes got the dressing budget; see [[DR-025_World_Environment_Redo_Natural_Frontier]]).
- [ ] **Clearing as a spatial mechanic** — cleared cells are juice + scrap only today; make them buildable / reveal hidden nodes (the "functional gating" fork).
- [ ] **Per-`Variant` clutter meshes**`BlightClutter.Variant` is replicated + round-robined but the prefab is single-mesh (additive, no schema change).
- [ ] **Ghost-prop Synty reskin** — Storage / UpgradePickup ghosts still use placeholder meshes.
- [ ] **Decor LOD → cosmetic-only** — cosmetic prop LODs are world GameObjects; keep them off the server tick budget.
- [ ] **VFX-Graph hit/beam packs** + **BioHorror corrupted-zone accent set** (deferred art); **material fidelity** (ORM repack / small ShaderGraph + baked reflection probe).
## Cleanup (low value, deliberately deferred)
- [ ] **Optional code-tidy** (no behaviour change): `SettingsService` migrate-then-clamp ordering; `ConveyorTransportSystem`'s 6 parallel snapshot arrays → one struct array; `WorldFeedbackSystem.TintForResource` if-chain → lookup; `PlayerInputGatherSystem` device-active dedup. [[2026-06-06_Cleanup_Alignment]].