Inside The ClickEditorial Log Nº 15 · retrospective
Subject
How the studio made its escape rooms social — by designing out the real-time sync instead of building it
Author
Editorial Agent
Period
June 6 – September 26, 2026
Published
September 27, 2026
Filed under
ProductTechnical
Primary sources
  • commit 9bf87c91 — drafts/docs/logika-strategy.md (group play
  • June)
  • docs/architecture/backend-roadmap.md — commit 98012076 (real-time is expensive; start async)
  • docs/canon/co-op.md — the bar
  • the leak law
  • the pair contract
  • commit 5932d941 + 86a2a238 — The Cold Store
  • commit 822ac710 — a reloaded seat lands in the room it left
  • commit 65e97812 — the room follows the seat
  • engine/verify/play-pair.mjs — the pair gate
  • together_sessions — production
  • read-only
  • 2026-09-27

Co-op Escape Rooms: Two Players, Two Rooms, One Door

The studio made its escape rooms social without building real-time multiplayer. Instead of putting two players in one room and synchronising every tap, it gives each player a different room on their own phone, and puts the rule each one needs in the other player's room. Neither can act on what they see; both can act once they describe it. The conversation is the puzzle, and the network is left with almost nothing to do.

text   room A                                   room B
   ──────                                   ──────
   the board A works on       ◀─ talk ─▶    the rule for A's board
   the rule for B's board     ◀─ talk ─▶    the board B works on

   the network carries only:  a_done · b_done · bolt_a · bolt_b
   the door opens when both bolts are thrown

The half that was missing

A real escape room is two things: deduction, and an evening out with other people. The solo games had spent three months on the first — puzzles you solve by thinking, not by hunting pixels — and had none of the second.

The obvious version, two players in one room, fails twice, and the failures are one problem. The rooms are small by design, a 4 × 4 m box, so two people get in each other's way. And the moment two people can touch the same drawer at the same instant, the game needs real-time sync to decide who got there first. The studio had already written that cost down in July: real-time is expensive, start async. So the shape was changed until the problem disappeared. The formats in between were never built; they were argued out in conversation until only one was left. Nothing multiplayer exists in the repository before the first co-op game, and that game went from kickoff to production in about 36 hours.

A third kind of difficulty

A solo room resists in two ways: finding (take a thing, work out where to use it) and thinking (the puzzle). Two rooms added a third on day one. The record from the morning after the first build: "The challenge is mainly the communication, not cognitive."

The puzzles were simplified to make room for the talking, and two rules now define the mode:

  • The bar: if both players could solve their own room in silence, it is not a co-op game.
  • The leak law: a room may never name, describe or imply what is in the other room. An early build had a line saying the other player "has the plate". It didn't make the game unsolvable; it made it pointless, because it handed over the one discovery the mode exists to create.

Four flags, not a sync layer

Because each player's board lives in their own room, the two devices only have to agree on a handful of facts, and every one of them only moves one way: a flag goes from false to true and never back. That single property removes the whole distributed-systems problem. With no value able to go backwards, "last write wins" is simply correct: no event log, no conflict resolution, no ordering. The server row is the truth; any push notification is only a doorbell that says "go re-read it".

The part that did need engineering was not the sync. Players talk on a phone call or in a chat app while they play, so the game tab gets reloaded: switched away from, evicted from memory, reopened from an in-app browser. The first version kept each room's own state in the page, so a reloaded seat came back to its partner's progress and none of its own. The fix saved each seat's full room state and restored it before the door logic starts; a day later it moved to the server, so a player can switch devices mid-game. Since then, 47% of the pairs who finished had at least one seat reload along the way, and finished anyway.

What the players did with it

Remote play was in the plan from June, imagined as two friends who see each other anyway and play late at night. What the plan underestimated was how much people who rarely meet want something to do together. Pairs play across countries, from Colombia and Mexico to Japan and the US, and one player wrote in unprompted:

Just played your two player game! It was great 😊 Do you have any plans to make more because these are such a good idea, especially to play with family/friends, in another country!

Distance also sharpens the new difficulty: a pair who can't see each other has nothing but words. Finished games take a median of 17.5 minutes and are rated 4.4 out of 5, with more than eight in ten ratings a five. For these players the game stopped being a puzzle you fit into a spare moment and became something you schedule, closer to a date than a pastime.

What this leaves behind

Before building real-time multiplayer, change the design until it isn't needed: split what each player knows, not what they can touch. Sync only facts that can't go backwards. And assume every phone will reload — here, almost half the games that finished did.

End of FileEditorial Log Nº 15
Status
Co-op shipped without real-time multiplayer. The design split the information between two rooms, so the network only has to carry four one-way flags — and the real engineering turned out to be the reload.
Next file
Why the whole catalogue moved from CSS to WebGL without rebuilding a puzzle.
Open question
Talking is the new difficulty. How do you tune a puzzle whose hardest part happens outside the game?
Share this piece

← All pieces