Completeness Audit & Build Sequence
M1-M4 How-Completeness Audit (Baseline)
This subsection answers a narrower question than the full tracker: do we have enough implementation-grade “how” to start the M1 -> M4 execution chain in the correct order?
Baseline answer: Yes, with explicit closure items. The M1-M4 chain is sufficiently specified to begin implementation, but a few blockers and scope locks must be resolved or frozen before/while starting the affected milestones.
Milestone-Scoped Readiness Summary
M1(Resource + Rendering Slice): implementation-ready enough to start. Main risks are fidelity breadth and file-format quirks, not missing architecture.M2(Deterministic Sim Core): implementation-ready. P002 (fixed-point scale=1024) is resolved — seeresearch/fixed-point-math-design.md.M3(Local Skirmish): mostly specified;✓ resolved (Kira). Remaining dependency: a narrow, explicitP003D043AI baseline subset.M4(Minimal Online Slice): architecture and fairness path are well specified (D007/D008/D012/D060audited), but reconnect remains intentionally “support-or-explicit-defer.”
M1-M4 Closure Checklist (Before / During Implementation)
-
Resolve✓ RESOLVED: 1024 scale factor (seeP002fixed-point scale beforeM2implementation starts.research/fixed-point-math-design.md). Affected decisions: D009, D013, D015, D045. -
Freeze an explicit
M3AI baseline subset (fromD043) for local skirmish.M3.SP.SKIRMISH_LOCAL_LOOPdepends onD043, butD043’s primary milestone isM6.- The
M3slice should define a narrow “dummy/basic AI” contract and defer broader AI preset sophistication toM6.
-
Resolve✓ RESOLVED: Kira viaP003audio library + music integration before Phase 3 skirmish polish/feel work.bevy_kira_audio(seeresearch/audio-library-music-integration-design.md). Four-bus mixer, dynamic music FSM, EVA priority queue.M3.CORE.AUDIO_EVA_MUSICgate is unblocked. -
Choose and document the
M4reconnect stance early (baseline support vs explicit defer).M4.NET.RECONNECT_BASELINEintentionally allows “implement or explicitly defer.”- Either outcome is acceptable for the slice, but it must be explicit to avoid ambiguity during validation and player-facing messaging.
-
Keep
M3/M4subset boundaries explicit for imported higher-milestone decisions.M3skirmish usability references pieces ofD059/D060; implement only the local skirmish usability subset, not full comms/ranked/trust surfaces.M4online UX must not imply full tracking/ranked/browser availability.
Evidence Basis (Current Tracker State)
M1primary decisions:5 Integrated,4 DecisionedM2primary decisions:9 Integrated,2 Audited,3 DecisionedM3primary decisions:3 Integrated,2 DecisionedM4primary decisions:4 Audited
This supports starting the M1 -> M4 chain now. P002 is resolved (1024); P003 is resolved (Kira); remaining checkpoint is the M3/M4 scope locks above.
Foundational Build Sequence (RA Mission Loop, Implementation Order)
This is the implementation-order view of the early milestones based on the granular ladder in the dependency map. It answers the practical question: what do we build first so we can play one complete mission loop with correct win/loss flow and presentation?
Phase 1: Render and Recognize RA on Screen (M1)
- Parse core RA assets (
.mix,.shp,.pal) and enumerate them from a real RA install. - Render a real RA map scene in Bevy (palette-correct sprites, camera, basic fog/shroud handling).
- Play unit sprite sequences (idle/move/fire/death) so the battlefield is not static.
Phase 2: Make Units Interactive and Deterministic (M2)
- Add cursor + hover hit-test primitives (cells/entities).
- Add unit selection (single select, minimum multi-select/box select).
- Implement deterministic sim tick + order application skeleton (P002 resolved: scale=1024, see
research/fixed-point-math-design.md). - Integrate pathfinding + spatial queries so move orders produce actual movement.
- Sync render presentation to sim state (movement/facing/animation transitions).
- Implement combat baseline (targeting + hit/damage resolution).
- Implement death/destruction state transitions and cleanup.
Phase 3: Close the First Mission Loop (M3)
- Implement authoritative mission-end evaluators:
- victory when all enemies are eliminated
- failure when all player units are dead
- Implement mission-end UI shell:
Mission AccomplishedMission Failed
- Integrate EVA/VO mission-end audio (after
P003audio library/music integration is resolved). - Implement replay/restart/exit flow for the mission result screen.
- Run a “feel” pass (selection/cursor/audio/result pacing) until the slice is recognizably RA-like.
- Expand from fixed mission slice to local skirmish (
M3exit), using a narrow documentedD043basic AI subset.
After the First Mission Loop: Logical Next Steps (Through Completion)
M4: minimal online skirmish slice (relay/direct connect, no tracker/ranked).M5: campaign runtime vertical slice (briefing -> mission -> debrief -> next).M6: full single-player campaigns + SP maturity.M7: multiplayer productization (browser, ranked, spectator, trust, reports/moderation).M8: creator foundation lane (CLI + minimal Workshop + profiles), in parallel onceM2is stable/resourced.M9: scenario editor core + full Workshop + OpenRA export core.M10: campaign editor + advanced game modes + RA1 export + editor extensibility.M11: ecosystem polish, optional AI/LLM, platform expansion, advanced community governance.
Multiplayer Build Sequence (Detailed, M4–M7)
M4minimal host/join path using the finalized netcode architecture (NetworkModelseam intact).M4relay time authority + sub-tick normalization/clamping + sim-side order validation.M4full minimal online match loop (play a match online end-to-end, result, disconnect cleanly).M4reconnect baseline decision and implementation or explicit defer contract (must be documented and reflected in UX).M7browser/tracking discovery + trust labels + lobby listings.M7signed credentials/results and community-server trust path (D052) (✓ resolved — seeP004research/lobby-matchmaking-wire-protocol-design.md).M7ranked queue/tiers/seasons (D055) + queue degradation/health rules.M7report/block/avoid + moderation evidence attachment + optional review pipeline baseline.M7spectator/tournament basics + signed replay/evidence workflow.
Creator Platform Build Sequence (Detailed, M8–M11)
M8icCLI foundation + local content overlay/dev-profile run path (real runtime iteration, no packaging required).M8minimal Workshop delivery baseline (publish/installloop).M8p2p-distributestandalone crate core engine + tracker client + config system + profiles (design milestones 1–3) — separate MIT/Apache-2.0 repo, no IC dependencies.M8p2p-distributepeer discovery + NAT traversal + DHT + uTP + embedded tracker (design milestones 4–5, 7, 9 subset).M8IC P2P integration baseline —workshop-corewrapsp2p-distribute;ic-serverWorkshop capability wired; auto-download on lobby join via P2P.M8mod profiles + virtual namespace + selective install hooks (D062/D068).M8authoring reference foundation (generated YAML/Lua/CLI docs, one-source knowledge-base path).M9Scenario Editor core (D038) + validate/test/publish loop + resource manager basics.M9Asset Studio baseline (D040) + import/conversion + provenance plumbing.M9full Workshop/CAS + moderation tooling + OpenRA export core (D049/D066).M9p2p-distributehardening — fuzzing, chaos tests, v2/hybrid support, storage perf, control surfaces,crates.iopublish (design milestones 6, 8–10).M9SDK embedded authoring manual + context help (F1,?) from the generated docs source.M10Campaign Editor + intermissions/dialogue/named characters + campaign test tools.M10game mode templates + D070 family toolkit (Commander & SpecOps, commander-avatar variants, experimental survival).M10RA1 export + plugin/extensibility hardening + localization/subtitle tooling.M11governance/reputation polish + creator feedback recognition maturity + optional contributor cosmetic rewards.M11optional BYOLLM stack (D016/D047/D057) and editor assistant surfaces.M11optional visual/render-mode expansion (D048) + browser/mobile/Deck polish.
Dependency Cross-Checks (Early Implementation)
✓ RESOLVED (1024).P002must be resolved before seriousM2sim/path/combat implementation.✓ RESOLVED (Kira).P003must be resolved before mission-end VO/EVA/audio polish inM3.✓ RESOLVED (lobby/matchmaking wire protocol).P004is not a blocker for theM4minimal online slice, but is a blocker forM7multiplayer productization.M4online slice must remain architecture-faithful but feature-minimal (no tracker/ranked/browser assumptions).M8creator foundations can parallelize afterM2, but full visual SDK/editor work (M9+) should wait for runtime/network product foundations and stable content schemas.M11remains optional/polish-heavy and must not displace unfinishedM7–M10exit criteria unless a new decision/overlay remap explicitly changes that.