dinodod wrote:I would like to know if there might be a way to create static chunks / unload chunks / filter the entities on a per player basis. For me, I normally don't venture out so I don't need to see all the bases on the map or receive updates from some base far away when players attack it. Sure, invalidate the base but update it when I go into the area. Otherwise, I opt for simply blacking out the region until I go there and explore, thus I would reveal the area for myself. Other players might want to have different options. Maybe make personal radars instead of a global one and make the global one have options to blackout updates??? maybe allow the global radars to have a filtered view per player? I'm just trying to figure out a way to keep performance in late game.
Not really; at a minimum Factorio multiplayer would need to move away from its "synchronous lockstep" model into a true client/server model, with some large challenges.
To elaborate, at the moment, all players simulate the entire world for every tick. It's not that you receive updates keeping up with the other players fighting biters elsewhere -- you actually have to simulate the entire battle. The only thing you get sent is the information about what the players themselves are done (movement, shooting, etc.). Everything else is completely deterministic, and all players calculate it separately. This is because there would be an enormous amount of data movement to do it any other way.
In order to let you not simulate that, the server would need to keep track of the region of space you have loaded, and push updates to you about anything that enters or leaves that region. If the regions were automatically generated based on content it is technically possible to do this, but still very very challenging. The trivial case of base sections isolated from outputs by trains is moderately workable, but most of your ups cost is going to be from the main base.
Hence, the devs have more-or-less decided that it'd work out better to just make everything faster and more efficient than to switch the multiplayer netcode.