| M0 — Foundation |
DOTS + Netcode stack, asmdef split, bootstrap, smoke test green |
✅ Done 2026-05-29 — 2026-05-29_Project_Setup |
| M1 — Player slice |
Server-spawned owner-predicted player; twin-stick WASD + directional aim |
✅ Done 2026-05-31 — runtime-validated on Unity 6.4.7 (connect→spawn→owner-predicted ghost→replication; EditMode 3/3). The 6.6 failure was environment-specific, see DR-002_Unity66_Alpha_Netcode_Transport — 2026-05-30_M1_Player_Slice |
| M2 — Combat |
Directional ability fire + deterministic soft auto-target; server-authoritative damage/health |
✅ Done 2026-05-31 — runtime-validated on 6.4.7: input→fire→predicted projectile→swept hit→server damage→Health [GhostField] replicated server→client; movement + fire confirmed live; EditMode 22/22. Predicted-projectile + server auto-target + non-Burst classifier — DR-003_M2_Combat_Netcode_Architecture, 2026-05-31_M2_Combat. (Projectile ghost-map errors appear only under server tick-batching from running two editors at once — close the reference editor for clean netcode.) |
| M3 — Data-driven abilities & modifiers |
Ability and character stats authored in ScriptableObjects, baked to DOTS blob assets; runtime flat + % modifier stacks (upgrades/buffs) → effective stats, server-authoritative + prediction-correct. Pattern slice: refactor the current projectile ability + 1–2 sample abilities onto the data model. |
✅ Done 2026-05-31 — runtime-validated on 6.4.7: blob DB baked into both worlds; data-driven base + replicated StatModifier ghost buffer → identical effective stats on server & owner-predicted client (held under tick-batching); data-only ability swap; real pickup grant; EditMode 38/38. Blob DB + replicated modifier buffer + every-tick effective recompute — DR-004_M3_DataDriven_Abilities_Modifiers, 2026-05-31_M3_Data_Driven_Abilities. |
| M4 — Co-op |
2–4 players; client-hosted listen-server over Unity Relay |
⬜ |
| M5 — Home base + physics |
Persistent base subscene streaming + Unity Physics in the predicted loop |
⬜ |
| M6 — Build/placement |
Server-authoritative grid build placement via RPC |
⬜ |
| M7 — Automation |
Self-running tick-based production chains (deterministic offline catch-up) |
⬜ |