We provide APIs/settings to manage how we matchmake players to servers in your game, and allow you to route players to new servers to support Hub game scenarios.
Matchmaking Preferences
Fill Mode:
All Out hosts servers across the globe to deliver a low latency experience to players, however, if your game is just getting started you may want to compromise on latency to ensure players can play together in the same server. The fill modes are documented on the main page of the Creator portal and can be changed at any time.
Instance Priority + Require High Priority Mode
There is a special matchmaking mode that allows you to avoid sending players to specific servers with code.
Games can set a "priority" level for each instance based on round status, player count, etc... using the xxx TODO API.
Optionally you can request to enable "Require High Priority" mode for your game, which will only route players to instances with priority set to zero and will spin up new servers if there aren't any.
This can be useful if you have a round-based game where you don't want new players joining into already running games.
This feature is available by request only since if your instances never/rarely get set to priority number 0, it will spin up a massive number of servers! Please contact us!
Hub Games
Hub games are a common pattern that allows players to meet up and queue for a round-based game together. Examples would include:
A lobby for Red Sun that lets players queue to play together and buy upgrades while waiting
The Bed Wars hub that allows you select between gamemodes (like classes/vs classic)
API Reference
Server::struct{// Transfer a player to another game (hub -> match, match -> hub, etc).transfer_player_to_game::proc(player:Player,game_id:string);}
These are server-side APIs. Call them from Game.is_server() code.
Example: send a player to another game
There is currently no way to pass additional information when transfering a player to a new game, nor is there a way to dynamically configure servers at startup. If you'd like to have different modes (e.g. 1v1 vs 2v2) you'll need to create dedicate games and link them with the game parenting system.
We recommend enabling Cross-Game Products/Datawhen using teleportation/hub APIs to ensure player purchases and save data can be easily reused between the two.