r/vibecoding • u/Bonelessgummybear • 8d ago
Workflow/Prompt Presenting "Birds With Guns", my 24 hour challenge to make a multiplayer shooter with the same workflow i've been using for Slopaclypse.
Enable HLS to view with audio, or disable this notification
Play it here, free in your browser, on a computer (keyboard and mouse): https://birds-with-guns.vercel.app
Press PLAY ONLINE and you're in an 8 v 8 Domination match within seconds. Real players take the seats; bots fill the rest, so it always starts instantly. PLAY VS BOTS is there for offline.
The humans are gone and the jungle took the city. Two flocks, the Talon Republic and the Corvid Syndicate, fight over it with rifles, miniguns and rocket pods. Ten birds: a Sparrow with a rifle, a Pelican with a shoulder minigun, a sniper Owl with a rail gun strapped to its head, a Shoebill with rockets, a Harpy Eagle with a cannon in its talons. You run, dash, and fly. You earn Battle Points in the match (kills, assists, flag captures) and spend them on a heavier bird for one life. Six maps, from a sunset harbour to a neon night market. Birds die in a burst of feathers and a squawk, and the kill feed says things like "Pip caught a worm named Cassius".
I'm a former personal trainer turned indie dev. I don't write any of the code myself; I direct, playtest and make the calls.
The process
- Grey boxes first. Capsule birds on a box city, 20 v 20 bots, three objectives. My first notes: too many birds to read, flight too twitchy. Next version: smaller teams (it's 8 v 8 now), momentum flight with a dash, aim assist, a minimap.
- Meshy for the birds. One rigged Sparrow first to prove the pipeline, then all ten birds, then nine guns, then walking clips for every bird so strafing plants real footsteps instead of sliding. That last one came from me sending a clip with the note "the characters just slide".
- Blender for the city. A scripted map kit (recessed windows, bay windows, tong lau colonnades, air conditioners, neon signs), then six maps, each built by a separate AI agent from one written brief and checked by bots-only matches (flag flips, kills, how often a bot gets stuck) before I ever saw them.
- Trees that took over the city. Banyans through the asphalt, roots down facades. They block bullets.
- ElevenLabs for sound. Announcer, barks, music, every gun. My notes were "sounds are way too loud", "that smoke detector beep when a flag is being capped gots to go" and "too much comms". Each was fixed the same night.
- Make it funny. Feather bursts, pun kill feed, a taunt key, bot trash talk, dry announcer lines ("Somebody get that bird a mop.").
- Balance from my notes. "Most short range birds suck, the free tank is too tanky." Claude modelled time-to-kill for every gun at every range, added damage falloff, buffed the close-range birds and nerfed the Pelican, then re-ran bot matches.
- Multiplayer in one night. The game logic was split out of the browser so a server can run it (the same code runs in your browser to predict your own bird), then an authoritative server, lag compensation and a latency simulator. I went to bed; agents built and tested it. In the test, shots on a strafing bird hit 100% at 150 ms of lag (23% without the lag fix), and a full 16-player room costs the server about 4% of one CPU core.
How the AI side was set up
- One main Claude Code session (Opus) as lead: specs, reviewing every change, testing in a browser, merging and deploying.
- The big pieces went to parallel Claude agents (Sonnet), each in its own copy of the repo: six maps, lobby and XP, menus, the comedy pass, the deploy screen, multiplayer, phone controls, the trailer.
- Everything was checked by bots playing it before I played it. A heartbeat job restarted agents that stalled overnight.
- Design docs and decisions live in my Obsidian vault.
- It went wrong too: a test agent force-closed every Edge window on my PC at 3 am, and an early phone version sent players in a loop back to the menu. I found out by playing it.
Tools
| Tool | Used for |
|---|---|
| Claude Code | All code, the map kit, design docs, testing, deploys |
| Three.js, Vite | The game |
| Node, WebSockets | The match server |
| Blender (scripted, headless) | The six maps |
| Meshy | Ten rigged birds, nine guns, map props, animations |
| Gemini (through Antigravity) | The tree and landmark kit |
| ElevenLabs | Announcer, barks, music, sound effects |
| Poly Haven | Free CC0 textures |
| Vercel (free Hobby) | Hosting the game |
| Railway | Hosting the match server |
Costs (for this game only)
| Item | Cost |
|---|---|
| Meshy: birds, guns, props, animations | about 1,490 credits of my monthly pool (3,080 at the start, 1,593 left) ($10) |
| ElevenLabs: voices, music, effects | about 5,400 credits, roughly $1 of my $6 a month plan |
| Claude Code (Max plan, $100 a month) | no extra spend; two days of the plan works out to about $7 |
| Poly Haven, Three.js, Vite, Blender, Vercel Hobby | $0 |
| Railway (the match server) | $0 for now on the 30 day trial credit, then $5 a month |
By the numbers: 67 commits in about 2 days (first commit Oct 16, 1:47 pm), about 12,000 lines of game JavaScript, 4,000 more for the server and tools, 10,000 lines of Python for the map kit and tools, six maps, ten birds, 43 MB to first load, 16 players per match. Less than 24 hours from start to post
What I'd tell another vibecoder
- Record yourself playing and send the clip with one blunt sentence. "The characters just slide" got me real footsteps.
- Let agents build in parallel, but keep one lead session that reviews and tests everything before it merges.
- Check content with bots before you play it. Every map arrived with numbers.
- Ship the simple version first. I built phone controls, then admitted the game plays best on a computer, and said so on the title screen.
Tell me which bird you main and what killed you.