TL;DR - Level streaming requires a level to load before it can unload and begin loading a second level. This is causing long load times in zones with many smaller streaming volumes like a town. Any way to avoid this?
My small team and I have a published Early Access game on Steam built in 4.26. It’s a cooperative open world RPG and the world is quite large. We use player-hosted listen servers for multiplayer currently with a dedicated server in the works. We’re still learning what optimization practices work best for the project and level streaming is something we’re utilizing quite heavily right now. But we’re running into a bit of a hang up.
We have a pretty large town in part of the game and all the buildings have full interiors. We’re using streaming volumes for each of these buildings and have merged many of the interior assets to make loading quicker, but we realized a strange quirk with level streaming and we’re hoping there’s an easy fix.
When you enter town the first building to load in is an apothecary. If the player rides a mount straight past it and into the general store instead, the general store can’t load until the apothecary finishes loading, it seems. This is relatively quick, but when players run through the entire town and into a building on the other end, even though those first handful of streaming volumes are already queued to unload, they’re still required to load fully first, then unload, one at a time, meaning the loading queue starts stacking up and players end up waiting upwards of 5 to 10 seconds depending on their hardware and the number of players online for their desired building to load.
We’ve been digging for a way to either async stream levels or to cancel loading to no avail.
Anyone have any ideas? Or if this is the intended functionality, then any ideas on how to better set up our level streaming to avoid this?