Files
Project-M/Docs/Vault/06_Roadmap/Backlog.md
T
2026-06-02 08:56:26 -07:00

5.2 KiB

tags, updated, permalink
tags updated permalink
roadmap
backlog
2026-06-01 gamevault/06-roadmap/backlog

Backlog

Unordered pool of candidate work. Promote to a Milestones when committed.

  • Upgrade Unity 6.4 → 6.6 — done (now 6000.6.0a6). Entities/Collections/Graphics → 6.5.0; Netcode → 6.6.0 and Physics → 6.5.0 also renumbered into the editor line (not independent 1.x as DR-001_Netcode_Test_Harness assumed). See 2026-05-30_M1_Player_Slice.
  • Define the core gameplay loop and the first predicted player ghost — delivered as M1 (2026-05-30_M1_Player_Slice).
  • Re-validate the M1 play-tick on a stable Unity 6.x — live runtime blocked on the 6.6 alpha (DR-002_Unity66_Alpha_Netcode_Transport); optionally reproduce with the networked-cube sample to file a bug.
  • Replace template SampleScene with a dedicated bootstrap scene + gameplay subscene.
  • Optional template cleanup: remove com.unity.visualscripting, Assets/TutorialInfo/, Assets/Readme.asset (delete each asset with its .meta).
  • 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).
  • Decide home-base grid 2D vs 3D before M6 (build/placement).
  • 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.
  • 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.
  • M2 follow-up — player death/respawn (M2 only clamps player HP ≥ 0; dummies despawn on death).
  • 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).
  • M3 polish — pickup visuals (primitive sphere/default material currently); pickup auto-grant feel (continuous overlap).
  • M5 — base subscene streaming (the other half of M5): persistent home-base subscene that streams in/out around players. Physics-in-prediction slice is done (DR-006_M5_Physics_In_Prediction).
  • M5 follow-up — same-tick movement — moot after M5b (the CC character runs in the predicted fixed-step group; M5's PlayerMoveSystem is deleted). See DR-007_M5b_Character_Controller_Package.
  • M5b follow-up — multi-client CC interpolation validation: live two-build / thin-client run to confirm remote-peer interpolation smoothness (predicted-only CharacterInterpolation variant is in; only single-client validated). Pairs with the deferred M4 real-LAN two-build test.
  • M5b follow-up — player-vs-player collision: currently non-physical (SimulateDynamicBody=false); enable + handle masses if mutual push is wanted.
  • M5b follow-up — KinematicCharacterBody velocity ghost variant (replicate RelativeVelocity/IsGrounded) if owner-prediction reconciliation looks jittery under latency.
  • M5b follow-up — gravity/verticality: CC character is gravity-free + planar (no floor collider). Add gravity in the processor + a ground collider + reconsider SnapToGround if terrain/verticality is introduced.
  • M5b follow-up — CC package version: 1.4.2 declares entities/physics@1.3.x (resolves via SemVer floor on our 6.4.0/1.4.6). Move to a CC build explicitly targeting Entities 6.x when published.
  • M5 follow-up — physics lag compensation (NetCodePhysicsConfig.EnableLagCompensation + PhysicsWorldHistorySingleton) if/when physics-based hit detection replaces the swept-segment server check.
  • M5 follow-up — projectiles as physics bodies (currently kinematic + swept hit); convert for projectile-vs-world collision.
  • M5 follow-up — hard rotation lock (PhysicsMass.InverseInertia=0); Rigidbody.FreezeRotation is not honored by the DOTS baker, so rotation is held by per-tick angular-zero + aim write.