RTS-Core: Architecture Extraction Complete
What was created
DOCS/NEXT_GEN/ — 6 architecture documents:
• DocumentContentVISION.md: Mission, design principles, data-driven contract, independence layers
• ARCHITECTURE.md: Crate graph, dependency rules, layer architecture, tick loop, plugin architecture, migration from Blastion
• DATA_MODEL.md: YAML data definitions for factions, units, buildings, resources, research, maps. Rust component representation. Validation rules. Serialization protocols.
• SIMULATION.md: 8-phase deterministic tick loop, sub-module breakdown, fixed-point arithmetic, system-level determinism, command validation, snapshot system, performance budget
• NETWORK.md: Lockstep protocol, network messages, desync detection, replay file format, Transport trait, dedicated server, timing parameters
• ROADMAP.md: 7-phase implementation plan (17 weeks total): Foundation → Core Simulation → World & Pathfinding → Network → AI → Presentation → Tools → Stabilization
rts-core/ — Rust workspace scaffolding:
rts-core/
├── Cargo.toml # Workspace root (6 members)
├── simulation/ # Deterministic game state (no deps)
│ ├── Cargo.toml
│ └── src/lib.rs # Plugin, GameTick, PlayerId, EntityId, Vec2i
├── world/ # Spatial systems (dep: simulation)
│ ├── Cargo.toml
│ └── src/lib.rs # Plugin, MapData, Pathfinder, PlacementValidator
├── network/ # Lockstep multiplayer (dep: simulation)
│ ├── Cargo.toml
│ └── src/lib.rs # Plugin, Transport trait, ReplayRecorder, run_server
├── ai/ # Behaviour trees (dep: simulation, world)
│ ├── Cargo.toml
│ └── src/lib.rs # Plugin, BTNode, StrategicPlanner, Difficulty
├── presentation/ # Optional rendering (dep: simulation, world)
│ ├── Cargo.toml
│ └── src/lib.rs # Plugin, PresentationConfig
└── tools/ # Editor & validators (dep: simulation, world, network)
├── Cargo.toml
└── src/lib.rs # Plugin, editor_system, validators
Key architectural decisions
• Strict dependency graph: simulation has zero internal deps. Each layer only depends on layers below it.
• Data-driven by design: Zero hardcoded gameplay. All units, buildings, resources, factions, research defined in YAML/JSON/RON.
• Determinism first: Integer coordinates, deterministic RNG, sorted entity iteration, fixed system order.
• Full decoupling: Simulation ≠ Rendering ≠ Network. Presentation is optional (headless server runs without it).
• Bevy Plugin architecture: Each crate exposes a Plugin struct that games compose at startup.
• Generic victory conditions: Pluggable functions, not hardcoded elimination rules.
• Lockstep default, authoritative optional: Network supports both models.
• 17-week roadmap: Clear phases from foundation through stabilization.
Phase 0: Foundation (Weeks 1-2)
Set up the workspace, define core types, establish the data pipeline.
RTS-Core: Roadmap
Phase 0: Foundation (Weeks 1-2)
Goal: Set up the workspace, define core types, establish the data pipeline.
Deliverables:
- Workspace scaffolding
- Core type definitions
- Data loader
- Definition registry
Test: Load a minimal set of definitions from disk, print registry contents, cargo test passes.
Phase 1: Core Simulation (Weeks 3-5)
Goal: Implement the deterministic tick loop with all core simulation systems.
Deliverables:
- Entity lifecycle
- Health system
- Economy system
- Combat system
- Production system
- Construction system
- Research system
- Victory system
- Modifiers system
- Command validation
- Snapshot system
Test: Run 1000 deterministic ticks with commands and verify identical state.
Phase 2: World & Pathfinding (Weeks 6-7)
Goal: Implement spatial systems, terrain, and pathfinding.
Deliverables:
- Map system
- Terrain system
- Placement validation
- Navigation/Pathfinding
- Movement system
Phase 3: Network & Multiplayer (Weeks 8-10)
Goal: Implement lockstep networking, replays, and dedicated server.
Phase 4: AI (Weeks 11-12)
Goal: Implement generic AI system.
Phase 5: Presentation (Weeks 13-14)
Goal: Implement optional rendering, camera, audio, and UI abstractions.
Phase 6: Tools (Weeks 15-16)
Goal: Implement editor and validation tools.
Phase 7: Stabilization & Documentation (Week 17+)
Goal: Polish, benchmark, and document.
© 2026 Jean-Yves Cornet - JoYz.pro