Docs  /  Project  /  Roadmap

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).

Status legend. [ ] not started · [~] in progress · [x] complete

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 questionLocked at
Per-unit-type stat baselines (HP, attack, speed)M6 (placeholders) → continuous
Per-resource generation rate per levelM6
Engineer-project work-seconds defaultsM7
Path-edit UX + small-stack rounding tie-breakerM5
Full tile-type catalogM18 → M19 (biome-locked)
Eliminated-player tile (Dormant) behaviorM9 / M11
Match length per map sizeM21
Leader/army rostersM24 (MVP) → M28 / M29 (full)
Leader buff numbers / respawn formulaM16
Comeback defensive bonus curveM21
Biome systemM19
MonetizationM25 / M26 (latest)

How to Use This Roadmap

  1. Before starting a milestone, re-read its Decisions to lock first and confirm each is resolved in the GDD (GDD.md in the depot). If not, resolve and bump GDD version before writing code.
  2. Update the milestone's checkbox ([ ][~][x]) and add a Submitted: CL #### line under the milestone heading when it lands.
  3. If a milestone reveals scope that belongs in a later milestone, push it down — don't grow this milestone.
  4. Re-evaluate ordering at every milestone close-out.
Source of truth lives at 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.