Dev log

Notes from the dust

What changed, and what it cost to find out. Mostly the second thing.

17 Aug

Two platforms, one image format

The browser build grew black squares. Not everywhere — on scrap piles, on junk, on the scattered debris you walk past without looking at. The same build on a desktop was spotless, which is the worst possible symptom, because it means every test you already trust is going to tell you nothing is wrong.

The models had just been squeezed from 451MB down to 64MB, almost all of it by re-encoding one 2048×2048 texture per model down to something a creature 1.9m tall actually needs. The re-encode wrote progressive JPEGs. Progressive is a few percent smaller and decodes fine in every tool anyone would check it with — including the desktop player.

In the browser it decodes into hard black blocks. The untouched art, still baseline, was fine the whole time; that contrast was the tell. A few percent smaller, one entire platform broken, and a whole day spent looking at the renderer instead of the file.

15 Aug

Weather moved off the lens

A dust storm: flat orange light, the horizon closed in, grit in the air.

Weather used to be a coloured rectangle drawn over the finished frame. It dimmed the interface, it ignored depth — the far hills and your own boots got exactly the same amount of dust — and nothing about the place you were standing in actually changed.

Now it modulates the same fog, sun and ambient light the time of day and the region already modulate, so all three compose: dusk in the marsh in a dust storm is all three at once. A storm cuts sight from 256m to 110m, drops the sun to a third and pushes it orange, and lifts the ambient rather than lowering it — a dust storm is bright and flat, not dark, and getting that backwards is what makes fictional ones look like an eclipse.

The first attempt closed visibility to 46m, which is nearer than the camera sits. Every number said it worked. The picture was a flat sheet of tan with no world in it. Now the test looks at the frame too.

15 Aug

Affection had nowhere to go

Friendship was a number that scaled a reward and printed as “Lv 4” on a panel. In a game whose cast is the content, that is the wrong shape.

Everyone now has two things they will eventually tell you: one when they start trusting you, one when they properly do. They interrupt the next conversation rather than waiting in a menu, because a character moment you have to select from a list is not a moment. The gate is that a player who saves up and crosses both thresholds at once still gets the first beat first — an implementation that simply looks up the highest earned line passes every hand test and silently eats half the writing.

The badger at the gate is included. He takes no gifts and asks no favours, so his respect comes out of the ledger instead: one point per hundred aluminium paid. Which means the debt is the relationship, and that is the whole of him.

14 Aug

Making the clock worth learning

The cast had schedules for a while before those schedules meant anything. Knowing that the gecko fishes at dawn is only interesting if turning up at dawn does something.

So each of them will let you help with the one thing that defines them, once a day, and only while they are actually doing it. Help in the garden and you get seed. Mind the market stall and you get paid in metal, because that is who she is. Sit up with the professor and you get salvage off whatever he is reading — his pays best and is hardest to reach, because he is only awake between eight at night and four in the morning.

Testing something that depends on the time of day is its own problem: checking six characters across twenty-four hours by hand is a hundred and forty-four interactions, so in practice it gets checked at whatever hour you happened to start at. It now sweeps the whole day in one launch.

13 Aug

Six animals milling in a circle

The camp at midday, villagers at their posts.

Everyone used to pick a random point within seven metres of home and walk to it. Forever. Identically. At every hour.

Now the day has a shape. The gardener works the cool hours and shelters at noon. The scout walks a circuit of the perimeter because of one time she wasn’t looking. The owl sleeps through everything you do and is up all night, which is the single most legible piece of character in the whole table. The badger at the gate has no routine on purpose — he stands at the gate, and moving him would say something about him that isn’t true.

12 Aug

The day the desert stopped being a sheet of paper

The floodgate at dusk, water running, machinery lit.

Midday looked like one flat orange page. The cause was ambient light sitting at nearly sixty percent of the key light: with nothing separating a lit face from a shaded one, no amount of grading puts form back.

Ambient became a three-band gradient — cool from the sky, warm off the sand — and the sun started actually moving across the sky instead of being welded to one authored angle. Ten rounds of “a bit brighter” had each looked fine against the previous screenshot and collectively produced a sheet of blown-out yellow, so now the frames get measured instead of admired.

11 Aug

East, without a loading screen

The Drowned Exchange, concrete ruins standing in green water.

The world is one continuous heightfield six hundred metres across. Walk east from camp and the sand goes to standing water with no seam, no door and no wait: the Drowned Verge, its own palette, its own reeds, its own sound.

What lives out there is decided rather than scattered. Arriving buys you eight quiet seconds. Daylight releases wildlife; night releases something with more opinions; opening a cache for the first time interrupts with pressure. Then it all resolves into half a minute of nothing, on purpose, because pacing that never lets go isn’t pacing.