← Devlog
Stewry

Initial floor layouts are hardcoded

The first stretch of every Stewry floor is hand-placed rather than generated — a deliberate compromise that makes the opening seconds readable.

By Afzaal Ahmad Zeeshan

The same floor with and without a hand-placed opening. Generation takes over once the player is already moving.

Stewry’s floors are procedurally generated, but the first stretch of each one is not. Those opening tiles are hardcoded, placed by hand.

This started as a shortcut and stayed because it turned out to be the right call.

Why the opening cannot be random

A generator that is free to do anything will eventually open a run with an obstacle you had no time to read. That is not difficulty, it is a coin flip — and losing a run in the first two seconds to a layout you could not have anticipated is the fastest way to make a calm game feel unfair.

Hand-placing the opening fixes the one part of the run where the player has the least information. You get a few metres of clear street to find the rhythm, and generation takes over once you are moving.

The cost

The obvious downside: the first seconds of a floor are identical every time. Replay a floor enough and you stop seeing that stretch at all.

That is an acceptable trade for now, though it is on the list to revisit — most likely as a small pool of hand-authored openings chosen at random, rather than one fixed layout per floor. Same guarantee of a readable start, less repetition.

What generation still owns

Everything past the opening: obstacle placement, coin lines, and the pacing of the gaps between them. Each of the five floors has its own vocabulary of pieces, so the generated street reads as belonging to that floor rather than as generic filler.