FIELD NOTES — BUILDING
Belts, buildings and the art of not overlapping
Three days of rules for keeping machines, belts, the ground and the player out of each other: hip-height belts on legs, straight runs, one port standard and much bigger buildings.
A factory game is mostly an argument about who gets to stand where. Machines, belts, the ground and the player all want the same cubic meter, and most visual glitches in this genre are two of them winning at once. Between 24 and 26 September we rewrote the rules that settle it in Orebound. Here they are, with what broke on the way.
One tile, one tenant
The world is a grid of one-meter tiles. On any surface a tile holds at most one occupant, a machine or a belt, and both live in the same lookup, so "does this overlap?" has one answer.
Machines are rectangles anchored at their north-west corner. They rotate in quarter turns, and odd turns swap the sides: a 6×9 Steelworks turned once covers 9×6. A port is not part of the machine at all. It is the first tile outside the footprint, the belt's tile. The machine owns its footprint, the belt owns the tile next to it, and the hand-over happens on the edge they share.
Upper floors add a third number to a tile's address: its height, in 1/64 m. One floor up is exactly 256 of those, so "same floor?" is an integer comparison, never a discussion about rounding.
Lifting the belts
Until 24 September a belt lay 8 cm above the ground, a small pedestal baked into every tile, and followed the terrain. Now its origin sits 0.75 m above whatever it stands on: hip height, with the plate you can stand on at 0.875 m.
That needs holding up, so belts have legs and one rule: supports may be at most 10 tiles apart, counted against the flow of items. A leg is a support; so is a machine feeding the belt head-on. Placement adds the legs for you, at one Iron Sheet each.
free run, 25 tiles L.........L.........L....
machine-fed, 13 tiles .........L...
FIG. 1 — Where the legs go. L is a leg. The dots are belt that trusts its neighbors.
Removing a load-bearing leg is refused ("That leg is holding the belt up — add another leg first"). Demolishing a belt or a machine never is: we would rather leave a belt hanging than argue with someone holding a demolition tool.
Belts are solid now: you can't walk through one, but you can jump onto the plate and ride. The first version shoved riders off the side at every corner; corners now carry you around the arc.
Where a belt meets a machine
The same day, machines got proper pads. A machine never reshapes the ground (decks such as the Slab do); it only needs the ground under it flat to within 0.5 m. It is sunk until its pad top sits a small lip above the highest ground beneath, with a footing drawn down to the lowest point, so on a slope the pad shows only where the ground falls away. The lip was 2 cm. Twenty minutes later it was 6 cm: nearly flush with a Slab deck, the Kiln looked set into the floor rather than bolted on.
A belt end on a port tile, pointing straight in or out, is pinned to the pad top plus 0.75 m and gets a dock piece. Our first version pinned it to the machine's base, which that morning had become the sunk bottom of the pad. Every belt dived about 24 cm into every padded machine. Pad top it is.
Belts meeting belts had the same problem. A side feed ended at its own terrain height, floating above or sunk into the belt it joined, and a test asserted exactly that. Now a run feeding another belt is pinned to that belt's surface at the shared edge, and runs are solved downstream first, so that height already exists.
0.97 conduit axis = pipe flange center
0.875 belt plate top
0.75 belt origin
0.69 belt plate underside = machine's belt sill
0.00 pad top
FIG. 2 — The port standard, in meters above the pad top.
Straight lines and anchors
Belts at hip height that still traced every ripple of the ground looked, to us, like a carpet that had been issued legs. On 25 September ground runs became straight lines between fixed points: the two ends (a port, the belt being fed, or ground plus 0.75 m) and anchors.
An anchor is where the line would bring the belt's origin within 11 cm of the ground: the plate's underside hangs 6 cm below the origin, plus 5 cm of air. The solver takes the worst offender, pins both ends of that tile to ground plus 0.75 m, splits the run there and repeats, so every bend falls on a joint between two tiles. A valley is bridged and its legs get longer. Over a gentle hump the line may drop from 75 cm to 11 cm above the ground before an anchor is needed.
The 10-tile legs only prop the line up. Anchors depend only on the layout, the terrain and the port heights, so adding a leg never changes a belt's shape. The simulation keeps a real leg under every anchor, and removing one is refused ("That leg keeps the belt out of the ground").
The first wiring recomputed the whole factory on every command: 19 ms to place one tile among 5,000 belts. But a run's shape depends on its own tiles, its ports and what it feeds, never on what feeds it. Now only the touched runs and everything upstream of them are re-solved: 0.25 ms. Editing the root of a 5,000-belt merge tree still costs about 26 ms, once per click, never per frame.
Going up
The Conveyor pole holds belts in layers on a fixed 2 m grid of absolute heights, so poles on uneven ground still share a level. A pole's lowest layer is the first grid line at least 1 m above its base (ground at 50.75 m gives 52), R adds up to three more, and poles stack. On a layer the 10-tile rule places a pole instead of a leg, on the highest thing below: a pole, a deck or the ground. With nothing below that can take one (open water, say), the run stops: "Nothing to stand a pole on here."
A belt claims 1.1 m of height (origin, rails, margin), and machines can't be built up into it. Splitters, Mergers and Sorters are the only machines allowed on a layer. A stacked pole's posts stand 60 cm either side of the belt's center line, clearing the rivet heads on the belt below by about a centimeter. We checked.
Then the buildings got bigger
With belts a meter wide at hip height, a 2×2 Kiln looked like a model of a Kiln. So every building was resized, from 3×3 to 18×18, rectangles allowed: the Kiln is 6×6, the Cracking Tower 12×18, the Depot 12×12 with belt inputs only on its back.
Extractors stand centered on their 2×2 deposit, and the world generator keeps a flat, clear window around each one. Our first try used a 9×9 window everywhere; on two of twelve test maps that left the start area without a decent coal deposit. Sizing each window by the largest extractor that can work it (6×6 for the Miner's ores, 9×9 for the Derrick's and the Rift Auger's) passed all twelve.
All 26 building models were rebuilt with their mouths at the FIG. 2 standard. Measured in Blender on a test kit, the sill top and the dock's plate underside both came out at exactly 0.69 above the pad top. Where they meet, the dock is deliberately 5 mm larger than the belt part it continues and overlaps it by 5 cm, because two faces in exactly the same plane flicker. A pipe flange sits 2 cm inside the footprint so its bolt heads stay off the belt's tile.
What still overlaps
A pole under a corner belt, or stacked poles whose belts cross at right angles, will put a post into the other belt; no single frame angle clears both directions. Pole posts reach about 14 cm into a neighboring parallel belt's tile. And tall machines no longer fit under a 4 m upper floor (the Kiln is 5.8 m tall), which we accepted.
The art of not overlapping, it turns out, includes overlapping on purpose, by five millimeters.