What is the best way to manage game server instances?

So, I’m trying to create a multiplayer game, specifically - sci-fi space shooter.
I’ve already learned how to work with replication and got steam online subsystem working, now structure of my game looks somewhat like this:

  • Player launches the client (client start map is opened)
  • Client connects to advanced steam session on the dedicated server (log in map is opened on server and replicated to client)
  • Player logs in
  • Server travels to Player’s base level
  • From here, player has the ability to start a match, forcing their server to travel to the Battle map; Other players then can join them, and when the battle ends, everyone is brought back to their bases

From this point, I want to know, what is the best way to make it so game launches server instance for every player at the moment when they run their client? May it be Steamworks Plugin or Epic Online Services are something to help me? In other case, where and what do I need to look for?

First, the Steam advanced sessions are made to launch a group of players together in a match. If you’re looking to have an authoritative server setup, you will need to handle that yourself with a hosting provider.

Each client can either look for a match that’s already running or start its own match so other players can join. Steam works and EOS will only be useful if you’re looking to do P2P (peer to peer), meaning that players will connect with each other without ever passing through an authoritative server. This can create issues, like cheating and latency issues.

If you’re looking to have an authoritative server, you can take a look at Edgegap, since they make it really simple to launch servers on-demand whenever players want to play.

1 Like

Thans a lot for such a detailed answer!
Gonna check Edgegap rn, from you words it looks like what I need.