I Added 30 Badges to Gapshot. It Changed How People Play.

Gapshot started as a pure high-score game. Adding a badge system gave players a reason to come back that has nothing to do with beating a number — and the engineering behind making them feel instant was the hard part.

Gapshot

Gapshot started its life as a pure high-score game. You tap, you survive, you try to beat your last run. That's the whole loop, and for a long time I was happy with it.

But there was a quiet problem. The only goal was the score, so people would play for a few minutes and put it down. There was nothing pulling them back the next day, and honestly there was no reason there should be. A high score is a ceiling. Once you hit it, you're done.

This update is my attempt to fix that without betraying what the game is.

30 badges, and not all of them are about score

The easy version of a badge system is "score 100, score 500, score 1000." I didn't want that, because rewarding the same thing over and over gets boring fast. So I spread the 30 badges across a bunch of different motivations.

Some are score milestones, sure. Some reward big combos. Some are for collecting golden rings. But the ones I'm happiest with are the odd ones:

A high score never made anyone open the app on a Tuesday. A streak does.

That streak badge is doing more for retention than anything else, and it lines up with something I wrote about earlier: I don't want to manufacture engagement with timers and guilt. A streak you choose to keep is different from a life system that punishes you for leaving. One is a goal. The other is a leash.

The hard part wasn't the badges. It was making them feel instant.

I really didn't want badges to appear on some summary screen after you die. I wanted them to fire the moment you earn them, mid-run, while you're still playing and it actually means something.

That sounds trivial until you remember you're now checking unlock conditions inside the game loop, and that code has to be fast or the whole thing stutters.

So I split the work in two:

The live check also bails out the instant you've already earned every in-game badge, so a veteran player who has them all pays almost nothing on every frame.

The interesting engineering in games is rarely the feature itself. It's making the feature feel immediate without paying for it sixty times a second.

I lost a whole day on the scrolling

Thirty badges don't fit on a phone screen, so the badges view scrolls. A plain scroll worked, but it felt cheap and a little dead.

So I added the things you don't consciously notice but absolutely feel: momentum, so the list keeps gliding after you flick it, and a rubber-band spring-back when you drag past the top or bottom. It is a genuinely silly amount of effort for something nobody will ever mention. But you notice the absence of it immediately. That polish is a lot of the difference between "indie hobby project" and "this feels like a real app."

Badges are also shareable and they sync to your account in the cloud, so they're tied to you and not stranded in local storage on one device.

What I'd tell myself before I started

Achievements aren't decorative content you bolt on at the end. They're a retention feature, and what you choose to reward matters far more than the code that unlocks them.

The badges that reward showing up, and playing carefully, changed how people play far more than the flashy high-score ones did. That surprised me, and it shouldn't have.

If you want to see them, Gapshot is on the App Store. Go thread the gap, and maybe start a streak while you're at it.

Gapshot is free on the App Store for iPhone.

Download on the App Store