Currently, Only Pre-Started/Standby Servers are supported for the current matchmaking. Meaning Servers have to be already started and registered.
Servers are Started and Registered as an Instance/Lobby, Upon a Successful Matchmaking, the match is assigned to an available registered server.
The current flow works well for games with limited game modes and maps.but this prevents adding Map pools and most importantly on-demand server allocation. Moreover, it also requires a pre-defined amount of servers for every game mode and maps which can be difficult for games with a lot of different game modes and maps.
Adding Support for On-Demand Allocation.
- Matchmaking Succeeds
- Requests a server allocation by starting up a game server with the Match Id supplied in the Launch command
- The game server reads the match id and makes an API call to get the details such as map and game mode
- loads into the game mode and map provided by the matchmaker
- Registers itself as the Server for the given match and provides the connection details
Some of the Advantages:
- Not Required to have standby Servers for every game mode
- Maps can be Randomized in the Matchmaker Stage
- This also provides support for External Hosting with on-demand architecture to be compatible with the Playfab matchmaker
If the Game Server service is not meant to support on-demand servers and Since Matchmaking and Game Server are now independent of each other then
It would be ideal to provide a method to allow a Server (Externally hosted) to Register Itself to a Match. Similar to RegiserGame API but instead of Registering as an available Server, it would Register as the server for a given match
This would allow the Externally hosted servers to also take advantage of the following:
- Health Check (Heartbeat)
- Matchmaking Back-fill
- Getting a List of Servers by invoking GetCurrentGames