dev log / July 12, 2026

Devlog 1: The Street

Exit Liquidity is a game about owing Sal twenty thousand dollars. You trade all day; Sal collects at the bell.

It wasn’t always a game. The trading engine came first: order book, fills, five days of prices. It worked, but the whole thing played like a toy. Numbers up, numbers down, nothing at stake but the numbers. The turn was giving the debt somewhere to live: a street, a night, a bar you haven’t earned. That started with Sal’s, and with the man outside it.

Sal’s opens on night three. There’s a man at the door deciding who gets in. He’s four pixels wide.

The enforcer at work On loop: he smokes, he checks the street, someone shows up wanting in. Sometimes they get the nod. Sometimes they don’t.

The problem

Between trading days, the game showed you a menu. The fiction says there’s a whole world you’re in debt to: a newsstand printing tomorrow’s rumors, an exchange, a back room, a lender, Sal’s bar. The menu showed you five labels.

The night menu, before the street The night menu, pre-street. It did the job.

The reference point we kept coming back to was Turmoil, the oil-drilling game. The drilling is fine. The part that sticks is the village between rounds: a saloon, a bank, a few characters with faces, so spending money feels like walking into a building and dealing with someone. We wanted that, shrunk down and moved to night.

This is crude pixel art, and it stays crude. The bet was on arrangement over skill: even bad drawings, put together with intent, can turn a menu into a place. And the whole point of a place is that walking down a dark street to borrow money feels nothing like clicking LENDER.

The first version, live v1, live on the site. Signs wrapping vertically, buildings like scaffolding. It went up. It wasn’t a place.

The lab

First move: get the art out of the live game. The street went into standalone HTML labs, one canvas with sliders for anything up for debate, then into a building workshop that took one facade at a time and turned each proposed change into a checkbox. Flip it on, flip it off, compare.

Design lab v2 v2 in the lab. Five buildings, one personality between them.

The building workshop The workshop. Most of the street was decided one checkbox at a time.

The loop: screenshot, plain-words verdict (“his back should touch the chair”), rebuild, look again. The rebuilding half was AI. This street was drawn with Claude Opus 4.8, Claude Fable 5, and Gemini Pro in the mix, with Fable 5 doing most of the heavy lifting, honestly because it was the new shiny thing and I wanted to see what it could do.

The charm of drawing with a language model is that it can’t really draw. There’s no averaging a million pictures into a plausible vibe, the way an image generator does. You build the picture together, one argument at a time: where the floor line is, what a chair back has to touch, why a five-wide awning can’t center on a six-wide door. It fails the way a person fails (confidently, geometrically) and it gets better the way a person does. The discipline mattered more than the drawing: every composition dumped to ASCII and machine-checked before a human ever saw it, plus a hard rule, adopted after two find-and-replace disasters, of regenerate from source, never patch pixels in place.

Six fights

These aren’t rules — the town isn’t finished. They’re the six things we went the most rounds with before the street started feeling alive.

1. Legibility is silhouette against contrast

Interior detail dies at street scale. A black figure against a lit gold window reads from across the room; a lovingly textured paper rack reads as static. In I LEGO N.Y., Christoph Niemann builds the Statue of Liberty from a few green Lego bricks and one yellow one: the raised arm, the torch, nothing else. Keep what identifies the thing; delete the rest.

The street lamp Dark pole, lit head, pool of light on the sidewalk. That’s the entire object.

2. Everything scales to the door

The one object every player knows the size of. Draw the door first. If a person doesn’t fit through it, the person is wrong.

3. People get their own resolution

The street runs three pixel sizes: buildings in fat blocks, furniture at quarter size, people at eighth. A person drawn in building-pixels is a golem. Signage eventually claimed a fourth size, because three-pixel-wide letters make every B look like an E.

4. Furniture obeys physics

Floors under everything. A reclining man’s back touches his chair; leave one column of gap and he levitates. Feet up on the desk means heels only. Invisible when it holds, glaring when it doesn’t.

The newsroom The reporter. Not a good drawing, but the back touches the chair and the heels land on the desk, so it reads.

5. Earn your labels

If every building gets a sign, signs are decoration. The back room has no billboard, just its name painted down the wall and a bulb that pulses like the wiring’s bad. That restraint is what makes the NEWS sign next door mean something.

6. Center means center

The Desk’s sign sat at column 22 over a door centered at 21.5. Something felt off for an hour before we found it. An even-width thing cannot center on an odd-width thing; you fix the widths, not the nudge. Your eye catches a half pixel. It just can’t tell you what it caught.

Getting it wrong, specifically

The clock took three tries. First a fine little medallion, basically a coin stuck to the facade. Then bigger, at half the building’s pixel weight. Closer, still ornamental. The winner is built from the building’s own fat blocks: crude gold disc, hands that tick as whole pixels. It looks like masonry with a clock in it. It ticks.

Clock, attempt one Attempt one: a clock for a dollhouse.

The clock, ticking The clock, as it is in the game now. The minute hand is two pixels going dark. That’s the whole mechanism.

The watertower went from squat storage tank to New York rooftop without gaining a pixel. Same budget, redistributed vertically: conical cap, steel band, X-braced legs. Iconic silhouettes are mostly proportion.

The back room, finished The back room, in the game now: lattice tower, vertical name, bad wiring on purpose.

And one bug: moving the finished buildings into the live game, the Desk’s rooftop mechanicals appeared floating in the sky. The roof-finder scanned top-down for the first wide row of pixels, and the billboard is wider than half the building. The code concluded the sign was the roof and parked an elevator housing on it.

Mechanicals on the sign Structurally reasonable. Architecturally slanderous.

Back to the doorman

Right now he’s a black silhouette against a dark wall, which means he barely reads. The plan is to light the ground behind him: let him stand in the spill from Sal’s doorway so the street picks him out, instead of recoloring the man himself. That’s the next fix, not this one.

None of it touches the economy. All of it decides whether night three feels like something opened.

It moves now

The rest of the street got a pulse too: the clock ticks, a red beacon strobes the lender’s roof from night four, and each building plays one cinematic when it first unlocks: letterbox bars, the facade flickering awake, a name card that slams in with a thud. The exchange’s cinematic ends with a bell. Of course it does.

The street, live The street, live: the clock ticks, the beacon strobes, the doorman decides.

The whole game — market sim, order book, the street, the sounds — is one self-contained HTML file, about 3,800 lines, no assets. The sprites are text. The sounds are oscillators. The town cost four hundred lines.

Walk it yourself: play Exit Liquidity.

There’s more coming; a market engine with opinions of its own, for one. If you want the next post when it lands, the signup box is at the bottom of the page; replies go straight to me.

One more thing: there are buttons just below this post. One tap tells me what you want more of next: process, code, art, or numbers. It steers what gets written. Use it.

was this worth your time? one tap steers the next post —
THE DAILY SQUIRREL

The Daily Squirrel, by email

New Exit Liquidity classes, new dev logs, and first crack at the discovery engine when it clears its gate. Daily in spirit, occasional in practice. No spam, leave whenever.