Stoop
← All posts

I built a duck puzzle game. Now I'm building five more.

I didn't plan to build a duck game. Three scrapped prototypes later, here's how it became 300 levels of pipe rotation — and why there are five more duck games in the pipeline.

I didn't plan to build a duck game.

Duckt started as something else entirely — a "gate puzzle" where you'd open and close valves to route water. I built three prototypes. All three felt wrong. The mechanic was clever on paper and deeply unsatisfying to actually play.

So I scrapped it.

What I kept was the core idea: a puzzle where you're routing something from A to B. I switched from gates to pipe rotation — the classic Plumber mechanic, where you click tiles to rotate them until they connect. That part clicked immediately. Then I added a duck. Because of course I did.

Duckt = duck + duct. The duck stands outside the grid. So does the bread. You rotate the canal tiles to build a path between them. When the path is complete, you release the duck and watch it sail through.


what made it interesting to build

The grid is always fully filled — no empty tiles, no grass squares, no cheating. Every tile is either part of the solution path or a decoy, and you can't tell which until you start rotating.

The hardest part wasn't the game logic. BFS pathfinding for pipe connections is straightforward. What took real iteration was the locked tiles — tiles that can't be rotated, which force you to plan your route around fixed obstacles. Getting the Manhattan distance constraints right (locked tiles can't be too close together or the puzzle becomes unsolvable) took multiple generator passes.

Then I added breadcrumbs — small bread collectibles on tiles inside the grid. To release the duck, your path has to pass through all of them. On Easy puzzles there's one. On Expert, up to eight. The duck won't move until every crumb is on the route.

That mechanic came from playtesting — without it, the shortest path wins every time and the puzzle has one obvious solution. Breadcrumbs force detours. They make the grid feel like a maze rather than a logic puzzle.

300 levels, four difficulty tiers, a daily puzzle, and a share grid — all generated algorithmically, each one BFS-validated before it ships.


the design pivot I almost didn't make

The first version had a dark theme. Navy background, glowing blue water, tech aesthetic. It looked like a mobile game from 2019.

I switched to the Stoop paper palette — #f3e9d6 background, ink and terracotta, Caprasimo as the display font — and added a yellow quack strip across the top. The duck landed in a newspaper and slightly ruined it. That felt right.

The visual identity for the duck games is now its own thing: Quack Games, a sub-brand inside Stoop. Same paper background as the rest of the network, but with #FAC775 quack-yellow as the accent. Serious puzzles with a ridiculous mascot.


what's next: five more duck games

Duckt is the first Quack Game. There are five more in the pipeline.

QuackDrop is next. It's a Suika Game clone — you drop birds from the top, two of the same size merge into the next tier. Pisklę → Kaczuszka → Kaczka → Łabędź → Orzeł → Sowa → Paw → 👑 Mega Kaczka. Physics engine is Matter.js. Every merge plays a quack sound. It's going to be obnoxious in the best possible way.

After that: QuackSlide (Rush Hour with ducks), QuackStack (Block Blast format), QuackMatch (daily match-3), and QuackDoku (Sudoku with nine bird emoji instead of numbers, which is either a stroke of genius or a crime).

QuackDrop is the only one that makes sense on CrazyGames — it's an endless arcade game with long sessions and natural replay. The rest are daily puzzles, same format as Duckt.


The whole thing is free, no account required, runs in your browser. The duck games live at duckt.stoop.games and the rest of the Stoop network is at stoop.games.

If you play Duckt and your canal routes are suspiciously elegant, that's the BFS validator's fault. I just wrote the constraints.