Roadmap
31 milestones from M0 (walking units, complete) through
M30 (ship), plus M-Net-0 (PlayFab auth, complete) as a Phase 0.5
foundation. Each milestone layers one mechanic onto the previous build,
so we always have something runnable to playtest. Mirrors
ArchitecturePath.md in the Perforce depot (which superseded the legacy
milestones.md; the M-numbers used here remain as cross-reference for
in-flight code).
Phase 0 — Tech demo (already shipped)
[x] M0 — Walking units & path-based capture
1 human vs 1 stub CPU on a small fixed map; units spawn, walk paths, fight on contact, last side standing wins. M0 mechanics carry through every Phase 1 milestone as the gameplay base.
Phase 0.5 — Online foundation
[x] M-Net-0 — PlayFab auth + AxonRushOnline module
Anonymous CustomID PlayFab login; identity persists across PIE sessions.
Phase 1 — Minimum Playable Loop
End-to-end: logged-in player picks Play vs AI or hosts/joins PvP, plays a full match on a generated map with the core mechanics (tile levels, per-type paths, unit types + localized economy, Tile rules, fog, win condition, AI), and returns to lobby.
[ ] M1 — Lobby map + match lifecycle
Authenticated lobby gates entry; Play vs AI / Host PvP / Join PvP.
[ ] M2 — Replicated networking + Mass / FastArray foundation
Dedicated server + 2 clients on Tailnet play a full match. Iris replication, Mass stack-as-entity, three-channel architecture, path-aware visibility service.
[ ] M3 — Generated maps with playability guarantee
Procedural map gen with the 4-step sequence (random untyped layout → starting tile placement min 2 from edges + spread → 6 Generic ring around bases → distance-weighted special-tile placement). Deterministic by seed.
[ ] M4 — Tile levels + per-pool HP
1–6 levels with separate HP pools per level; per-pool damage at path-ends only.
[ ] M5 — Path splits + weighted batched distribution extended
Per-unit-type path trees — 4 trees per source tile (Army, Gather,
Engineer, Defender), each with independent budget level + type_offset.
Mass stack splitting at forks.
[ ] M6 — Unit types + localized economy rewritten
5 unit-type fragments (Army / Gather / Engineer / Scout / Defender), 4 resource
slots, Resource Producer rule, gatherer transport with carry/drop mechanics, per-tile
stockpiles capped 50K × level, faction-set bootstrap (StartingUnitBundle,
StartingStockpile, DefaultHomeBaseProducesType). Cheats-first wired.
[ ] M7 — Tile rules + engineer projects rewritten
Full 9-rule enum, engineer time-investment + materials gates, rule-swap costs
(free initial Generic / standard / premium special), Upgrade rule with
WhichUnitType sub-config + cascade. Absorbs the old M14 Upgrade rule.
[ ] M8 — Tile types: Generic + Trap
Type axis ships with two concrete types — Generic (default) and Trap (DoT on enemies). Map gen seeds traps at configured density.
[ ] M9 — Home base & canonical win condition extended
Home Base rule (permanent + faction default produces-type), inherits Tower
mechanics on top (1-Scout regen + vision aura), StartingUnitBundle pre-spawn,
default Army paths fanning out, win on enemy CurrentBaseTile
destruction.
[ ] M10 — Fog of war (full visibility rule) extended
Layers unit-detection + re-fog onto M2's path-aware base. Adds Scout direct-control + damage-immunity, Tower rule (free regen + 4-hex vision aura), and Army-only path-tile vision.
[ ] M11 — Real AI opponent extended scope
Stats-driven personality on the Phase PC trigger framework. Adds per-tile produces-type selection, supply-line topology design, engineer project queueing, scout deployment, defender redeploy planning, comeback defensive bonus, and dormant-tile occupation-timer multi-team contestation.
Phase 1 close. Mass + Iris validated on real platforms; sustained Android playtest @ 30fps.
Phase 2 — Depth, leader, and biome content
[ ] M12 — Pass-through hazard
Units transiting Pass-through tiles take damage but don't fight back (per-type rules apply — gatherers/engineers flee-once at leaf, scouts immune to pass-through).
[ ] M13 — Unit levels & upgrade cascade extended
Units have 1–6 levels; 7 level-N → 1 level-N+1 cascade. Adds
per-type upgrade interactions per Pillar #2 — gatherer cargo
merging, engineer mid-route consumption, scout forward-leg-only consumption,
defender path routing.
[ ] M14 — (absorbed into M7)
Upgrade rule shipped at M7 with the full rule enum. Slot empty / repurposable.
[ ] M15 — (absorbed into M6)
Multi-resource economy shipped at M6 with unit types. Slot empty / repurposable.
[ ] M16 — Leader as combatant + buff aura + base relocation updated
Leader at T = 2:00 with player-picked spawn tile (becomes new home base). Adds type-appropriate per-unit aura buffs, leader XP via combat + first-time tile visit (exploration XP) + home-base level-up; Training no longer gives leader XP.
[ ] M17 — Leader ability overlay
Hold-to-overlay ability picker (no time-slow); resource-gated casts.
[ ] M18 — Special tile types: Training, Nexus updated
Beyond Trap. Training tile = unit Upgrade with a configured unit type (NOT leader XP — that diverges from the old GDD §9). Nexus = lane- intersection elite tile placeholder until lanes ship in M22.
[ ] M19 — Biomes (gameplay-affecting type pools)
Maps are partitioned into biome regions; each gates which special tile types appear there. Three+ biome definitions ship.
Phase 3 — Scale, content, and campaign
[ ] M20 — Campaign mode foundation
Authored map definition fleshed out, mission objective primitives, PlayFab campaign save, first tutorial mission.
[ ] M21 — N-team support (up to 24 players)
1–12 teams of 1–12 players, any combo summing to ≤ 24. Comeback defensive bonus tuned per team mode.
[ ] M22 — Lane structure (3+3) + 9 nexus intersections
Maps generated with the lane skeleton; nexus tiles at the 9 intersections.
[ ] M23 — PlayFab Matchmaking 2.0 + dedicated servers (PFMS)
Real matchmaking + hosted dedicated server fleet replaces M1's code-based host/join.
[ ] M24 — 3 leaders × 3 armies (MVP roster)
Three distinct leaders + three distinct armies with their own faction bootstrap data.
Phase 4 — Meta & competitive
[ ] M25 — Leaderboards + match history
[ ] M26 — Hero XP / progression tree
[ ] M27 — Cosmetics
[ ] M28 — Full leader roster
[ ] M29 — Full army roster
[ ] M30 — Polish, balance, ship
Decision-Lock Map
Which milestones force which deferred design questions to close.
| Open question | Locked at |
|---|---|
| Per-unit-type stat baselines (HP, attack, speed) | M6 (placeholders) → continuous |
| Per-resource generation rate per level | M6 |
| Engineer-project work-seconds defaults | M7 |
| Path-edit UX + small-stack rounding tie-breaker | M5 |
| Full tile-type catalog | M18 → M19 (biome-locked) |
| Eliminated-player tile (Dormant) behavior | M9 / M11 |
| Match length per map size | M21 |
| Leader/army rosters | M24 (MVP) → M28 / M29 (full) |
| Leader buff numbers / respawn formula | M16 |
| Comeback defensive bonus curve | M21 |
| Biome system | M19 |
| Monetization | M25 / M26 (latest) |
How to Use This Roadmap
- Before starting a milestone, re-read its Decisions to lock first
and confirm each is resolved in the GDD (
GDD.mdin the depot). If not, resolve and bump GDD version before writing code. - Update the milestone's checkbox (
[ ]→[~]→[x]) and add a Submitted: CL #### line under the milestone heading when it lands. - If a milestone reveals scope that belongs in a later milestone, push it down — don't grow this milestone.
- Re-evaluate ordering at every milestone close-out.
ArchitecturePath.md in the Perforce depot
(with PostArchitecture.md covering the active 12-phase Phase-1 plan).
This page mirrors them. See also Open Questions for
the full TBD inventory and the codebase audit
for the current shipped state.