TRANSMISSION // 2026-07-13

Teaching an AI to Write Escape Rooms That Don't Cheat

AUTHOR // Marcus Braun READ // 5 MIN TAGS // Building in public · Self-hosting · Gameplayce · AI
Neopunk cyber-apartment escape room: a sealed door with a dial lock and keypad, a neon skyline window, and abstract puzzle pieces converging on the lock.

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.

Two cards: play the built-in room, or generate a themed room with AI.
Name a theme — a lighthouse, a space kitchen, grandma's attic — and the model builds a whole room around it. Or just play the hand-crafted one.

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.

Escape Room play view: an object grid, a riddle about three potted plants, and an answer box.
Every object is a puzzle; solved ones hand over a fragment of the final code. Type an answer, or spend a hint. (This room — "The Old Greenhouse" — is the built-in one.)

"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.

A generated escape room scene with an object selected and its clue shown in an inspect panel.
Tap an object and its clue opens privately on your phone, never on the shared TV — so the group has to talk. This one's a generated "Neon Apartment Lockbox."

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.

The Gameplayce home page with featured game tiles.
The couch-first platform this all lives on: one screen, phones as controllers, zero installs.

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

// END_TRANSMISSION

// COMMS