This website uses cookies to improve our services and deliver relevant ads.
By interacting with this site, you agree to this use. For more information, see our Cookies Policy
This page will walk you through the concepts of matchmaking, and the configuration details available in the Developer Center. The Matchmaking Quickstart and Additional Configurations pages will walk you through how to implement Matchmaking in your game.
The Oculus Developer Center allows you to define how you want to groups your players and matchmaking configuration that determine how you'll bring them together. There are three Matchmaking concepts that we’ll review in this guide: Pools, Data Settings, and Queries.
Pools are the top level groups of users in matchmaking. This is where you define the Matchmaking mode that you want to use, the baseline networking requirements necessary to match users, and the high-level criteria required to make a match.
There are two types of pools you can create, matchmaking pools and skill pool. Pools are the basic matchmaking configurations for a group of users, game-type, or game mode. The Pools define the number of users per matchmaking session, the connectivity requirements, and other high-level matchmaking tuning. Skill pools can be created and added to matchmaking pools to account for a user’s cumulative skill level when making matches.
If you create multiple pools and skill pools for the same app, each pool created will have a separate queue of users. Users in different pools cannot be matched.
Create a Matchmaking Pool
To create a matchmaking pool, navigate to Matchmaking in the Developer Center, use the drop-down to select 'Pool', click ‘Create Pool’, and enter your pool details.
Create a Skill Pool
To create a skill pool, use the drop-down to select skill pool, click ‘Create Pool’, and enter the following information for your skill pool.
Data Settings are the key/value pair data that the enqueuing player or room provides about itself at enqueue time. Data Settings can be used both to determine what a player is looking for in a match, as well as what a player looks like to another player. For example, if a player may be enqueued with the type of match they want to play, the map they want to play on, and the level they have achieved in the game. You may also use Data Settings to ensure that matches are only made with users who are using the same version of your app.
To add Data Settings to a matchmaking pool, navigate to Matchmaking in the Developer Center, click the more options selection for the pool, and then click ‘Manage Queries’. Then, in the Matchmaking Queries page, click ‘Edit Data Settings’.
We'll review how to implement Data Settings by applying them to users or rooms at enqueue time on the Adding Skill and Using Queries page.
Matchmaking Queries allow you to define the criteria that determines whether enqueued players and rooms can be matched with each other. These expressions compare the Data Settings of potential matches against each other. You define the Matchmaking Queries in the Developer Dashboard. At enqueue time, the Data Settings provided for the user or room will be compared with potential matches using the Matchmaking Queries.
A Matchmaking Query is composed of one or more expressions that make up a conditional statement. The Matchmaking service populates each expression with the Data Settings of the user and potential match candidate, and determines the quality of the potential match. The 'How do we determine who gets matched?' section below will review how we use this information to compare potential matches.
To add a Matchmaking Query Expression to a Matchmaking Pool, navigate to Matchmaking in the Developer Center, click the more options selection for the Pool, and click ‘Manage Queries’. Then, in the Matchmaking Queries page, click ‘Create Query’.
How do we determine who gets matched?
Each potential match between users is assigned a Match Quality value between 0 and 1. When determining the quality of a match between users, the criteria values of the criteria considered, like Ping Time, Skill, and Queries get multiplied together to get a single Match Quality value. A successful match is made when the Match Quality exceeds the match threshold. The match threshold decreases over time that a user is enqueued. The Match Quality value and how quickly the match threshold decreases can be configured in your matchmaking pool. We recommend leaving these values as the default until you have data to evaluate the quality of your matches. We'll review how to tune your matches in the Testing and Tuning section.
A value of 0.5 is considered to be a marginal match, while 0.9 an excellent match. A successful match occurs if the match value is greater than or equal to the match threshold. With the rampdown, a match threshold is 1.0 at enqueue time seeking a perfect match, but will decrease to 0.5 over a rampdown period of 30 seconds (default, the rampdown time can be configured in your Pools) where less ideal matches will be accepted.