I’m new to multiplayer development but getting the hang of things. I am setting up a game that uses P2P server hosting, where anyone can start a server in a ‘hub’ world that anyone can join. My goal is to have things set up where anyone in this hub world can create create a challenge that anyone else can accept. The selected players would then be transported to a selected map or level, battle, then return to the hub world. Very similar to Monster Hunter World game sessions, where a handful of individual hunters in the same large session can go out on a mission, then return to the same gathering hub they left from without interfering with other hunters in the session.
I have the advanced sessions plugin and thought it would be as simple as saving the previous session from the hub, and joining that session again once the battle is over. This sounds ideal, but requires a dedicated server as if the host were to leave, the hub server would be shut down.
The next Idea I had was level instancing. Just have each map be located in a level instance around a HUB persitant level. This leads to the issue though that if two different challenges use the same map, the two groups of players would interfere with eachother.
This leads me to my current trajectory, forgoe the hub world and simply have each challenge/session posted to a server list that loads the selected battle map, and everyone disconnects entirely when finished. I would love for there to be a Hub world where people can hangout outside of battles, but I am too inexperienced at the moment to know how to do that properley. What should I be looking at for something like this?