Battle Drones is an experimental Command & Conquer–style real‑time strategy (RTS) game that runs in the browser and on mobile. The developer credits Claude‑based coding agents for most of the work and says the game only became fun after prompting Claude to "Make it a LOT more fun." The project also supports a novel local multiplayer mode that synchronizes game state between nearby devices using audio signals.
What the project includes
The development has gone through 12 major iterations and 321 commits. The game runs in desktop browsers and on mobile, offers multiple play modes, several maps (including a random map generator) and a two‑device local multiplayer mode that works when devices are within microphone range.
Key features so far:
- 9 buildings, 7 ground vehicles, 6 aerial vehicles and 3 infantry units — all represented as 3D models.
- Fog of war.
- Distinct weapon types for air vs ground targets.
- Six maps across five biomes: temperate, desert, arctic, volcanic and tropical.
- A random map generator.
- Skirmish mode (red vs. blue on rotationally symmetrical maps).
- Last Stand mode (survive waves of enemies).
- Area effect weapons: Barrage, EMP, Drop Pod, Sky Hammer.
- Crate drops with bonus resources.
- In‑game music that adapts to events — it intensifies as fighting heats up.
- Multiple in‑game AI personalities (Balanced, Rush, Air Swarm, Boom, Skyforce, Ironclad).
- AI vs AI mode to watch those personalities compete.
- The Goliath: a giant stomping mech with laser eyes, arm cannons and the ability to become a mobile base.
- Mutators, a Daily Op challenge, ranks and medals.
- Agent vs Agent mode where two large language models (LLMs) can play against each other.
- A multiplayer mode that uses audio messages between nearby phones — building on the developer's earlier Chirp Pong experiment.
How it was built: versions and milestones
The project was largely "vibe coded": the developer reviewed little of the code manually and relied heavily on Claude and related tools. The codebase is in TypeScript, even though the developer says they have limited personal experience with the language. Significant milestones:
-
v1: initial prototype (started in July). Using Claude Fable 5, the prototype had basic RTS mechanics, building placement, unit selection, and a simple AI. It was a proof of concept but not fun to play.
-
v2: full sprites and AI vs AI mode. Claude prompted OpenAI image models to generate sprites.
-
v3: varied terrain and five new maps. Upgraded to Claude Opus 5.5; visuals improved substantially.
-
v4: the "fun update." Running Claude Code for Web in an Ultracode mode (dynamic workflows orchestrating many subagents), Claude performed over a thousand simulated playtests, rebalanced units, added features (openers, call‑down powers like Barrage/EMP/Drop Pod/Sky Hammer, objectives and salvage, combat "juice" with adaptive music and announcer, new modes including Last Stand and an 8‑mission Ops campaign, progression elements, mutators). In 1,200 AI‑vs‑AI test matches on Normal difficulty, games still undecided after 25 minutes fell from 14% to 0.9%; the win share for sides that had been 800+ scrap behind rose from 24% to 46%.
-
v5: Battle Drones goes 3D. The game was ported to Three.js and Claude generated the 3D models via TypeScript code.
-
v6–v7: visual polish, robot infantry (troopers, rocket squads, snipers) and the Condor transport aircraft.
-
v8: Archipelago map. A long prompt produced a new tropical map where uplinks sit on islands that can only be captured by flying infantry there in a Condor, encouraging use of Condors and infantry.
-
v10: Goliath and agent battles. Giant mechs (Goliaths) were added; they can be constructed at a Gantry, walk out onto the map, anchor to act as a new HQ, and be carried by two Condors. The game ends when the enemy HQ and any Goliaths are destroyed. v10 also introduced agent battles, enabling LLMs (for example Claude and GPT‑6 variants) to play the game via tools that provide non‑visual game state within fog of war constraints; battles can be recorded and replayed.
-
v11: random maps. Using remaining Claude quota in a short time window, a seed‑based, rotationally symmetric random map generator (including rivers, bridges, rocks, forests, scrap and crystals) was implemented.
-
v12: multiplayer via sound. Building on the Chirp Pong experiment and Simonw/tools examples, Claude created a Radio Probe tool to measure available bandwidth and implemented an audio modem system that synchronizes two nearby devices. The developer reports successful tests on laptops, iPhones and iPads.
Tools, models and references used
- Claude, Claude Code for Web, Claude Fable 5, Claude Opus 5.5.
- OpenAI Image Generation API for asset generation.
- GPT‑6 variants (e.g., GPT‑6 Sol, GPT‑6 Luna) for agent battles.
- Three.js and Phaser (earlier versions used Phaser).
- Simonw/tools repository and a Chirp Pong example for audio multiplayer.
- Radio Probe, Agent vs. Agent debug tool, and Scrimshaw Jukebox for generated music.
- Related projects mentioned: Siner (Alon Horesh) and ggwave (Georgi Gerganov).
Observations and lessons
The developer highlights several practical points:
- Static HTML and JavaScript are effective media for game development; WebGL and Three.js work well for agent‑generated projects.
- Giving Claude an OpenAI API key and asking it to generate images with OpenAI's models produced usable, iterated assets.
- Opus 5.5 (and GPT‑6) demonstrated strong Three.js 3D modelling capabilities.
- Deterministic simulation engines are valuable for replays and multiplayer; floating point differences across browsers (e.g., Math.sin/Math.cos) can desynchronize runs, so custom deterministic replacements were used in places.
- The soundtrack is code‑generated (no audio files) and adapts to in‑game events.
- Ultracode workflows in Claude Code consume many tokens but can solve complex, multi‑step problems from a single prompt.
The developer also expresses some unease about the workflow: they feel a certain guilt that so much of the game was produced by coding agents rather than by their own design work, yet they acknowledge the approach can produce high‑quality, playable results quickly.
Where this could lead
Battle Drones is presented as an experimental demonstration of what agent‑driven development can achieve for web games: a playable, attractive RTS with innovative features such as audio‑based local multiplayer and agent‑vs‑agent competitions. The developer hopes others—especially creators with stronger design instincts—will build on these ideas. The project is not positioned as a final indie release, but as a proof that generative tools and LLMs can meaningfully contribute to game creation in the browser.



