Objective:
This article explains the fundamental concepts of Matchmaker queues and pools, crucial for effective player matchmaking in your Unity games.
Explanation:
What are Matchmaker Queues?
Matchmaker queues represent the primary method of segmenting your player base. They act as high-level categories for different game modes or variations of your game. Players in different queues will never be matched together. Think of queues as distinct game experiences, such as:
- Casual Mode: For players looking for a relaxed experience.
- Ranked Mode: For competitive players focused on progression and leaderboards.
- Tutorial: For new players learning the basics of the game.
- Event Mode (Limited-Time): For special events or themed gameplay.
Defining distinct queues ensures players are matched with others seeking the same type of gameplay.
Understand that there's always a default queue which is created when Matchmaker is initially set up - it can't be deleted. Its purpose is to provide essential failback functionality. In other words, it does the following:
- Handles tickets that don't specify a queue name
- Processes tickets when no queue is explicitly defined
- Manages legacy client connections that don't include queue information
What are Matchmaker Pools?
Within each queue, you further segment players using pools. Pools reside inside a queue and offer a more granular level of matchmaking control. Unlike queues, players from different pools within the same queue can be matched together under specific conditions, but also understand that players from different pools within the same queue are likewise never matched together. These conditions are controlled by filters applied to each pool.
Pools allow for dynamic and flexible matchmaking based on various player attributes. Consider these examples:
- Skill Level: Create pools for different skill tiers (beginner, intermediate, expert) within a "Ranked Mode" queue.
- Region: Group players based on geographical location for optimal latency.
- Party Size: Separate solo players from groups to ensure balanced matches.
As a final note, if players on different platforms end up in different pools via the filters, they will not be matched together for crossplay.
How Queues and Pools Work Together
Imagine a "Ranked Mode" queue. Within this queue, you might have three pools:
- "Low Skill" Pool: For players with a ranking below 1000.
- "Mid Skill" Pool: For players ranked between 1000 and 2000.
- "High Skill" Pool: For players ranked above 2000.
A player entering the "Ranked Mode" queue is assigned to a pool based on their ranking. Players fall into pools based on the attributes on their ticket, but pools are still hard segmentations of player populations. Within a pool, rules are applied against players, teams, and matches. However, these rules can be relaxed to allow players who would otherwise not meet the initial criteria to match with each other. For example, if a match requires all players to have skill > 1000, a relaxation can be applied to this rule so that if no match is found within x seconds, the rule starts to match players with skill > 750 together. Understand that this is match logic rather than pool configuration.
Summary:
Queues: Broad categories for separating different game variations (e.g., Casual, Ranked). Players in different queues never match.
Pools: Subdivisions within a queue for finer-grained matchmaking control based on player attributes (e.g., Skill, Region). Players in different pools within the same queue can match.
Filters: Rules applied to pools to determine which players are eligible to join.
Supplemental Resources:
https://docs.unity.com/ugs/en-us/manual/matchmaker/manual/advanced-topics-queues-pools
https://docs.unity.com/ugs/en-us/manual/matchmaker/manual/advanced-topics-player-segmentation
https://docs.unity.com/ugs/en-us/manual/matchmaker/manual/matchmaking-rules-rules