The garage became a bay on a station, and the simulation never noticed

No. 11

We moved the whole game somewhere else. The renderer needed a reskin, the economy needed nothing at all, and the only thing that really broke was the website — which spent four days describing a place the game no longer had.

The game used to be set in a garage. You dug it out, filled it with printers, and grew it into a warehouse. As of a few days ago it is a fabrication bay on a station, the walls are bulkheads, and there is a starfield through the porthole.

That sounds like the kind of change that costs a rewrite. It did not, and the reason it did not is the only genuinely interesting thing about it.

What actually had to change

A station module interior is a room with walls and machines on a floor. A garage is a room with walls and machines on a floor. The renderer draws rooms with walls and machines on floors.

So the largest line in the estimate went from rebuild the world to reskin the room, and most of what shipped was surface: wall material, floor material, a porthole with stars behind it, and the strings that name the place. The camera arithmetic was not touched. The decision that one room fills the screen at a time was made months ago for reasons about legibility on a phone, and "one wide deck" became "one wide module" without a single number moving.

The economy did not change at all. Not adjusted — untouched. Printers still make parts, parts still become products, products still fill contracts. A part that warps in open air still warps, and for the same reason it did before, because that reason is about the material and not about the postcode.

Why it was cheap, stated as the thing it actually was

There is a rule this project has followed since very early on, for reasons that had nothing to do with any of this:

The simulation imports nothing from the renderer. It uses whole numbers for money and time, and it never reads a clock — the current time is always handed to it.

That was done for testability, and later for a server that does not exist yet. It has been mildly annoying to maintain. Every so often something obvious would be easy if the simulation could just ask what time it was, and the answer was always no.

The payoff arrived in a currency nobody was saving up in. Because the simulation had never been told where it was, it could not object to being moved. There was no code that believed in a garage. The fiction lived in the renderer, in the strings, and in the art, and all three of those are things you can repaint.

A boundary you maintain for one reason pays out for a different one. That is not a plan you can make. You cannot predict which wall will turn out to be the load-bearing one. What you can do is keep the walls honest, so that when you do want to move the house, you find out it was never nailed to the ground.

What we got wrong

The setting changed on the third of September. The website went on describing a garage until today.

Every page said the old thing. The one-paragraph description that search engines and answer engines quote said it. The press kit said it, and offered four screenshots of a place that no longer exists — which is worse than saying it, because a journalist would have used them in good faith and published a picture of the wrong game.

Nothing caught it, because nothing was watching. This repository has a gate that scans the built site for words we have promised not to publish and claims that would become retractions, and it is a good gate: it has caught real problems, including one that had been live for days. But it checks the copy against a list of rules. It has no idea what the game is currently about, so it cannot tell that a true sentence has quietly become a false one.

That is a familiar shape here. We have written before about checks that pass while looking at the wrong thing, and about a number that was measured correctly and was still false because the world had moved underneath it. This is the same species, applied to prose:

A sentence that was true when it was written does not report that it has expired. Somebody has to go and look.

The honest fix is not a cleverer gate. Nothing automatic is going to read a design decision and work out which paragraph on a marketing site it just invalidated. The fix is that changing the premise has a step in it that says and now go and change what you told people, and that step did not exist. It does now.

What is here and what is not

The bay, the station it sits in, and the ship growing in the yard are all real and all in the build. The first loop closes in about six minutes from a cold start with nothing granted: clear some floor by hand, take an order for six brackets, wait, collect, deliver, and the wallet reads $75.60. That is measured from a real save, on a phone, with the developer spawn switched off.

There is more in there than this post describes. Some of it is not finished and some of it we have not decided how to talk about, and this devlog's standing position on that is the boring one: anything we have not described has not been announced. Treat the absence of a thing here as not announced, not as not in the game.

The screenshot on the front page is cropped to the floor for exactly that reason. The full frame has interface in it that belongs to a conversation we have not had yet, and showing less seemed better than implying more.