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

6.7 KiB
Raw Blame History

tags, updated, permalink
tags updated permalink
roadmap
backlog
2026-06-08 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 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 variantspartly 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 ceilingRegionRelevancySystem'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 meshesBlightClutter.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.