Back to all the work

A game I built to find out whether I could.

I had just been working on the dog waste business, so poop scooping was in my head, and a dumb pooper scooper game sounded funny. That is the entire origin. It was not built to go with that business and it does not connect to it. The subject was just sitting there.

What I actually wanted was to find out whether I could get a working game out of this at all. I had never built one. It was meant to be simple and a bit stupid, something I could play for a minute to confirm it worked, and then push on from to learn how far the thing went.

What came back was more than that. I played it, thought it was cool, and put it down. I was in the middle of two much larger projects and I had already got my answer.

Five phone screens side by side. Speed Scoop, a sunny street with two dogs and a mess with a red ring closing on it. Dodge and Scoop, a green park with three lives and objects falling. Puzzle Scoop, a four by four grid with four messes numbered in order. Stealth Scoop, a purple room with a detection meter, a police officer and five messes. Boss Job, a vampire above a full health bar with the phase name across the top.
All five modes, in the order the game lists them. Everything on these screens is an emoji or a shape drawn in code.
What is in it
01

Five ways to play

Each one is its own mechanic.

Tap timing against a closing ring. Dogs wander the yard and leave messes, each one with a timer drawn around it, and more dogs arrive as the round runs down.

A falling object dodge with lives and a fall speed that climbs for the whole round. A sequence memory puzzle where the order is the puzzle and a wrong tap flashes the board. Line of sight stealth, with a patrolling officer, a vision cone, and a detection meter that fills if you reach for a mess while he is looking at it. Multi phase boss fights that chain the other mechanics together in a single run, on a written phase script per boss.

02

A reason to keep playing

Experience points and player levels, on a curve that makes early levels quick and later ones long. Level gated content, eight themed zones with their own palette, hazard and boss, opening up as the level climbs.

A collectible roster. Fourteen dogs across common, rare and legendary, each with its own unlock rule, and a screen that fires when a new one lands. Per mode high scores and a one to three star rating on every run.

03

Something to spend it on

An in game currency earned every run and spent in a shop. Upgrades that change how the game plays, five of them on their own cost and effect curves: longer rounds, a coin multiplier, a radar, a wider tap target. The running game reads them live, so buying one is felt in the next round.

A cosmetic wardrobe of six costumes on separate unlock rules.

04

The part that brings people back

This is the part that transfers furthest out of games.

Daily challenges that generate themselves, four types, each with a target, a bonus and a twenty four hour expiry. Login streak tracking, with real date handling for what counts as yesterday. Local notifications, one in the morning when a new challenge is up and one in the evening when a streak is about to break. Saved progress that survives closing the app.

05

Built and not switched on

An in app purchase flow on StoreKit with five products defined. Game Center sign in and leaderboard posting. A season pass screen and a leaderboard screen, both finished and not reachable from anywhere in the game. Rewarded ad hooks, left as a stub for a real ad network.

All of it is in the project and none of it is connected. It got built while those ideas were live, and then I tabled them for the next time I went at it, and that time has not come.

What the test answered

The question was whether I could get a real game out of this. The answer came back yes, and with more in it than I asked for. I never took a proper inventory of what was in there until I came back to write this up, and most of it was news to me.

I would still like to make games. Not right now. This one sits here as the first.