This one started with a riddle. My oldest son was going through his riddles phase, and one day he told me one I simply couldn't solve. I still can't. So I did the only sensible thing: I made a game with a hundred more.
One riddle, a hundred doors
This time there was no design meeting with the kids. I took the idea and ran with it: a hundred doors, a hundred riddles, and only one door in each room tells the truth. Pick the wrong one and you fall into the void. Pick the right one and you keep going, all the way to the end. Anyone who has ever queued at an Italian post office knows the feeling.
The first commit, on a Saturday evening in July, contained no code at all: just a 1,500-line game concept and a prompt to get an AI started on the first prototype. One sentence in it never changed: when you lose, you should think "I should have noticed that", never "the game cheated".
69 commits in one day
The next day I built the first prototype in plain HTML, CSS and JavaScript, with no framework and no build step. Sixty-nine commits in a single day. Prehistoric habits die hard. By the end of it the game had found its story: you are the Last Cartographer, returning to a kingdom that was deliberately erased from every map, guided by a voice that helped erase it and can only confess in riddles.
Then it had to look like something
Three weeks later the iPhone version took its first real screenshot, at 13:25 on 31 July: two tan discs on a navy gradient, above a panel of stock iOS switches. My notes from that day were brutally honest: the app was "functionally ahead of its visual quality". Eighteen hours later, it looked like a game.
Choosing a look
I put three art directions side by side, each telling the same six moments: a castle, a terrace, a traveller on a bridge, the kingdom as a map, a room with three doors, and a door opening. The warm Sunset Pilgrimage won. The inspiration was games like Old Man's Journey and the Alto games, with their flat storybook shapes, layered colours and paper warmth. I never fed the AI their screenshots, though. I wrote the style down as rules instead.
My first shortcut was to show the AI the winning board as a style reference. Every single result got worse, because it copied the layout along with the look. Plain written rules beat the pictures, so in the end I trained my own small style model on 29 hand-picked images.
Nobody draws anything
Nothing in False Door is drawn by hand. The doors, the lamp and the brass plaques are drawn by code, so the same input always gives exactly the same picture. The painted rooms and landscapes come from FLUX, and every room is painted with empty doorways so the code can put the doors in afterwards. That's how a door can actually creak open.
There's another reason the machines handle the colours: I'm colourblind. So we direct the art by light and dark first, every batch is checked in greyscale before I even look at it, and the palette is enforced by the computer rather than by my eyes. Which means a game known for its warm amber sunsets was art-directed by someone who sees them a little differently from you.
Building my own forge
Finding a style means trying hundreds of images and throwing most of them away, and on paid image services every single attempt costs money. So instead of feeding credits into someone else's machine, I built my own pipeline: Fucina, Italian for forge, driving ComfyUI on a Windows PC with a very large graphics card. Now I can experiment as much as I like and get it wrong as often as I need to, and the only bill is electricity.
It's the difference between eating out every night and making pasta at home: more work up front, much cheaper in the long run, and you're free to experiment with the sauce. Claude Code on my Mac drives the whole thing remotely. Prehistoric me would not have believed a single word of this paragraph.
Meet the Caretaker
The voice guiding you became the Caretaker, voiced with ElevenLabs. He lies only while his lamp burns crimson, so every room is fair if you pay attention. The countdown timer became the Pursuer, a darkness closing in with no numbers at all. And choosing a door got its own little ritual: a black curtain, silence, then either a creak and light, or a long fall into the void.
From endless to a hundred
The first plan was an endless game with a whole cast of narrators: a liar, a rule-bound robot, a bored game-show host, and a cat that might understand the building. During the very first TestFlight upload it became a finite journey with a proper ending instead, and a week later it became The Hundred: one hundred doors to the truth.
The money plan went round in a full circle too: in-app purchases and paid ad removal, then ads plus a supporter purchase, and finally, in my own words, "final decision: admobs only, no IAP". So it's free, with ads, and there's nothing to buy. After eight rounds of TestFlight builds, notes and screenshots, I finally finished the whole campaign myself in September.
And the original riddle?
Still unsolved. I've now made a hundred riddles of my own, and solved every one of them. Just not that one.