Skill-based matchmaking (SBMM) is a cornerstone of modern online games and multiplayer games, ensuring players of similar skill are paired into fair matches. Popular in competitive games like Call of Duty: Modern Warfare and Call of Duty: Black Ops around its online matches and Warzone game modes, SBMM is a hot topic among game developers, streamers, and gamers alike.
By analyzing in-game player performance metrics, such as win rates, kill/death ratio, and loadouts tied to gameplay efficiency, skill-based matchmaking creates balanced matches that challenge skilled opponents while supporting new players. Unlike single-player modes, where difficulty is fixed, SBMM keeps every video game lobby dynamic. This approach fosters improvement and keeps the multiplayer experience thrilling, elevating the overall gaming experience.
How Does Skill-Based Matchmaking Work?
The goal of SBMM is to create fair and competitive matches by creating an “invisible” ranking system. SBMM groups players with comparable abilities and latencies into lobbies. This prevents mismatches in which beginners face seasoned experts. The goal is to keep games balanced, competitive, and enjoyable—whether you are tuning a casual playlist or ranked game modes in a live matchmaking system.
Why Does Skill-Based Matchmaking Matter?
When matches feel fair, players stick around. Skill-based matchmaking supports player retention by pairing people into games that feel competitive without feeling like a complete stomp. Satisfaction goes up when in-game outcomes reflect ability more than luck or a stacked lobby. It also protects competitive integrity: wins and losses mean more when skill, not a random skill gap, is what decides the result.
This balance keeps engagement high: Players are more likely to queue again when a match feels winnable rather than predetermined. In contrast, poorly implemented SBMM does the opposite—matches that are punishingly hard or far too easy frustrate users and push them away from the game just as quickly.
Core Components of Skill-Based Matchmaking (SBMM)
Skill Rating (ELO or MMR)
Skill ratings are numerical representations of a player’s ability. Systems like ELO and matchmaking rating (MMR) calculate scores based on wins, losses, and opponents' skill levels. 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.
Strong MMR matchmaking also accounts for team games: wins and losses alone rarely capture individual contribution, so many studios blend match outcomes with per-player performance signals—especially when high-skill players queue with friends at lower skill levels.
Matchmaking Pools
Players are categorized into skill pools. These pools act as the foundation for matchmaking—the logic your matchmaking algorithm uses to match players of similar skill levels. Narrowing down matches within a skill bucket reduces wait times and ensures balanced gameplay across game modes.
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—especially important for real-time matchmaking across regions.
Scalability: The Heart of Matchmaking Systems
Scalability keeps skill ratings, queues, and regional pools responsive as your player base grows, shrinks, and spikes around seasons and events. The same SBMM rules apply at every scale—you need infrastructure that can keep up.
Efficient data handling: Use distributed systems like PubNub, PubNub Illuminate, Redis, or Kafka for queues and live updates, and cache skill calculations so you are not recomputing the same ratings on every tick.
Dynamic pool adjustments: Scale skill buckets for peak and off-peak traffic, and cluster players by region so wait times stay short without overloading a single datacenter.
Algorithm optimization: Favor lightweight matchers like the greedy algorithm at high volume; run heavier logic, such as the Hungarian algorithm in parallel so complex pairing does not block the queue.
Cloud infrastructure: Lean on auto-scaling platforms like PubNub or AWS GameLift alongside serverless workers to absorb sudden waves of matchmaking requests.
Latency mitigation: Track queue depth, regional health, and backend load with analytics so you can spot bottlenecks and reallocate resources before players feel the lag.
Challenges of Skill-Based Matchmaking
While SBMM sounds like an obvious inclusion for any multiplayer game, getting there is easier said than done. You not only need an infrastructure that scales to any number of players across the globe with low latency so the system determines matches quickly, but also your SBMM systems and SBMM algorithms account for the following pain points:
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 bot accounts or Smurfs.
Smurfing: Experienced good players using new accounts to face off against lower-skilled players disrupt the matchmaking. Implementing detection algorithms/systems to detect this and adjust the skill rating accordingly can offer more balanced matchmaking and improve player experience.
ELO Hell: Players can become stuck in a specific skill tier, constantly facing less skilled players instead of skilled opponents at their true level. 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; game developers need to consider measuring independent in-game performance within the game itself.
Luckily, PubNub has everything you need to build real-time interactive apps, drive innovation, and deliver engaging user experiences that drive retention and growth. Thousands of customers depend on us to deliver data in less than 100ms globally, process 2 trillion+ transactions per month, and back production workloads with a 99.999% uptime SLA, with peak concurrency of 10.5 million+ concurrent users for large online events. That means you can match players and balance fair games globally without rebuilding your game backend, allowing you to focus on the core experience of your game.
Getting Started with PubNub for your SBMM System
PubNub is a 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.
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.
Choose the Right SDK
PubNub offers SDKs for popular programming languages and platforms, including JavaScript, Python, Unity, Swift, Kotlin, 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 and 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.
You can learn more about how PubNub Illuminate enables studios to build a dynamic matchmaking system through our in-depth blog.
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.
What's Next
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. Track player retention, average wait time, and whether players of similar skill levels are advancing fairly—that is how you know your SBMM is working in production.
Not sure where to start building your own matchmaking system? See how skill pools, ELO ratings, and latency come together in our Skill-Based Matchmaking Dashboard demo—live updates that show what a working SBMM flow looks like before you wire up your own queues, with the GitHub repo for you to get started.
Then, explore more resources about PubNub for gaming, including an in-depth article on building a robust matchmaking system with PubNub and Epic Online Services (EOS).
Once you are ready to try it yourself, sign up for a free PubNub account or talk to our team when you are ready to build skill-based matchmaking in production.