← All work
CASE STUDY · ANDROID PUZZLE GAME

Droppl

Steer the disc to the flag in as few moves as you can, while the board keeps finding new ways to complicate one simple objective.

Soon releasing on Google Play! Free, with no ads and no account · Privacy policy
Droppl home screen A Chess world level in play A Sunset world level
70
hand-picked puzzles
6
worlds, each with its own idea
36
levels in one Survival run
Every
level proven solvable by a solver
THE IDEA

A disc that only goes forward

The Droppl app icon: a violet disc with a white arrow, on a sky background

Your disc slides the way it faces, so you turn it, send it forward and try to reach the flag. Then the tiles join in: dash pads fling you along, springs jump you over walls, turntables spin you round, teleports send you across the board, and one Forward press can set off a whole chain.

There’s no clock, but each level has a move limit, and matching the best possible route earns three stars. Survival mode turns that into one shared bank of moves across a 36-level run, with gold pickups worth a detour if you can afford it.

It’s free with no ads, and the only purchase is an optional tip, which unlocks nothing.

Six worlds

Initiation: a small two-row board with the first tiles
WORLD 1
Initiation

20 levels that teach one idea at a time.

Cramped: a small board packed with special tiles
WORLD 2
Cramped

Small boards packed with surprises.

Chess: a chequered board
WORLD 3
Chess

8 × 8 boards with plenty of room to go wrong.

So Close: a board with a hedge wall near the flag
WORLD 4
So Close

Many routes nearly work, but only one is the best.

Sunset: a wide board against an orange evening sky
WORLD 5
Sunset

Wide boards in the evening glow.

Amazing: a hedge maze with a violet disc and an orange disc
WORLD 6
Amazing

Hedge mazes for two discs that move together.

HOW IT WAS BUILT

AI wrote a lot of the code, based on an original, human-grown idea.

The engine, the solver and the tests all have to match a plain-English rules document exactly, so nothing the AI writes can quietly change how the game plays.

A tested engine

The rules are written in plain Kotlin with no Android code, so every behaviour can be unit-tested on its own.

A solver that checks every level

A search finds each level’s best route, and the build fails if any level can’t be finished within its limit.

A level generator

Simulated annealing searches for boards with exactly one shortest solution. Worlds 3 to 6 came from it, and each level was then picked and named by hand.

A level designer in the browser

I can paint tiles, play-test, watch the solver’s answer and balance Survival runs, all using the real engine.

Sound made in code

Every effect is synthesised by a script, and a chain of moves climbs a musical scale as it goes.

Store art drawn by the app

The icon, feature graphic and all eight screenshots are drawn by the game’s own drawing code.

Part of Droppl’s Kotlin source: the BoardCanvas function that draws the board on its island, with plain-English comments above each part
A slice of the real code that draws the board. Every function starts with a plain-English comment saying what it does.
HUMAN CALLS

Decisions that came from watching people play

Buttons instead of tap zones

Tapping either side of the board to turn was confusing when the disc faced south, so big buttons replaced it, laid out like a Game Boy’s B and A.

Move limits instead of a clock

A puzzle about planning shouldn’t rush you, so the gap between the best route and the move limit sets the difficulty instead.

Free, with nothing to unlock

There are no ads, timers or accounts, and no data is collected. Anyone who wants to say thanks can leave a tip.

Droppl app icon
DESIGN

A tabletop you want to reach into

A tilted grass island with hedges and props, a starry night theme, and an app icon tested against every launcher shape.

Home screen Chess world Two-disc maze Sunset world Survival mode
Kotlin Jetpack Compose Compose Canvas Play Billing Python sound synthesis Built with Claude

If you’ve got an app idea, I’d be glad to help you get it onto a phone.

Send me a message
← All work Next: Meal Planner →