The goal of this sample is to provide the steps and considerations when using Open Match with matchmaking rating(mmr) to construct a matchmaker. Most games rely on mmr to pair players together for a fair and enjoyable match so the sample will generate a random skill level that best fits a typical normalized distribution, allow overlapping Tickets to meet requirements for multiple profiles, and handle collisions by rating match quality.
Background
Although not all matchmakers use mmr based logic for grouping players together (e.g. Custom Games) most do. One standard for many matchmakers is Glicko-2, which takes a player rating range with calculated deviation bounds and matches players together for a more enjoyable game.
In-Scope/Out-of-Scope
In-Scope
Rank/Range Based rating
Overlapping Tickets
Deviations in player tickets that allows them to meet requirements in multiple profiles
Custom Evaluator
Updated Docs
Out-of-Scope
Not plug and play
Glicko-2 is not a requirement
External player profile connections (player profiles in databases)
No distributed matchmaking
Design Ideas
The design of the sample should hit three main points:
Adding a "skill rating" or mmr field to Tickets
Generating Profiles that will allow skill overlap
Writing a basic match function to select tickets that are within skill range and handle collisions
Adding Skill Ratings to Tickets
To simulate a Glicko-2-like “New Ratings Deviation” in a truly traditional matchmaking system for the sample it will require a skill level with some deviation added. Also taking into account the normal skill distribution seen in the bell curve below, we should ensure that the skill levels we give our tickets follow normalized distribution.
Creating Profiles
Within our Director, we should create profiles that allow overlap and not negate our deviation. Deviation should allow Tickets to fit a minimum of one profile and a maximum of three. This will prevent the player from crossing a skill bound that is too large for them. For the sample, the skill overlap will be ±.75.
Handling Collisions/Ensuring Match Quality
To ensure good match quality, a function to determine the quality of the match is necessary. This will also result in handling collisions when a Ticket has generated several match proposals.
The goal of this sample is to provide the steps and considerations when using Open Match with matchmaking rating(mmr) to construct a matchmaker. Most games rely on mmr to pair players together for a fair and enjoyable match so the sample will generate a random skill level that best fits a typical normalized distribution, allow overlapping Tickets to meet requirements for multiple profiles, and handle collisions by rating match quality.
Background
Although not all matchmakers use mmr based logic for grouping players together (e.g. Custom Games) most do. One standard for many matchmakers is Glicko-2, which takes a player rating range with calculated deviation bounds and matches players together for a more enjoyable game.
In-Scope/Out-of-Scope
In-Scope
Out-of-Scope
Design Ideas
The design of the sample should hit three main points:
Adding Skill Ratings to Tickets
To simulate a Glicko-2-like “New Ratings Deviation” in a truly traditional matchmaking system for the sample it will require a skill level with some deviation added. Also taking into account the normal skill distribution seen in the bell curve below, we should ensure that the skill levels we give our tickets follow normalized distribution.
Creating Profiles
Within our Director, we should create profiles that allow overlap and not negate our deviation. Deviation should allow Tickets to fit a minimum of one profile and a maximum of three. This will prevent the player from crossing a skill bound that is too large for them. For the sample, the skill overlap will be ±.75.
Handling Collisions/Ensuring Match Quality
To ensure good match quality, a function to determine the quality of the match is necessary. This will also result in handling collisions when a Ticket has generated several match proposals.