This is more of a design question than a technical question.
I wish to know about how community servers are created in modern AAA games.
Let’s take the example of Battlefield to understand my question.
So basically, Battlefield is a multiplayer shooter.
It provides you an option to either scroll through a global list of active games, or create your own community server.
In the first option, you can simply click Join on an available game, and you are transported to a map where other players would also be present.
In the second option, you can create your own game, and let players across the globe find your game and join it. Here, you have the freedom to choose the game mode, match settings, etc.
Some other multiplayer also give you the option to shared an ID with your friends or invite them via an online platform, or in-game to join the game you just created.
I wonder how is this all designed.
What happens when we create a Community Server?
Let’s imagine I tried to replicate Battlefield’s multiplayer setup for session management with UE4, where should I start?
I have some basic technical understanding of UE4 Networking, like dedicated serves, online platforms, replication, session creation, joining, etc. but I am very confused about how do I create a server, that everyone with an instance of my game can connect to,
and each individual player has the ability to create their own game, that everyone else can find and join, but the authority of the newly created game should be on the server (so the game doesn’t end if the creator disconnects).
(A few weeks ago, I read a post about a question similar to this, and one responder replied saying that we could make the game launch a new instance of a server every time a new community game was created…, is there a hint in this answer? )
I would love to get some insights on how I could achieve this.