estimated visitors
Article · 3 MIN READ
Dev Notes: Polinaria World Logistics
A behind-the-scenes look at the logistics graph that moves water, ore, and refined material through the sanctuary.
Water has to get there somehow
A watering basin can be empty while an extractor across camp has a full tank. That is now a real logistics problem in Polinaria World: buildings hold their own stock, and routes move it between them.
The simulation replaced its old route-by-route transfer behavior with a small logistics graph. Extractors, mines, refineries, command habitats, storage depots, service bays, and basins are inventory nodes. Routes are the edges. There is no magic global reserve for an endpoint to draw from.
One edge per tick
Goods travel one edge per simulation tick. A mine-to-habitat-to-refinery journey therefore takes at least two ticks. Storage depots and the command habitat become useful transit buffers because material cannot cross the whole colony in one update.
flowchart TD
Mine[Mine: local ore] -->|Tick 1| Habitat[Command habitat: transit buffer]
Habitat -->|Tick 2 or later| Refinery[Refinery]
The diagram shows the earliest possible trip. A shortage, full destination, or limited route capacity can make it take longer.
A pipeline is not a rover road
| Route | Direction | What limits the flow |
|---|---|---|
| Pipeline | One way | Supported resource, source stock, destination space, and route capacity |
| Rover route | Both ways | The same constraints, with one shared capacity budget per tick |
A water line can fill a basin without quietly sending water back upstream. A rover road can carry raw ore toward a refinery and refined material toward a hub, but those movements compete for the same vehicle capacity.
When there is not enough to go around
Imagine two basins competing for six units of water. A route should not lose forever just because its name sorts later.
For each resource, the simulation sorts eligible flows, rotates the starting point using the current tick and resource name, and then spends source inventory, destination space, and route capacity. Scarcity still hurts, but the shortage moves around deterministically. That makes it easier to read and test.
Let the route explain itself
The API exposes each flow's resource, source, destination, requested amount, moved amount, shortfall, and a short message. Older aggregate fields remain available, so a card can show the total movement while a detailed view explains what happened.
| Route state | What it tells the player |
|---|---|
| Stocked | Reachable buffers have no open demand |
| Moving | All requested movement was satisfied |
| Starved | At least one requested flow came up short |
| Idle | Endpoints are active, but there is nothing useful to move |
| Blocked | Endpoint or reliability failures prevent movement |
Extractors produce into their own tanks. Mines and refineries keep local inventories. Hubs buffer goods in transit. Power remains a computed per-tick constraint, rather than another resource moving through the graph.
The camp feels more physical because an empty destination now asks a visible question: where is its supply, and which route will bring it here?