Roadmap
In Progress Last updated: 2026-06-11Executive Vision
Rusty Warfare is transforming into an industrial-grade, Rust-authoritative RTS platform with:
- ✅ Rust authoritative simulation core
- ✅ Deterministic content-package pipeline
- ✅ Lightyear networking substrate
- ✅ Bevy headless ECS runtime
- ✅ Godot presentation frontend
- 🔄 Tooling for content authors
- 🔄 Behavior-protecting tests
Current Focus
The builder crate remains protected. Refactor focuses on everything else.
Architecture Vision
mermaid
graph TD
A[Content Package] --> B[Manifest Graph]
B --> C[Raw Content Bundle]
C --> D[Merged Content]
D --> E[Normalized Content]
E --> F[ContentDatabase]
F --> G[SpawnPlan / RulePlan / FrontendCatalog]
G --> H[Server Bevy ECS]
H --> I[Lightyear Replication]
I --> J[Client State]
J --> K[runtime_core Frontend]
K --> L[gdextension Dictionary]
L --> M[Godot Presentation]Refactor Phases
Phase 0: Architecture Quarantine ✅
- ✅ Write clean current-architecture map
- ✅ Mark stale docs as historical
- ✅ Add smoke tests
- ✅ Freeze new crate-root wildcard exports
- ✅ Create import/export audit checklist
- ✅ Protect
builderfrom churn
Phase 1: game_domain Foundation ✅
- ✅ Create pure domain layer (no Bevy/Lightyear/Godot/TOML)
- ✅ Move IDs, commands, room concepts to
game_domain - ✅ Update crate dependencies
- ✅ Remove cross-layer DTO duplication
- ✅ Establish hard boundaries
Phase 2: Content Pipeline ✅
- ✅ Split into raw/normalize/validated/plan/lock phases
- ✅ Create
RulePlan,SpawnPlan,FrontendCatalog - ✅ Add package dependency resolution
- ✅ Implement
extends,replace, patch operations - ✅ Package lock and fingerprint
- ✅ Friendly diagnostics with source location
- ✅ Namespace
ContentId - ✅ Deterministic load order
Phase 3: Protocol Network Contracts ✅
- ✅ Remove
protocol/src/shared.rs - ✅ Split by domain (command, content, room, resource, etc.)
- ✅ Narrow or remove
protocol::prelude::* - ✅ Keep Lightyear registration close to definitions
- ✅ Separate commands from transport settings
Phase 4: Server Gameplay Domains ✅
- ✅ Delete
server/src/game/systems.rsgod module - ✅ Split into domain modules (commands, movement, economy, production, combat, victory)
- ✅ Create domain plugins or system sets
- ✅ Move state bags to domain resources
- ✅ Add focused tests per domain
- ✅ Remove content file parsing from server
- ✅ Consume plans instead of raw templates
Phase 5: runtime_core Refactor ✅
- ✅ Split
NetworkAppsgod object - ✅ Separate command session, handshake, local loop
- ✅ Extract command submission, validation, transport
- ✅ Keep prediction/reconciliation as client support
- ✅ Make runtime modes explicit state machines
- ✅ Stop using frontend DTOs for validation
Phase 6-15: Implementation ✅
- ✅ P6: gdextension dictionary boundary
- ✅ P7: Godot frontend split
- ✅ P8: Official prototype assets
- ✅ P9: RulePlan contract
- ✅ P10-12: Command debug contracts
- ✅ P13: Action schema typing
- ✅ P14: Map visual codes data-driven
- ✅ P15: Official registry classification
Upcoming Phases
Phase 16: Asset/Render Contract 🔨
In ProgressRefactor sprite atlas and animation clips
P16Move render metadata into asset catalog
Phase 17-19: Movement & Logic 📋
Port deltawater movement model
P17Acceleration, braking, drive models
Port deltawater Godot controls
P18Reverse commands, orientation offset
Map logic layers
P19Compile into pathing/placement rules
Phase 20+: Maturity & Features
- [ ] P20: Official gameplay closure (production, construction, repair, reclaim, victory)
- [ ] P21: Frontend contract convergence
- [ ] P22: Bevy system granularity
- [ ] P23: Lightyear contract review
- [ ] P24: Godot runtime verification
- [ ] P25: Fix known test failures
Game Design North Star
Core Fantasy
Readable industrial war at scale: Build bases, expand logistics, control terrain, mass-produce forces, and win through positioning, economy, scouting, and combined arms.
Design Pillars
- Clarity first: Players must understand unit behavior
- Server truth first: Rust server is authoritative
- Data first: Official gameplay is a content package
- Modding first: Validated, deterministic packages
- Scale without sludge: Legible large battles
- Terrain matters: Affects passability, visibility, tactics
- Logistics matter: Resources, queues, tech gates
- Networking honesty: Diagnostics reveal authority
Initial Official Package
- Resources: Credits, energy
- Terrain: Land, road, water, blocked, resource fields
- Movement: Tracked, wheeled, infantry, air, hover, structure
- Roles: Engineer, tank, artillery, anti-air, scout, extractor, factory, turret, command
- Actions: Move, stop, build, produce, repair, reclaim, upgrade
- Combat: Weapons, projectiles, splash, target filters, cooldowns, turrets
- Economy: Extraction, generation, costs, build time, queue limits
- Victory: Command structure destroyed, elimination
Non-Negotiable Rules
No new work should:
- Create giant
Snapshotstructs in crate root - Add new
pub use *project preludes - Create 500+ line domain modules
- Give Godot scripts multiple responsibilities
- Make server parse/guess content
- Use frontend DTOs for authoritative validation
View detailed progress
See Progress for phase-by-phase completion status.