RobOS RTS

Starfall Command

Build from twelve workers into an army on Frontier Hunters, a 256×256 battlefield with eight possible starts and inexhaustible deposits. One player, one AI, and a working map editor for the next battlefield you want to make.

Scroll ↓

The game

Gather, build, scout and win

Frontier Hunters draws two distinct starts from eight perimeter bases. Both sides begin with a Colony Hub, twelve Pioneers and the same resources. Waterways and land crossings shape the routes between bases and expansions. Win by destroying every opposing structure, including unfinished expansions, or by your opponent's surrender.

A 256×256 battlefield

Eight starting sites, interior expansions and unlimited crystal and aether. Build and train with normal costs, prerequisites, construction time and a 200 supply cap.

One player versus AI

Easy, Normal and Hard opponents use Rush, Balanced, Economy or Siege strategies. Both sides use the Meridian Guard roster and the same paid commands.

Micro that matters

Every weapon has a wind-up and a recovery. Move during the recovery and you cancel it, which makes stutter-step kiting real.

Pathfinding that behaves

Funnel-smoothed A*, crowd steering and push priority: idle units yield to marching ones and return to their posts.

Live, accelerated play

Fixed 64 Hz ticks with 1×, 2×, 4× and 8× playback. Fast-forward adapts to available CPU time so input and drawing keep moving.

Author it, then play it

Paint and fill terrain, place starts and resources, validate, undo, save and reload. F5 playtests the map; F10 returns to the editor.

Frontier Hunters

From the first workers to the last enemy structure

This complete live test plays a Rush build against Hard Siege AI. The map is saved and reloaded through the editor first, then the player controller pays for construction and training while the opponent runs independently. Victory comes from the engine's structure-elimination rule.

Seed 29, zero manual simulation steps. Recorded at 1080p / 10 FPS. Requested 8× playback achieved 2.58× under rendering and recording load.
Frontier Hunters: the full 256×256 map with eight starts and interior expansions
The full battlefield and its crossing routes.
The Frontier Hunters document open in the Godot map editor
Terrain, starts and resources in the reusable map editor.

The editor preserves campaign and future multiplayer metadata. Campaign scripting and network multiplayer still need engine work. The current playable focus is one player against one AI.

Map editor tools & controls →

The interface

Built like an RTS, not a dashboard

Resources, production, selection and commands read live simulation state. Health bars show on selected, hurt or under-construction units. The interface examples below use the older canyon showcase.

The Starfall Command interface with a Muster Hall selected and four units queued 1 2 3 4 5
  1. ResourcesCrystal, aether and supply for the faction you are viewing. Supply turns red when you are capped.
  2. MinimapTerrain, resources, structures and the camera outline. Click to jump, right click to give orders, red rings when you are hit.
  3. SelectionA portrait rendered from the unit's own 3D model, health and shield, damage and DPS, range, armor and speed.
  4. ProductionA five-slot queue with progress. Queue units with the hotkeys or the card.
  5. Command cardHotkeys in the corner. Hover for cost, stats and the reason a button is unavailable.
Tooltip for Train Breacher
Tooltips show cost, build time and stats.
Eight units selected
Box-select a mixed squad; Tab cycles the active type.
Build placement ghost
Placement footprints turn green or red; invalid spots explain why.
Supply blocked message
Capped on supply? The game says so, and the counter goes red.
Control groups and idle workers
Control groups and the idle worker button.
Controls overlay
F1 opens the controls overlay.

Engine showcase rosters

Infantry, swarms and shielded warriors

Frontier Hunters currently uses Meridian Guard on both sides. These three rosters remain available in the engine's isolated mechanics scenarios and older canyon showcase.

Meridian Guard

Human colonists on the high ground. Cheap infantry, armored line troops and long-range artillery that rewards patience.

  • Surge Injector trades 10 health for 11 seconds of faster movement and fire.
  • Emplace a Howitzer to reach range 31 with splash damage, at the cost of moving.
  • Provision Silos double as a gate you can open and close.

Pioneer · Rifleman · Breacher · Howitzer
Colony Hub · Provision Silo · Aether Tap · Muster Hall · Workshop

