Vibe Coding an Arcade Game
After messing around with AI-assisted-vibe-coding, I wanted to make a video game.
NEIGHBORHOOD WATCH is a browser-based arcade shooter where you drive a car with a mounted turret through an isometric neighborhood, blasting aliens. It lives in a single HTML file. About 2,700 lines of code.
I didn't write any of it.
The Pitch Session
I started like I'd pitch a show. Concept first, details later.
"Isometric alien shooter. You drive a car with a turret. Aliens attack from the edges. Buildings can be destroyed."
Claude generated a playable first draft. Rough as hell, but it moved. From there, the process felt less like coding and more like giving notes to scribblers in the room.
Play it. Feel what's off. Describe it. Repeat.
"I think the buildings can get damaged a little more quickly and we should see more debris. I didn't really notice it. Also, I wish the tracers from the vehicle gun came out of the barrel."
Changes made. Test again. Stack the next round of notes.
"Let's remove the rainbow color bands at the top and bottom of the cabinet. Let's name the game 'NEIGHBORHOOD WATCH.' And I wish the music had a melody. Something that could change key maybe in each level to escalate the mood."
That last note turned into a dynamic chiptune soundtrack that shifts to higher keys as waves progress. I couldn't have made it. But I knew how I wanted it to feel. That was enough.
Playtesting as Debugging
Games surface bugs differently than static tools. You feel them before you understand them.
"Sometimes the aliens get stuck inside the buildings and can't take damage. What if they come after the player if the vehicle gets really close?"
No idea why the aliens were clipping through geometry. But I described what I saw, suggested a gameplay fix, and Claude got back to work.
The gnarliest problem came after the game went live. "Plays great in Safari but not on Chrome. On the Mac in Chrome it was too fast. On a PC using Chrome it was too slow."
Turns out game development has a standard fix for this called "delta time," which makes movement consistent regardless of frame rate. I'd never heard of it. I just reported what I observed across the browsers, and Claude found the solution.
What Emerged
The final version has features I never planned: destructible buildings with debris, a top-5 leaderboard with persistent high scores, escalating music that ratchets up the tension each wave, and cross-browser compatibility.
None of this was in the original pitch. All of it came from playing, noticing, and talking with Claude Code.
The Takeaway
Vibe coding a game was different than building my widgets. Games demand feel. Timing. Feedback loops. You can't spec that out in advance. You have to play your way toward it.
If you're experimenting with AI building and wondering what else is possible, try something interactive that you’ll need to play to understand.
You'll be surprised how far you can get when the only requirement is knowing what feels right.
Stop scribbling for a few hours and start vibing!
You can play Neighborhood Watch on a Mac or PC.