How this was made
A side-scrolling city that never ends, built as an experiment in how much life you can give a picture that is mostly standing still.
Everything is drawn twice
The world is painted onto a canvas just 320×180 pixels — then blown up four times to fill the screen with smoothing switched off. That second step is the whole trick. Every pixel becomes a crisp 4×4 block and nothing can ever land on half a pixel. Draw straight onto a big canvas instead and you get soft, shimmering edges the moment anything moves. Pixel art isn't a filter you apply; it's a resolution you commit to.
A street with no end
The city is seven layers deep, and each layer is a handful of tiles repeated forever in both directions. Walk far enough and you'll meet the same building again — but never the same lit building. Each tile asks a seeded random number generator "what am I?", using its own position as the seed. Tile 400 always has exactly the same windows lit as tile 400, and different ones from tile 12, even though both are painted from the same artwork. The city stays consistent without anyone having to remember it.
For that to work, any tile has to be able to follow any other. So the outer 8 pixels of every tile are left empty — a gutter — and no drawing ever runs up to the join. You can't see the seams because there is nothing at them.
Depth by speed, and by colour
The layers scroll at different rates: the sky doesn't move at all, distant towers creep, the railings in front of you fly past. That's parallax, and it's the oldest trick there is. Less obvious is that distance has to change colour too. Far layers get a wash of haze that lifts their shadows and mutes their contrast, the way real air does across a mile of city. Get it the wrong way round — distance darker than the foreground — and the whole image goes flat instantly.
The lights aren't drawn on
Nobody marked where the windows are. A tool reads each piece of artwork and finds the rectangles that are darker than the wall around them; those are windows. The same pass finds rooftop parapets to hang signs from, ledges for pigeons to land on, and shop fronts to spill light onto the wet pavement. The city's behaviour comes out of its own picture, which means redrawing a building gives it new windows for free.
Ninety percent still
The target was that roughly a tenth of the screen is changing at any moment and the rest is perfectly static. It sounds unambitious. It is the entire difference between a city at night and a screensaver. Motion is measured rather than guessed — the share of screen area that genuinely changes between frames while you're standing still — and it currently sits near 15%, having been pushed up on purpose to make the traffic feel busier.
Legs that don't skate
The walk cycle doesn't run at a fixed frame rate. It advances according to how far the character has actually travelled, divided by his stride length. Speed up and the cadence speeds up with him; slow down and it slows. Drive it from a timer instead and the feet slide along the ground like a badly dubbed film. The footstep sounds and the little puffs of dust hang off those same contact moments, so a step is heard exactly when a foot is planted — there's no second clock to drift out of time with the legs.
Two kinds of sound
Music and atmosphere stream from long files looping underneath everything. Short sounds — footsteps, a siren, a bus — are handled separately, because they have to overlap without cutting each other off.
Looping music seamlessly is harder than it sounds, and each of the three background tracks needed a different answer, decided by the recording rather than chosen. The song fades itself out at the end, so the next play begins five seconds early and rides in over that fade — the record's own ending does the crossfade. The rain fades at both ends, so its two ends simply cross each other. The city ambience fades at neither and would otherwise stop dead, so it has to be faded down by hand.
Where the art came from
Every image started as a written prompt, and none went straight into the game. Image generators cannot actually produce pixel art — they produce a large picture that resembles it, with blocks roughly square and colours roughly right. "Roughly" is fatal at four times magnification: a block 3.8 pixels wide instead of 4 is a ragged edge, and a colour two shades off is a patch that visibly doesn't belong. So everything passes through a conforming tool that snaps the art to the pixel grid, forces every colour onto a locked 23-colour palette, hardens the transparency and checks the gutter rule — then prints the numbers, so a bad generation is something you can measure instead of a vague feeling that something looks off.
The bus
Most of these systems run alongside each other without ever noticing each other; the traffic has no idea the pavement exists. The bus is the exception. It reads the very same data that decides where the shelters are placed, picks the next one ahead of it, eases to a stop, waits a few seconds with its air brakes hissing, and pulls away. It's a small thing. It's also the moment the city stops being several effects layered on top of one another and starts being a place.
Made with pixels, patience, and a great deal of measuring.