Meridian Guard units
The Meridian Guard roster.
Meridian structures
Colony Hub, Muster Hall, Workshop.
Silos and aether tap
Silo extended, retracted, and an Aether Tap.
Gathering crystal
Pioneers mining beside the Colony Hub.

Gnarl Brood

A monster swarm. Fast, cheap bodies that overwhelm in numbers and one nest that spawns all of them.

  • Skitterlings are the fastest units in the game and fall to splash.
  • Bile Crawlers spit acid with real range and bonus damage to structures.
  • Blight Hurlers lob corrosive splash over the front line.

Forager · Skitterling · Bile Crawler · Blight Hurler
Brood Nest

Gnarl Brood units
The Gnarl Brood roster.
Brood base
The Brood Nest and its crystal line.
Skitterling pack approaching
Riflemen hold range against a Skitterling pack.

Aurelian Concord

Shielded warriors. Every unit and structure has an Aegis Shield that absorbs damage first and regenerates out of combat.

  • Phase Step teleports a Skirmisher up to 18 range when its shield breaks.
  • Sunblade Rush closes the gap in a burst.
  • Spire Walkers walk straight over cliff walls.

Mote · Sunblade · Skirmisher · Spire Walker
Heartstone · Resonator · Waystone

Aurelian Concord units
The Aurelian Concord roster.
Concord base
The Heartstone, Resonator and Waystone.
Brood and Concord structures
Structures side by side.

Canyon mechanics showcase

Hold the choke

Three-way battle
A three-way battle with all three built-in AIs running.
Squad on the ramp
A squad descends the ramp.
Emplaced Howitzers
Emplaced Howitzers cover the choke.
Howitzer volley
A splash shell leaves the line.
Aftermath
Scorch marks where the wave broke.
Kiting approach
Riflemen hold range against a Skitterling pack.
Kiting volley
Stutter-step kiting: fire, then step back.
Concord advance
The Concord advance on a Brood pack.
Phase Step
Skirmisher mid Phase Step.
Cliff walk
A Spire Walker firing across the cliff wall it has just crossed.
Retracted silo gate
A retracted Silo lets a Howitzer drive through.
Extended silo gate
Extended, the same silo blocks the gap.

Drive it with code

The same game for people, scripts and agents

The game serves an HTTP/JSON API. The Cucumber tests, the screenshot pipeline behind this page and your own bots all use it. Every picture on this page is a frame the game rendered while a script played it.

from robos_rts_bot_sdk import RTSClient

c = RTSClient("127.0.0.1", 18095)
c.load_scenario_slug("stutter-step-micro")
c.step(120)                                  # advance 120 ticks
riflemen = [u["tag"] for u in c.get_observation()["units"]
            if u["unit_type"] == "rifleman"]
c.command("attack_move", tags=riflemen, x=70.0, y=40.0)
c.key("T")                                   # real hotkey: Surge Injector
c.screenshot("/tmp/frame.png")
/observation/action/step/pause/scenario/directive/input/ui/camera/screenshot

The live suite authors and reloads maps, then plays paid Rush, Siege and Economy builds against different AI difficulties through to victory. Only the live frame clock advances time; the live client rejects manual stepping. Backend fixtures separately check economy, combat, navigation and editor behavior.

# From games/robos-rts, with GODOT_BIN configured
python run_cucumber_tests.py --backend
python run_cucumber_tests.py --realtime-headless --speed=8
python run_cucumber_tests.py --realtime --speed=8 --record

On October 23, 2026, the backend passed 20 scenarios / 128 steps and the live suite passed 6 scenarios / 40 steps. A normal-speed paid army probe with roughly 80 units observed 49–60 FPS on a local GTX 1050 Ti at 1080p; its final rolling frame sample had a 26.952 ms p95. See the verification report for hardware, budgets and recording limits.

Play

Run it from source

You need Godot 4.3 or newer and Git; the verification above used 4.7.2. Press F8 for match setup and the map editor, or F1 for controls.

git clone https://github.com/nddipiazza/robos.git
cd robos/games/robos-rts
GODOT_BIN=/path/to/godot4 ./play.sh