Screenshots are work-in-progress development captures — placeholder voxel art from the engine’s live demo, not final game art.
RTS Engine is a reusable Rust game engine built headless-first: every simulation, pathfinding, physics, destruction, and AI crate carries zero GPU, window, or audio dependencies, so the whole game can run — and be tested — without a screen. v1 shipped as 19 completed implementation plans across 24+ crates, with 16 golden fixtures proving the simulation produces identical hashes across platforms.
Why it exists
I wanted to find out how far a single engineer working with AI agents could push a real game engine — not a framework demo, but deterministic simulation, 3D rendering, and a playable RTS on top. Determinism was the forcing function: if two machines can replay the same input log to the same hash, then AI agents can test gameplay headlessly and regressions become diffs instead of vibes.
Highlights
- Custom sparse-set ECS and a fixed-timestep scheduler with cross-platform deterministic golden hashes.
- A wgpu renderer with cascaded shadow maps, SSAO, bloom, ACES tonemapping, temporal upscaling, Gerstner water, and fog-of-war-aware sampling.
- Hierarchical flow-field pathfinding with boid avoidance and tile reservations for hundreds of units.
- Voxel destruction that “explodes to parts” via three-layer connectivity analysis, backed by deterministic rapier3d physics.
- Three-layer skirmish AI with an APM budget, plus a 25-route HTTP agent-control API with SSE telemetry so AI agents can literally play the game.
- Versioned save/load, input-log replays, a MagicaVoxel asset pipeline, and a live two-faction demo battlefield with 28 unit and 24 building specs.
Technical approach
The workspace enforces the platform split structurally: sim crates cannot even link a GPU dependency, and the render/UI/platform crates sit behind a narrow boundary. Physics runs rapier3d in enhanced-determinism mode at fixed substeps. The engine went on to become the substrate for two games — a 3D RTS and a 2D factory sim — each vendoring the engine and bending it in a different direction.


