Multiple maps loaded at once

Quick question: Would it be possible to implement a loading and travelling system similar to Skyrim or Fallout; where characters load between interior and exterior cells? I could imagine this being very simple in a single player game where you would just load the map for wherever you’re headed and saving the name of where you came from, and doing the reverse when leaving. However, my question is, would it be possible to do this in multiplayer? So for example, my character might be in the exterior of the world, but my co-op friend may be in an interior level somewhere else.

For clarification: Would be possible to load a few levels at once, with a different player in each?

Things I’ve tried:

  • Loading a new map when a player interacts with a door - this initiates a change for all players
  • Level streaming with all cells either underneath or far away from the main level. This would work, except we’re looking at hundreds of interior cells, and this system would get cumbersome quickly.
  • Just having all the interiors part of the main level. This works for some cases, but for most, it’s far too creatively and technically limiting.

I wouldn’t mind coding my own phasing system, but would it be possible/would it be advisable stable? And if so, where would you suggest I start?

It needs a fair bit of implementation.

I think the best bet is level streaming with a tiled landscape that has your interiors as sublevels. So that all the levels are set to non distance streaming, streaming is initiated by player overlap and the server keeps a list of which players streams which levels. The server handles the visibility of actors in other levels through the list by replicating only those in the player’s level. You can of course do all the graphical stuff locally and only replicate collision and other important events only on the dedicated server, which will allow you to handle a lot of stuff. This is basically the same as your number two, but a bit more finesse.

Thanks for your answer! I’m gonna try that out tomorrow :). But so you don’t think it would be possible to load two non-streaming levels at the same time?

Well, using world composition with level streaming you can basically do just that. Because when the level streaming distance is set to non-streaming they don’t automatically stream at all, but are only loaded on command.

Alright, I’ll give that a shot! So I’ll load the level and then teleport the player to the location of the entrance of the location. Thanks for the answers :slight_smile: