Build

Skill Based Matchmaking Explained

6 min read Markus Kohler on Nov 26, 2024
skill-based-matchmaking-explained-1380.png

Skill-based matchmaking (SBMM) is a cornerstone of modern online games, ensuring players of similar skill levels are paired together to maintain a fair and engaging experience. Popular in competitive games like Call of Duty, SBMM has become a hot topic among developers, streamers, and players alike. By analyzing player performance metrics, such as win rates, kill/death ratios, and gameplay efficiency, SBMM creates balanced matches that challenge seasoned competitors while supporting newer players. This approach not only fosters an environment for improvement but also keeps matches thrilling and unpredictable, elevating the multiplayer experience to new heights.

The goal of SBMM is to create fair and competitive matches by creating an “invisible” ranking system. Here’s everything you need to know about implementing SBMM in your online game.

How does Skill-Based Matchmaking Work?

SBMM groups players with comparable abilities and latencies into matches. This prevents mismatches in which beginners face seasoned experts. The goal is to keep games balanced, competitive, and enjoyable.

Why Does SBMM Matter?

Player Retention - Fair matches lead to higher satisfaction.

Competitive Integrity - Ensures skill is the deciding factor in outcomes.

Engagement - Players are more likely to keep playing when matches feel winnable.

In contrast, poorly implemented SBMM can frustrate users by creating either overly challenging or too easy matches.

Core Components of SBMM

Skill Rating (ELO or MMR)

Skill ratings are numerical representations of a player’s ability. Systems like ELO or matchmaking rating (MMR) calculate the score based on wins, losses, and the skill levels of opponents. Regardless of the algorithm you use to rate a player's skill, we can break down rating systems into two types of ratings: dynamic and base.

  • Dynamic Ratings: Change after each match.

  • Base Ratings: Used for new players until performance data is available.

Matchmaking Pools

Players are categorized into skill pools. These pools act as the foundation for matchmaking. Narrowing down matches within a skill bucket reduces wait times and ensures balanced gameplay.

Latency and Geolocation

SBMM considers latency in addition to skill. Low latency ensures smooth gameplay. Geolocation is often used to group players by proximity, minimizing ping differences.

Scalability: The Heart of Matchmaking Systems

Scalability is a core component in ensuring matchmaking systems perform well regardless of the player base size. Key considerations include:

  1. Efficient Data Handling

  • Use distributed systems like PubNub, PubNub Illuminate, Redis, or Kafka to manage queues and real-time updates.

  • Implement caching to reduce repeated calculations.

  1. Dynamic Poll Adjustments

  • Scale matchmaking pools dynamically based on peak and off-peak times.

  • Use regional clustering to reduce latency and balance server loads.

  1. Algorithm Optimization

  • Lightweight algorithms like the Greedy Algorithm scale well with large player bases.

  • Advanced algorithms, such as the Hungarian Algorithm, should be optimized for parallel processing to handle high traffic.

  1. Cloud Infrastructure

  • Leverage cloud platforms like PubNub or AWS GameLift for auto-scaling capabilities.

  • Use serverless architectures to handle spikes in matchmaking requests.

  1. Latency Mitigation

  • Use analytics to identify bottlenecks and optimize resource allocation.

Matchmaking Algorithms: Choosing the Right Approach

  1. Greedy Algorithm

Matches players as they join the queue. This is the simplest type of algorithm but prioritizes the speed and reliability of two or more players being matched together. 

  1. Hungarian Algorithm

Calculates the most cost-effective matches from a pool of players. This approach factors multiple variables, such as skill, latency, and wait time.

  1. Stable Marriage Algorithm

Used to find stable pairings between two sets, ensuring no pair would prefer being matches with someone else. This is effective for games with two-sided matchmaking, such as team-building scenarios.

Challenges of SBMM

Balancing Fairness and Wait Times

A matchmaking system that is too strict increases wait times. Too lenient, and the matches become unbalanced. When first creating an SBMM algorithm, your system will be flawed. This is solved by utilizing analytics to track your player retention rate, average skill difference, and detection of bots or Smurfs. 

Smurfing

Experienced/good players using new accounts to face off against low-skilled players disrupt the matchmaking. Implementing detection algorithms/systems to detect this and adjust the skill rating accordingly can offer more balanced matchmaking and increase player retention.

ELO Hell

