K.I.M. — A Top-Down Shooter in 30 Minutes

K.I.M. title screen

I had thirty minutes and no plan. I opened VS Code, thought about the old vertical shooters I grew up feeding coins into, and typed a description of one into a chat window. Half an hour later I had K.I.M. — Keep It Moving, a playable top-down arcade shooter running in the browser.

This is not a two-week project like Siegebox. It's the opposite — a single-sitting vibe-code experiment to see how far you can get before the coffee goes cold.

What is K.I.M.?

K.I.M. is a top-down, vertically scrolling arcade shooter. You pilot a lone fighter over a scrolling landscape, waves of enemies pour down from the top of the screen, and you weave through the gaps returning fire. Collect weapon-ups to fatten your spread, grab shields to soak a hit, and drop a missile when things get tight. Survive long enough and you punch your initials into an arcade-style highscore table.

K.I.M. gameplay

The name is the whole design philosophy — Keep It Moving. Standing still gets you killed. The fun is in the constant repositioning, threading between bullets and enemy ships while keeping your own guns pointed at the swarm.

The inspiration

It's a love letter to Twin Hawk (Toaplan, 1989) — one of those quarter-munching vertical shooters where a single plane takes on an entire army over a scrolling battlefield. I wasn't trying to clone it. I just wanted that feeling: the top-down scroll, the relentless waves, the tiny fighter against overwhelming odds.

How I built it

The whole thing is Phaser 3 — a mature, boring-in-a-good-way HTML5 game framework. Boring is exactly what you want when you're vibe-coding against the clock: the AI already knows Phaser inside out, so there's very little friction between "I want enemies to spawn in formations" and working code.

I didn't draw a single pixel or record a single sound. All the art, UI, and sound effects are from Kenney (CC0), the font is Kenney Future Narrow, and the music is a CrazyTunes arcade track. Free assets plus a capable framework plus a clear reference point is a ridiculous head start — most of my thirty minutes went into describing behaviour, not building plumbing.

The loop was the usual vibe-code rhythm: describe a feature, watch it appear, play it for ten seconds, describe the next thing. Movement first, then shooting, then enemies, then power-ups, then the menu and highscores to make it feel like a real cabinet.

Play it

  • Move with WASD or the arrow keys
  • Fire with SPACE
  • Missile with X
  • Or just tap and drag on a phone

It's live and free: play K.I.M. here.

The takeaway

Thirty minutes isn't enough to build something deep. But it's more than enough to build something fun — a real, playable game with a menu, a scoring system, and a difficulty curve — when you lean on a solid framework, free assets, and a clear idea of the feeling you're chasing. Sometimes the best project is the one you finish before you have time to overthink it.