Battle Drones—a vibe coded RTS with audio-based multiplayer
Battle Drones—a vibe coded RTS with audio-based multiplayer
Simon Willison traces a mobile strategy game from a dull first prototype through many agent-built revisions. An overnight run added objectives, comeback mechanics and new modes, and simulated matches helped rebalance them. Willison’s own play, not those match statistics, supplied the judgment that it had become fun. He then specified a map that gave otherwise neglected transport units a reason to exist. In the full prompt log, his initial instruction to wait for design approval was later withdrawn when he went out; that approval gate did not stay in force.
To avoid operating a multiplayer server, he had the agent synchronize nearby devices with sound. Playing with Natalie gave her a headache. He added a warning and, after a failed WebRTC attempt, had the agent build an online WebSocket relay. The hosting cost in the account is an estimate, not a bill. A later release used the same relay for a four-player map; its pull request documents compatibility and browser smoke tests, but not a published session with four independent players. An outside player's separate selection-control patch did pass automated review, their manual check and owner sign-off before merge.
This is a firsthand history with public prompts and linked code, not a measured comparison with human game development. The author says he reviewed very little TypeScript; neither automated matches nor a merged relay establish long-run player enjoyment, server uptime or safe operation. The stronger lesson is that player experience can overturn both a simulation-based design and a favored architecture, leaving humans responsible for the ongoing service.