v0.1.29 (Early Access)
The big one this release is traffic. If you have ever built a second core switch and watched every switch, router and firewall in the room report the same number, that is fixed, and the fix went deeper than the symptom. Traffic now travels a path instead of being written down everywhere it could have gone. Alongside that: the simulation got faster again, driving the delivery robot no longer makes the whole game stutter, and a large chunk of what the game was sending itself several times a second turned out to be answered messages and answered requests nobody was reading. Joining a friend's game was also failing seconds after connecting, for a reason the joining player had no way to see. A save that refused to open, which turned out to have been happening since v0.1.26, is also fixed.
Added
- A Compatibility rendering option, in graphics settings on every platform. Some graphics drivers cannot run the renderer the game normally uses, and when that happens the game crashes or freezes on startup rather than falling back. A fallback did exist, but it only ever applied to a short list of older Macs, and the setting that could have reached it was only shown on Windows. It is now available everywhere. If the game will not start reliably for you, this is the first thing to try. Changing it restarts the game.
Fixed
Traffic and the network map
- Traffic travels one path now instead of being counted on all of them. When more than one core switch could carry a flow, every one of them was credited the whole flow rather than its share. With four core switches, all four claimed the same traffic, the firewall added them together, and the number arriving at your router was four times what your machines were actually sending. Two core switches gave you double. This is why every switch, router and firewall in the room seemed to mirror the same figure, and why powering a core switch on or off moved numbers in directions that made no sense.
- Redundant paths now behave like redundant paths. A flow picks one route and stays on it, so a switch shows the traffic that genuinely passes through it and nothing that does not. Different machines take different routes, which is what spreads the load. Turn a core switch off and its traffic moves to the others, and the total stays the same instead of jumping.
- A busy path stays busy. Redundant routing does not shuffle traffic away from a link just because that link is full, and neither does the game now. If one route is carrying more than its share you will see it sitting there, which is the point: it is something to notice and fix rather than something the game quietly hides from you.
- Uneven links now carry uneven shares. A 100G uplink and a 25G uplink in the same group were splitting traffic evenly, which is not how any of it works. Capacity now decides. This mostly shows up when you have upgraded part of a fabric and not the rest.
- Every port's throughput is measured rather than divided. A port used to show the whole device's total shared out across however many ports were plugged in. Four cables to two different appliances showed byte for byte identical traffic, and unplugging one of two links instantly doubled what the survivor claimed to be carrying, because the division changed and the traffic did not. A 25G port could report 47 Gbps this way. Ports now report their own link, and a device's total is the sum of its ports.
- The uplink figure on a router port matches the line it is plugged into. Those two numbers were worked out separately and only agreed by luck.
- A whole half of a datacentre could read zero while the machines under it were plainly busy. If you put a firewall in front of your router and another router behind it, the game lost track of where that half of the fabric was sending its traffic, so every switch above the machines reported nothing at all. The machines themselves showed traffic, which made it look like the switches were broken. They were not, and this affected the entire branch, not one switch.
- A redundant link now tells you why it is quiet. A second link between the same two switches is either a genuine alternate route that shares the load, or a backup that spanning tree parks so the network does not loop. Both cases used to look identical: a plugged-in, lit, working port carrying nothing, with no way to tell which it was. A parked link now says so, and a shared one carries its share. Which you get depends on how the link is configured, the same as it would in real life.
Internet and the edge
- The connectivity panel now shows what your edge can actually push, not just what you are paying for. It showed the total of your circuits. That is a real number, but it is not the number your traffic is limited by, and the two can be far apart. The panel now shows both and names whichever one is holding you back: your lines, your routers, or a firewall in the path.
- Every readout of your internet capacity now agrees. Six places in the game printed that number and only one of them knew about the limit, so you could read "200 Gbps, plenty spare" on one screen and "8 of 200, capped" on another. The worst was the capacity view telling you how much internet headroom you had left based on circuits you had bought rather than throughput you could actually push, which made buying another line look like the fix when it would have changed nothing.
- Two routers without BGP present one router's capacity, and the game now tells you so. This has always been the rule and it is the reason to run BGP, but nothing on screen said it. Adding a second cheap router appeared to do nothing, because it was doing nothing. If your routers are not advertising, the panel now says the edge is limited to a single router rather than leaving you to work it out.
- A router with nothing plugged into it was receiving internet traffic. Background noise from the internet was being shared out across every router in the building, including ones cabled to nothing at all. The check that stops an unconnected box picking up traffic existed for firewalls and had simply never been applied to routers.
- Background internet noise is no longer split evenly across zones. Every zone received the same amount regardless of how much internet capacity it actually had, which is why two zones of very different sizes reported identical traffic. It now follows the lines each zone really fronts.
- Ports on unpowered hardware were reporting themselves as up. A machine or switch with no power kept showing live links, and worse, the simulation itself believed them and credited them with throughput. Existing saves are corrected when you load them.
Cabling
- The price quoted while you run a cable is the price you are charged. The quote used the exact length and the bill rounded up to whole metres, so a short patch between a machine and a switch quoted one to three dollars and charged five. The affordability warning used the quoted figure too, which meant it would happily let you start a run you could not pay for.
- A cable between a QSFP port and an SFP port was drawing the larger module at both ends. The smaller port got a module that does not fit it, sticking out of the chassis. The port's own socket type is now what decides the connector.
- Cables follow the vertical manager instead of cutting across the top. Past roughly thirty copper cables in one band the game quietly moved a cable to the whole strip, and the renderer then dropped that instruction entirely and drew a straight sagging line from port to port. Fibre was unaffected, which is why this looked like a copper problem.
- Clipping a passthrough on both racks now works like clipping one. Doing it on one side routed neatly down the manager. Doing it on both skipped the manager on both racks and left the cable hanging in the air.
- The cable types on offer no longer depend on which end you started from. Starting a run from a 200G switch offered fibre that starting from the 400G side did not, for the same pair of ports and a run that was legal either way. Both ends are now considered.
- 200G and 400G runs were being offered optics capped at 100G. You could buy fibre for a 200G port that could never carry 200G, and nothing said so. Those speeds now offer optics rated for the port. See the note below, because the correct parts cost more.
Building and moving around
- J-hooks mount flush to the wall. Placing one above a rack while looking at the wall from an angle put it rotated ninety degrees and buried in the wall. The position was worked out from where you were looking and the rotation from your feet, so when a rack stood between you and the wall the hook took the rack's facing instead of the wall's.
- Walls are much less sticky. The player's collision shape was padded roughly sixty times more than it needed to be, so brushing a wall could snag you and sometimes wedge you badly enough to need the Unstuck button. One barrier in the data centre was also thinner than the padding itself, which made it impossible to push back out of.
Placement
- Service control planes stop landing on machines you have set aside. A machine dedicated to a network segment was not just allowed as a host for them, it was the most attractive one, because it is the emptiest box in your fleet and the game was ranking on free capacity. Putting it in maintenance moved them off and taking it back out brought them straight back. They also spread better across machines of different sizes, and memory is now considered alongside processors. Existing saves are corrected when you load them.
Saves
- Saves that refused to open now open. If your world had ever run an internet line at full capacity, loading it failed and put you back at the title screen with an error about a missing field. The way a full line is recorded changed in v0.1.26, from a single flag that meant "your internet is full" to one that names the individual line, and a save written before that change still described it the old way. Nothing could read it afterwards. Your save file was never damaged and was never written to, it just could not be opened.
- It did not need to be happening when you saved. The game keeps a short history of recently resolved alerts and a log of recent events, and a full line sitting in either of those was enough on its own. That is why this could strike a world with nothing wrong with it.
- The old record is cleared rather than guessed at. The old form never stored which line was full, so there is nothing to recover it from and inventing one would point you at a line that may be fine. If a line is still over capacity the alert comes straight back on the first update after loading.
Performance
- The simulation now uses about a fifth of the time it has between updates. It was three quarters two releases ago and about a quarter after v0.1.28c. Three more pieces of bookkeeping were doing far more work than the answer needed: the running latency figures behind every tenant's response times, the lookups that find a machine or a customer by name, and the pass that gathers each service's machines. The last of those was gathering the whole fleet once per service type, six times an update, and the answer cannot change unless a machine actually moves. It is now worked out once and reused until one does.
- Driving the delivery robot no longer makes everything stutter. While it was moving it reported where it was twice a second, and every report made the game rebuild and resend a complete picture of your world on the next update. That took the full rebuild from once every two seconds to once every half second, so the busiest thing the game does was happening four times as often for as long as you were driving. The robot's position is ordinary information that already travels with every update, so it no longer triggers a rebuild. This is why an empty robot slowed things down just as much as a loaded one.
- None of this changes what the simulation decides, only how long it takes. Machines land where they would have landed and the numbers read the same.
Comms
- The message panel stops rebuilding every conversation in your list. With a thousand tenants the sidebar holds around seven hundred conversations, and any change to any one of them threw away every row and built them all again, roughly once every two seconds. It now updates only the rows that actually changed. Opening the panel on a big save was the worst case.
- Answered messages stop being re-sent forever. Each conversation kept up to five hundred messages and sent all of them, every couple of seconds, whether or not you had that conversation open. Conversations now carry their most recent fifty.
- Every message was carrying an empty attachment. Replies from the runbook assistant have a structured payload: a topic, grounded figures, follow-up buttons. That payload was attached to every message in the game, including thousands of ordinary tenant messages that had nothing in it. It was almost a fifth of everything the comms panel was sending.
Requests
- Growth requests you have already answered stop being sent. The queue holds up to a thousand answered requests so the counts have something to count, and every one of them was sent with every full update. On a large save that was over nine hundred answered requests travelling alongside the fifteen that were actually waiting for you. Only the open ones are sent now, and the counts come across as numbers.
Multiplayer
- Joining a friend's game no longer drops you seconds after you connect. The host passes the world to each joining player through Steam. Whenever that connection was momentarily full, the host read it as a player who had vanished and ended their session. It is routinely full at exactly the wrong moment: the first thing a joining player receives is a complete copy of the world, the largest thing the game ever sends, and it arrives while the connection is still settling. The host now waits for it to drain, which is what it did before this part was rewritten.
- The same fault could also drop a player mid-session on a slow connection, any time the host got far enough ahead of them. Being briefly behind is now treated as being behind rather than being gone.
- A failed join now says which side gave up, and why. Every way a join could fail reached the joining player as the same bare disconnection, including the ones the host could have explained: a version mismatch, a session already full, or a host that had left and taken the world with it. The host was writing that explanation and then discarding it as it closed the connection. It is now delivered, and the reasons the host gives for ending a session are distinguishable from one another instead of all reading the same.
Graphics
- The quality setting the game picks for you now takes your screen resolution into account. It looked only at your graphics chip, so a laptop chip driving a 4K screen was handed the same settings as the same chip driving a 1080p one. Resolution is the single biggest cost for integrated graphics, and it was not being considered at all. Integrated chips now drop a step above 1080p and a further step at 4K.
- Intel integrated graphics were not being recognised at all. The check that decides whether an integrated chip can manage the middle quality setting compares against names like "Intel(R) Iris(R) Xe Graphics", and the trademark marks sitting in the middle of the name meant it never matched. Any chip reporting itself that way, which on Windows is all of them, fell through to the lowest setting. Recent ones now get the setting they should. This never made anything unstable, it just meant the game was quietly more cautious than it needed to be.
Notes
The save format has changed. Saves from v0.1.28 and its follow-ups load as normal and are upgraded as they load. A save written on v0.1.29 will not open on an earlier version, so do not roll back with a save you want to keep.
If a save has been refusing to open for you, load it on this version and it will open. You may find one stale alert missing and a short gap in your event history where the unreadable entries were.
Two visible trims come with this. A conversation now shows its most recent fifty messages rather than up to five hundred, so scrollback is shorter. And the requests list in the ops console no longer lists requests you have already answered; the tile that counts them is unchanged and still counts them all.
Expect your traffic figures to change, and in most cases to go down. If you run redundant core switches they were inflated by roughly the number of them, so a fabric that read four times too high now reads correctly. Nothing about your world has changed and no capacity has been lost; the numbers were wrong and are now right. Billing was never affected by this, and is unchanged.
One port goes quiet on purpose. A switch port cabled to an appliance that sits off to the side rather than in the path of your traffic, a hardware security module or a log collector, now reads zero rather than an invented average. The link is fine and the light is still green, it simply never carried customer traffic and used to claim it did.
Control planes and port states are both repaired as your save loads. Nothing moves, nothing goes down, and you may see a control plane relocate off a dedicated machine on the first update.
High speed fibre costs more than it did, because it is now the right part. A 200G or 400G run used to be sold optics rated for 100G, which were cheaper and could never have carried the port's speed. OM5 multi-mode is $60 per metre against OM4's $40, and long range single mode is $140. They also draw more power at each end, so check your power headroom before laying a lot of new fibre. Runs you have already laid are untouched and keep working exactly as before; only new ones are priced this way.
The quality setting the game picks for you is only chosen on your first launch. If you have ever set a quality level yourself, that choice is still respected and the two graphics changes above will not move it.
The join fix is on the hosting side, so it is the host who needs to be on this version for it to help. Single player is untouched by it; nothing in that change is reachable outside a hosted session.
Multiplayer sessions need every player on the same version, as with v0.1.28.