Skip to content
Muhammad Al-Saifi

Romana

A 2D puzzle game for Android, in development.

building

Role
Game design, art direction
Platform
Android, built in Godot
Language
Egyptian Arabic
Status
In progress

A boy crosses the back lightwell of an old Cairo building during a power cut, on goods lifts that move by weight alone. I built the whole game on one rule about weight, and designed everything around it to make that rule easy to read and hard to see through.

Three cabins on two scales, with the grandmother waiting in one.

Designing the fun

A good puzzle is simple to read and hard to see through. The fun is the moment of insight, when a situation that looked impossible suddenly makes sense. So each level exists to give exactly one of those moments, and nothing is there as filler.

The rule is small. Cabins hang in pairs from a scale; the heavier side sinks; the boy can step across only when two floors are level; and he weighs as much as one sandbag, so where he stands is part of the puzzle. A scale has three positions, not a range. That keeps floors at exact heights, so “level” can be read off the screen, and it creates the game's signature trap: a throw can change every number in view and move nothing.

I designed levels backwards from the trick. A solver explores every state of a level and records how long the shortest solution is and how many there are; I keep a level only when its solution is unique and turns on one idea I can name, and when the obvious plan almost works. Before any art existed, I compared three versions of the throw this way and chose the one that produced deep levels rather than trivial ones.

The Romana title screen.

Readable before beautiful

The picture has to carry the puzzle, so the art follows a strict hierarchy: which floors are level comes first, then where the boy is, then what each cabin holds, then which way each beam tips. The building stays low in contrast and never competes. Every choice is checked at phone size: if you cannot tell at a glance which floors are level, it fails, however good it looks.

Every hidden rule gets a signifier of its own: a total on every rope, a mark for sinking or rising beside it, lit rungs where two floors meet. When a throw moves nothing, the boy says why. The player should never have to guess what the system is doing.

The player chooses and the boy acts. Nothing is dragged by the finger: a tap hands him the sandbag, he hangs his lantern on the cabin's hook and lifts it, and brass hands point to where it can go. Agency stays with the player, while the action stays in the character, which keeps the world believable.

A reason for every puzzle

Reaching a cabin is not a goal, so every level is a rescue that ends at a door. The boy starts on a balcony fixed to the wall; a neighbour takes his hand and walks with him, and has weight of their own, the grandmother two and her cat one. The story is not decoration on top of the mechanic, it changes the mechanic: who you rescue changes the puzzle.

Nobody speaks to the player. There is no narrator and no instruction line under the levels; people in the scene talk in balloons, the boy mutters when something doesn't work, and the rules are taught by the order of the levels, each showing one law in the smallest level that can show it.

The opening: an evening in the lightwell.

Art direction

Hand-drawn side views, dark but warm, with Egyptian life taken from the street rather than from postcards: a worn downtown building, kerosene lamps, laundry lines, a clay water jar on a sill. The mood is eerie and warm at once, and the details are things a Cairene would recognise.

Everything the player looks at comes from one hand. The weight numbers are drawn glyphs on drawn tags, the icons are brass and enamel like the lifts, and the mechanism is a kit of parts the engine assembles, so beams and ropes always behave like the rule says.

The style frame for Romana.
The lift mechanism as parts.

A machine that could exist

I designed the lifts as a mechanism that could really be built, with nothing arranged for the puzzle's convenience. Old Cairo buildings have a back lightwell where goods were hauled up to the kitchens, so the cabins are goods lifts sized for sacks and a child.

Between floors, one rope runs over a wheel at the roof: to go up, the boy has to make the other cabin heavier, so whoever comes down carries him up. Alone, his own weight moved the cabin the moment he stepped in, which left nothing to plan. A hand brake, which such lifts have, holds the cabins while he loads them and turns the big lift into a puzzle of its own.

Whoever comes down takes him up.
Going up alone, using the brake.