Players can become stuck in a specific skill tier, constantly facing less skilled players. However, this happens more often in team-based matchmaking. Even if a player is supposed to be at a lower skill level / elo rating, their team will carry them through the game, winning or losing 50/50. In short, more is needed to measure wins/losses in a team-based game; developers need to consider measuring independent performance within the game itself.

Advanced SBMM Features

From a developer/product perspective, more advanced features should only be considered when your matchmaking algorithm works well, but you want to do more to minimize individual player churn rate.

Dynamic Adjustments - Adjust matchmaking parameters based on player feedback or game analytics

Engagement-optimized Matchmaking (EOMM) focuses on skill and maximizing player engagement. It incorporates factors such as playtime, win streaks, and churn risk.

Cross-Platform Matchmaking - Support matchmaking across different platforms. Normalize skill ratings to account for platform advantages (E.g. mouse vs. controller).

Tools for Building SBMM Systems

Skill-Based Matchmaking Systems require robust algorithms and the right tools to implement, optimize, and maintain at scale. These tools streamline development, handle real-time data, and ensure matchmaking for players across regions and platforms. Whether you’re starting from scratch or improving an existing system, these tools can help you deliver scalable and efficient SBMM solutions.

PubNub Unreal / Unity / Core SDKs

PubNub SDKs can be utilized to send matchmaking requests from player to player and deal with any real-time data transmissions needed while the matchmaking request is being processed. For example, if they are in a pre-lobby and have to accept the match before joining, or which players have confirmed the game and which players have not, these are all real-time interactions that PubNub can handle.

PubNub Illuminate

PubNub Illuminate can be used to manage matchmaking queues and skill buckets. After a matchmaking request is sent to a channel as a message or membership, PubNub Illuminate can pick up on this and add you to a queue. Developers or product managers can then change the rules to define when the queue is full and dispatch an Illuminate Action, which a PubNub Function would pick up. Many scalability concerns need to be considered when considering matchmaking queues. PubNub makes it quick and easy to scale your servers to any number of players.

PubNub Functions

PubNub Functions can handle skill-based matchmaking logic. For example, if you want to match players based on their skill level, join the player in the preferable Illuminate queue so the player can enter a match with a player of equal skill.

GameLift

GameLift dynamically provisions game servers based on player demand, ensuring consistent performance during matchmaking. FlexMatch, a GameLift component, allows you to define custom matchmaking rules that factor in skill, latency, and wait times.

Measuring SBMM Success

Match Quality: Track win rates, player satisfaction, and retention

Queue Times: Monitor the average queue times and wait times to ensure efficiency

Skill progression: Check if players are advancing through the skill tiers fairly

Summary - Skill-Based Matchmaking

Skill-based matchmaking enhances gaming experiences by creating fair, competitive environments. Implementing SBMM involves a mix of intelligent algorithms, robust infrastructure, and continuous optimization. By understanding the basics and addressing common challenges, developers can create matchmaking systems that delight players and drive engagement.

Ready to build? Start small, measure your results, and iterate.

Getting Started with PubNub for your SBMM System

PubNub is an Infrastructure-as-a-Service (IaaS) platform designed for real-time communication, making it a natural fit for building scalable Skill-Based Matchmaking (SBMM) systems. By leveraging PubNub’s SDKs and the Illuminate portal, you can develop an efficient matchmaking system that handles real-time data, manages player pools, and ensures seamless player experiences.

Choose the Right SDK

PubNub offers SDKs for popular programming languages and platforms, including JavaScript, Python, Unity, and Unreal Engine. To integrate PubNub into your project quickly, select the SDK that aligns with your game’s tech stack.

Set up the SBMM Queue with Illuminate

PubNub Illuminate is a real-time decision analytics product that is customizable to any organization's use case. This makes it perfect for customizing into a scalable queuing system for SBMM.

For SBMM, Illuminate dashboards will act as the different skill queues. The actions or rules around the dashboards will be set to when you want the dashboard to dispatch the users to a custom PubNub Function or any other external source you have set up using PubNub Events & Actions.

Implement Matchmaking Logic with PubNub Functions

With PubNub Functions, you can quickly implement custom SBMM logic. Set up a Function to calculate player skill in real-time, evaluate latency, and assign players to the appropriate matchmaking queue or Illuminate dashboard. This serverless feature processes data directly at the edge, ensuring low latency and fast decision-making, which is critical for scalable matchmaking systems. By leveraging PubNub Functions, you can streamline matchmaking workflows while maintaining flexibility for custom rules.

0