This commit is contained in:
2026-06-03 18:35:05 -07:00
parent 9091388bc2
commit 79ff06a7df
55 changed files with 107 additions and 3563 deletions
+21 -6
View File
@@ -2,7 +2,7 @@
tags:
- roadmap
- backlog
updated: 2026-06-01
updated: 2026-06-03
permalink: gamevault/06-roadmap/backlog
---
@@ -18,16 +18,16 @@ Unordered pool of candidate work. Promote to a [[Milestones|milestone]] when com
- [x] Decide **relay provider** before M4 — resolved: **Direct IP/LAN now, Unity Relay later** ([[DR-005_M4_Connection_Model_Direct_IP]], [[2026-06-01_M4_LAN_CoOp_And_Classification_Fix]]).
- [x] Decide home-base **grid 2D vs 3D** before M6 — resolved 2026-06-02: **planar single-level `int2` grid**, CellSize 1.0, 32×32 plot (full 3D/stacked deferred). Locked in `BaseGridMath` — [[DR-008_M5_HomeBase_BaseLayer_Storage]].
- [ ] Decide **production replication** (predicted vs server-only) before M7 (automation).
- [ ] **M2 follow-up — restart the editor to clear the corrupted Burst cache**, then confirm the console is clean on a warm play (no "not a known Burst entry point"). See [[2026-05-31_M2_Combat]] / [[DR-003_M2_Combat_Netcode_Architecture]].
- [x] **M2 follow-up — Burst cache health** — confirmed clean 2026-06-03: warm focused play shows **no** "not a known Burst entry point" managed-fallback messages + fast (~3s) play-enter. The M2-era corruption is gone. [[2026-06-03_Pre_M6_Cleanup]] (orig [[2026-05-31_M2_Combat]] / [[DR-003_M2_Combat_Netcode_Architecture]]).
- [ ] **M2 follow-up — live interactive fire test** (focused Play Mode: press Space / LMB / RT → predicted projectile + dummy HP drop). The server combat loop + replication are validated; the input→`AbilityFireSystem`→predicted-spawn→classification path is only validated structurally.
- [ ] **M2 follow-up — mouse-cursor aim for KBM** (needs a camera ground-ray rig); currently aim = gamepad right-stick + movement-heading fallback.
- [x] **M2 follow-up — mouse-cursor aim for KBM** — done 2026-06-03: client-side camera ground-ray cursor aim rides the existing `PlayerInput.Aim` `[GhostField]` (no new netcode surface); device auto-switch (KBM/gamepad) replicated as a `byte`; strafe-while-aiming free. [[DR-012_Aim_Controls_Cursor_Gamepad]], [[2026-06-03_Aim_Controls_Cursor_Gamepad]].
- [x] **M2 follow-up — player death/respawn** — done in **M5.5**: derived `Dead` enableable gate (from replicated Health) + server `PlayerRespawnSystem` (full HP + reposition to base after a delay). [[DR-009_GameFeel_Identity_FirstBlood]]
- [ ] M2 polish — projectile/dummy visuals (primitive meshes/materials currently); optional predicted client-side auto-target if the soft server reconcile feels off.
- [ ] **M3 follow-up — UI/icon/description pipeline** for abilities (managed lookup keyed by `AbilityId`, off the blob). Deferred from M3 ([[2026-05-31_M3_Data_Driven_Abilities]]).
- [ ] **M3 follow-up — timed / removable modifiers** (expiry on `NetworkTick`, `ClearByType` via `StatModifier.SourceId`). M3 modifiers are permanent-once-granted.
- [ ] **M3 follow-up — multi-prefab abilities** (a per-ability *different* projectile ghost) needs `ProjectileClassificationSystem` generalized beyond the single shared prefab.
- [ ] **M3 follow-up — standalone-server debug modifier path** via `IRpcCommand` (current `DebugModifierInjectionSystem` is in-editor single-process only).
- [ ] **M3 follow-up — rate-limited turning** (`PlayerAimSystem` still snaps rotation; `EffectiveCharacterStats.TurnRate` is wired but unused).
- [x] **M3 follow-up — rate-limited turning** — done 2026-06-03 (pre-M6 cleanup): `PlayerAimSystem` now rotates `PlayerFacing` toward the aim target at `EffectiveCharacterStats.TurnRateRadiansPerSec` (authored 720°/s) instead of snapping; deterministic in the predicted loop (fixed-step `dt`, replays on rollback). [[2026-06-03_Pre_M6_Cleanup]].
- [ ] **M3 polish — pickup visuals** (primitive sphere/default material currently); pickup auto-grant feel (continuous overlap).
- [ ] **M5 follow-up — base/expedition subscene split + streaming (Option C)**: the persistent-space split the locked world design ultimately needs (`SceneSystem.LoadSceneAsync`/`UnloadScene`, per-world load on the listen-server, enter-expedition/return-to-base transition). Deferred to its own world-architecture milestone — M6/M7 only need the anchor + grid, now done ([[DR-008_M5_HomeBase_BaseLayer_Storage]]). The physics-in-prediction + base-layer slices of M5 are done ([[DR-006_M5_Physics_In_Prediction]], [[DR-008_M5_HomeBase_BaseLayer_Storage]]).
- [ ] **M5 follow-up — shared-storage disk persistence** (host-only): runtime structures don't exist until M6, so nothing to save yet; add a thin per-record serialization slice (replayed through M6's placement path) after M6. `BaseAnchor`/`StorageEntry` are already flat/serialization-friendly.
@@ -51,7 +51,22 @@ Unordered pool of candidate work. Promote to a [[Milestones|milestone]] when com
- [ ] **Deepening follow-up — ranged Husk (Spitter)**: a server-spawned enemy-projectile subsystem for dodge depth (the next variety type; melee-only today).
- [ ] **Deepening follow-up — wave number on HUD**: needs a replicated game-state ghost (`WaveState` is server-only); the live "HUSKS N" count conveys threat for now.
- [ ] **Deepening follow-up — boss / per-wave composition weighting** (brutes later, swarms early) instead of flat round-robin; a "broodmaker" that spawns.
- [ ] **Deepening follow-up — server perf under wave load**: investigate the in-editor tick-batching (Burst cache health, multi-world cost); validate in a real build.
- [ ] **Deepening follow-up — server perf under wave load**: in-editor tick-batching (~1.251.75 ticks/frame) **investigated 2026-06-03** — Burst ruled out (confirmed healthy), so single-process multi-world cost (ServerWorld + ClientWorld + physics + Husk waves in one editor) is the likely factor; **validate in a real standalone build** remains open. [[2026-06-03_Pre_M6_Cleanup]].
- [ ] **M5.5 follow-up — real assets**: authored audio (replace procedural SFX), stylized hard-surface crew/structures + corrupted-biomech Husks (replace primitives), TextMeshPro HUD; add the URP **SSAO** renderer feature for more depth.
- [ ] **M5.5 follow-up — multi-client juice/HUD**: validate remote-player death VFX (interpolation-timeline `Health==0`) + per-client HUD under two clients (pairs with the deferred M4/M5b two-build tests).
- [ ] **M5.5 follow-up — difficulty balance**: Husks tuned for a real moving/shooting player (dmg 5, strike 48 ticks, speed 3, `MaxAlive` 6); revisit once movement/fire feel is tuned and enemy variety lands.
- [ ] **M5.5 follow-up — difficulty balance**: Husks tuned for a real moving/shooting player (dmg 5, strike 48 ticks, speed 3, `MaxAlive` 6); revisit once movement/fire feel is tuned and enemy variety lands.
## 2026-06-03 Visual & Controls Polish follow-ups
Surfaced by the art/Synty/aim sessions ([[DR-010_Art_Import_URP_Conversion_Visual_Upgrade]], [[DR-011_Synty_World_VFX_Integration]], [[DR-012_Aim_Controls_Cursor_Gamepad]]).
- [x] **Cleanup — prune orphaned `Materials/Env/` materials** — done 2026-06-03 (pre-M6 cleanup): GUID-swept the retired BefourStudios decorative materials; zero-reference ones deleted, still-referenced kept. [[2026-06-03_Pre_M6_Cleanup]].
- [x] **Cleanup — remove Unity-template cruft** — done 2026-06-03 (pre-M6 cleanup): `com.unity.visualscripting` package, `Assets/TutorialInfo/`, `Assets/Readme.asset`. [[2026-06-03_Pre_M6_Cleanup]].
- [ ] **DR-010/011 follow-up — decor LOD → client-only/cosmetic subscene**: cosmetic prop LOD hierarchies currently bake into both worlds; move pure cosmetics off the server for tick budget.
- [ ] **DR-011 follow-up — character models / DOTS skeletal animation**: player + Husks remain primitives; swap for real rigged models when the character pack lands.
- [ ] **DR-011 follow-up — VFX-Graph hit/beam packs**: the GabrielAguiar VFX-Graph subset needs separate URP setup if wanted (Shuriken packs already wired).
- [ ] **DR-011 follow-up — ghost-prop Synty reskin**: Storage/UpgradePickup ghosts still use BefourStudios meshes; reskin to Synty-style or simple emissive.
- [ ] **DR-011 follow-up — mixed-theme danger zones**: BioHorror/Synty corrupted-zone art for high-threat areas (deferred from the scope gate).
- [ ] **DR-012 follow-up — auto-target tuning**: priority/feel refinement; optional controller soft-target reticle snap (V Rising/Diablo-style).
- [ ] **DR-012 follow-up — rebindable controls + multi-ability slots**.
- [ ] **Pre-M6 cleanup follow-up — higher material fidelity**: ORM channels don't map uniformly to URP; a per-channel repack or small ORM ShaderGraph + baked reflection probe would deepen the look.