Hi guys I am developing together with a team a multiplayer open world with a really large map 16x16 that is 256km2 (UE 5.3). For now I only have a presistent level, because we are deciding what technology to use to optimize the level. Everyone would say World Partition however we have issues with saves, i.e. we can’t find a save method that handles cell loading and unloading properly, especially in the dedicated server.
Instead I have had very good performance results with Level Streaming, however from what I have learned it is not meant for multiplayer, i.e. if there are two clients in a server in two opposing parts of the map, and one player activates a volume by loading a level, it also loads it to the other player, I know there is code that can make it so that it loads the level only for one client, but the question now is how would it behave in dedicated server? And how would the saves handle it?
I am here to ask for advice and if anyone has been through this some safe solution.
I thank you for your attention and waiting for someone to reply.
Too late to be of use for you, but there’s a checkbox in World Settings when using a regular streaming level called ‘Use Client Side Level Streaming Volumes.’
When this is enabled, the Dedicated Server will keep all sub-levels that are set to ‘Always Loaded’ loaded on itself, but loading and visibility of levels on the client side will be controlled by the level streaming volumes. When using this, it’s usually a good idea to have any gameplay specific actors in their own sub-levels. (You can also use RPCs and server events to set level visibilities server side if you really need to.)
The big downside of this is that when it’s enabled, a Listen Server or an offline game will be treated as the server and so it will load all the always loaded levels. You should be able to put in some logic to check if the Authority is a dedicated server or not and disable the setting if it isn’t, but I haven’t tried that.