Rust Game Engine hero
In development Started 2026

Rust Game Engine

A deterministic, headless-first Rust game engine with destructible voxel worlds and an AI-first control API, and the Command & Conquer style 3D RTS being built on top of it.

  • Rust
  • wgpu
  • rapier3d
  • axum
  • Blender
  • MagicaVoxel
  • rodio
Started
2026
Status
in development
Platforms
macOS · Windows

Screenshots are work-in-progress development captures: placeholder voxel art from the engine’s live demo and the game’s AI-vs-AI spectator mode, not final art.

One engine, two layers. 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 a whole game can run (and be tested) without a screen. Kane’s Resurrection (a codename, not the final title) is the first product on it: a single-player, offline 3D real-time-strategy game in the classic Command & Conquer 3 mold, with original IP and two asymmetric factions. A second game, the backyard factory sim Small Riches, vendors the same engine and bends it in a different direction.

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.

And nobody makes this game anymore. I grew up on base-crunching, harvester-guarding, superweapon-timing RTS campaigns, and the genre moved on without them. The design pillars, in build order: the feel (crunchy base-building and skirmish against a capable AI), asymmetric factions, then a campaign. Multiplayer is permanently out of scope: this is a single-player game, built like one.

The engine

v1 shipped as 19 completed implementation plans across 24+ crates, with 16 golden fixtures proving the simulation produces identical hashes across platforms.

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

The game

Two factions: Foundry, a conventional military of tanks, artillery, and air power, and the Scavengers, Mad-Max-style scrappers running technicals, rocket jeeps, and salvage drones. No C&C names, units, music, or assets.

  • A complete, closed match loop: economy, production, assault, victory. Matches against the AI can be won and lost, in play or spectator mode.
  • 28 unit and 24 building specs across the two factions, with 63 hand-authored, silhouette-gated PBR meshes flowing through a Blender to GLB to engine pipeline.
  • A four-mission campaign arc, an early map editor with live terrain preview and undo/redo, deterministic input-log replays, and a rematch/watch-replay results flow.
  • Full product shell (title, skirmish setup, pause, settings, controls, accessibility) that cold-boots into a freshly generated match.
  • Combat modeled as a damage-type by armor-type matrix with raycast line-of-sight and cover, over flow-field pathing with eight locomotion classes.
  • Renders with 144 fps headroom on Apple Silicon Metal in dense spectator scenes, with automated packaged-launch, soak, and perf proofs gating the beta.

Technical approach

The engine workspace enforces the platform split structurally: sim crates cannot even link a GPU dependency, and the render, UI, and platform crates sit behind a narrow boundary. Physics runs rapier3d in enhanced-determinism mode at fixed substeps. The game vendors a copy of the engine (~105k lines) and extends it with a real mesh-import crate: glTF/GLB geometry, node transforms, tangents, and PBR materials bound through a content catalog, with hard budget gates on triangles and texture bytes. The whole game repo runs ~140k lines with over a thousand tests. Beta packaging, soak tests, and performance baselines are automated; what remains before the tag is deliberately human: witnessed matches and an ears-on audio pass.