The puzzle graph - Jordi needs help from his friends to leave the store

Look at that green box on the right: Leave the Store.

That’s the goal. Simple, right? Jordi just needs to walk out of the convenience store.

But follow the lines backwards. To leave, he needs to pay Jatin for his energy drink. And to pay, he needs to find money AND get the drink from the fridge. Classic adventure game logic.

Now look at the yellow boxes: Helen’s Signal, Fernando’s Signal, Eric’s Signal.

All three must be completed before Jordi can leave. Three signals from three friends in three different apartments across Barcelona. Three LED buttons that light up a panel in the store.

Jordi can’t escape without a little help from his friends.

Building the Multi-Character Engine

To make this work, I needed to build something new: a character switching system.

How the puzzle system works in the editor

Now the game lets you jump between four lives at any moment:

  • Jordi — stuck in the store, waiting for something he doesn’t understand
  • Eric — in his apartment, with a black LED button on his wall
  • Fernando — in his place, with a yellow LED button
  • Helen — in her room, with a violet LED button

Click a character’s initial in the corner of the screen, and you’re suddenly someone else. Somewhere else. Seeing the city from a different window.

The engine remembers everything about each character: where they were standing, what they picked up, what they’ve done. Switch away from Fernando, play as Helen for a while, switch back — Fernando is exactly where you left him.

The Moment It Clicks

Here’s my favorite part.

When Eric presses his LED button, the game doesn’t just flip a switch silently. Instead, we cut to the convenience store. Jordi looks up at the panel.

“Hm? The black LED just turned on…”

Then we fade back to Eric’s apartment.

A small moment. But it shows you the CONNECTION. Your action as Eric rippled across the city to Jordi. You see the effect. You understand the web.

What I Built Today

This POC required several new systems working together:

Character State Persistence — Each character maintains their own position, inventory, and progress flags. When you switch away and come back, everything is restored exactly as you left it.

Room-Character Binding — Each character is tied to their starting room. Jordi owns the convenience store, Eric/Fernando/Helen own their apartments. The engine tracks who belongs where.

LED Signal System — A global flag system that tracks which LEDs are on. The exit door checks all three flags before allowing Jordi to leave. Simple but effective gating.

Cutscene Triggers — When any LED toggles, the game fires a cutscene that briefly shows Jordi noticing. This required fade transitions, temporary camera control, and state preservation so we can return exactly where we were.

Puzzle Dependency Graph — The visual editor now syncs bidirectionally with JSON files. I can rearrange the graph visually and positions save back to JSON. Everything version-controlled, no hidden state.

The POC proves the multi-character concept works. Next: giving each apartment actual content beyond just a button.


Building Pulp Friction with AI assistance. One scene at a time.