How to create isolated Worlds, that are children of the same parent node

Godot Version

Godot 4.6.2

Question

I am working on a Local Multiplayer game (CO-OP, LAN Based), the core idea is that your friends join your adventure, so it will be possible to open the game to LAN at any time, this means that the host player's computer acts as the server.

One Issue that i had been wondering about is handling loading different sections of the game world, the clients might only care about the area they are in but the server has to load all of them since it is responsible for being the source of truth of the world state

this drives me to the issue that multiple different "worlds" could be loaded at once, for example player A is in a city, while another is in a dungeon, since these are separate scenes they have to be loaded simultaneously as children of either the game root or a different node, but this causes the issue of making sure these worlds are completely isolated (physics, rendering, navigation)

some research has led me to either using The PhysicsServer to create separate worlds myself, but then i would probably have to handle isolating the navigation and rendering as well.

another solution that was mentioned was using sub-viewports to create isolated worlds, and that confuses me to what properties i must configure to get those working, and how to handle rendering them properly.

is there any other way that allows me to completely isolate these worlds without creating a big mess.

Thank You.

Ok, so you can create separate physics spaces using SubViewports. Something I didn’t think about when answering this question: How to Make Instanced Dungeons in Multiplayer?

I would recommend this over going low-level and trying to manipulate the PhysicsServer yourself - at least at first. See if SubViewPorts will do it for you.

The easiest way though, is just to make each section of the game world in its own physical space in the game world. Then no need for SubViewports