Teaching an AI to Write Escape Rooms That Don't Cheat
Most of what I build lately is some flavor of "let the machine do the boring part." Gameplayce's new Escape Room points that idea at something that is supposed to be fun: you type a prompt, and a few seconds later you and your friends are standing in a generated escape room, each on your own phone, cracking a shared code before the clock runs out.
Generating a room is easy. Any model will happily hand you a premise, two riddles, and a four-digit code. The week I actually spent went into the gap between "a room" and "a room that isn't quietly broken." It turns out an AI makes a wonderful set designer and a terrible rules lawyer.

The model kept answering its own riddles
Every room ends on a final code assembled from fragments — each puzzle you solve hands you a piece. So a puzzle carries two different values: the answer you type to solve it, and the fragment of the final code its reward hands over. Those are supposed to be different things. I asked the model, in prose, to keep them straight.
It didn't. When I measured a batch on staging, four of eleven generated rooms accepted the same string for both — moon/moon, fox/fox, seven/seven. My favorite discovery: the worked example I'd put in the prompt to teach the model the right shape had both puzzles answering "noon." I was demonstrating the exact bug I was trying to stamp out.
The fix wasn't a better plea. I gave the room spec real fields — puzzles now declare their reward fragment, and the room declares how the final code assembles — and wired up three deterministic checks that run before any room ships: reject duplicate answers, reject a code whose fragments don't actually spell it, reject a fragment that leaks the answer. A join beats a model re-reading its own prose every single time.

"Solvable" and "fair" are not the same word
Those gates prove a room can be solved. They say nothing about whether a human staring at it would know how. I learned that play-testing a generated room and hitting a clue that read, roughly, "Order matters — read the order to whoever is at the lockbox." Read the order from where? The clue pointed at information it never actually stated; the real order was sitting in a different object entirely. Technically solvable. Feels broken.
I'd caused it myself. A note in the prompt said a clue's private text "must be said out loud to be useful," and the model read that as "write an instruction to relay information" rather than "state the information." So the rule is blunt now: a clue states its datum — the actual name, number, order — and never merely points at it. And the solvability judge picked up a second job: confirm the order you need to assemble the code is concretely discoverable from something in the room, not just that the fragments happen to spell it.

Story first, then the furniture
Early rooms were two riddles wearing a shared coat of paint. So generation now runs an outline pass before anything gets built: it writes a premise and a goal (both public — you see them in the lobby), one secret beat per puzzle, and a secret resolution. Then every object's copy is written against that spine. You earn a beat each time you solve something; the resolution lands when you escape.
The part I'm quietly pleased with: it doesn't fail open. If the outline call fails, the attempt refunds and the room doesn't ship. A room with no story is precisely what that step exists to stop.
The bits that make it feel like a night in
With the room finally coherent, the back half of the week was about making it feel like an event instead of a form. A room now opens like a book: a short synced intro where the host turns the pages and everyone's phone follows along, so the group reads where they are before the room asks them for anything. The clock starts when the book closes, not when it opens — and nothing photographs a group while they're just reading.
Then the mechanics. Minigame puzzles — dials, a keypad, symbol-matching — instead of only typed answers. A scoreboard at the end that credits who cracked what, listing everyone who was in the room, including the folks who solved nothing, because it should feel like the group won. And a recap on the results screen that walks the code back together: each puzzle in order, who got it, the fragment it gave up, the final code, the resolution. You get that recap whether you escaped or ran out of time — losing and never learning how it fit together is the worst possible ending.
And then I took the AI back out
Here's the turn I didn't see coming. After a week of wrestling a model into producing fair rooms, the most satisfying feature I shipped was the off-ramp from it. You can now edit a generated room — drag its hotspots around on the scene, resize them, drop a new one — and you can build a room from scratch with no AI at all: upload your own image, place your own hotspots, write your own clues. No generation, no points. Just a person and a picture.
That's the shape I keep landing on. The model is a fantastic first-draft machine and a hopeless stickler for rules, so the real engineering was never the prompt — it was the deterministic gates and judges standing between the model and the player, plus handing a human the pen whenever they want it. The AI writes the room. You get to make sure it holds together, or ignore it entirely and build your own.

If you want to poke at it, it's live at gameplayce.io. Bring friends — it's better loud.
// COMMS