Game Server Development Series — Part 7: Matchmaking & Rating Systems

Skill-based matchmaking, ELO, Glicko, regional queues, lobbies, and load balancing.

Matchmaking is one of the most important—and most misunderstood—parts of an online game.
It directly affects:

  • Fairness
  • Player satisfaction
  • Retention
  • Queue times
  • Server allocation
  • Competitive integrity

This chapter introduces everything you need to build matchmaking for modern multiplayer games.

1. What Is Matchmaking?

Matchmaking is the process of automatically grouping players into balanced matches.

A matchmaking system:

  1. Accepts players into a queue
  2. Evaluates their skill, latency, and roles
  3. Finds compatible teammates and opponents
  4. Allocates a game server
  5. Places all players into the match

Sounds simple, but real systems must work under constraints:
players vary in skill, region, group size, and tolerance for waiting.

2. Components of a Matchmaking System

A complete matchmaking system usually includes:

  • Matchmaking Queue — where players wait
  • Matchmaker Engine — decides who plays with whom
  • Rating System — ELO/Glicko/TrueSkill
  • Region/Latency Filter
  • Role/Team Composition Logic
  • Party/Lobby System
  • Server Allocator — picks a room/match server
  • Match Result Reporter — adjusts ratings after match

Matchmaking interacts heavily with:

  • Game server instances
  • Player data
  • Network layer
  • Fair-play systems

3. Queuing Models

There are three primary queuing models in modern games:

3.1 Simple Queue (FIFO with Constraints)

Players join a single queue.
Matchmaker pops N players at a time to form a match.

Good for:

  • Casual games
  • Mobile arena games
  • Turn-based PvP

Not suitable for competitive or role-based games.

3.2 Skill-Based Queue

Players are matched based on:

  • Skill rating (MMR/ELO)
  • Win/loss history
  • Accuracy or damage (FPS)
  • Time played
  • Recent performance
  • Character mastery

This improves fairness but increases queue times.

3.3 Role Queue (Tank/Healer/DPS)

Used in:

  • MOBAs
  • Hero-based shooters
  • RPG party systems

Players specify roles (or hero pools).
Matchmaker ensures team composition is healthy.

4. Rating Systems (MMR, ELO, Glicko, TrueSkill)

Player skill cannot be measured directly, so rating systems estimate it.

Below are the industry’s most common systems.

4.1 ELO Rating

Originally built for chess.

  • Simple
  • Based on expected vs actual result
  • Quick to implement

Issues:

  • Doesn’t handle uncertainty
  • Doesn’t scale well to team games

Used mostly in older or simpler games.

4.2 Glicko / Glicko-2

Enhances ELO by tracking:

  • Rating (skill estimate)
  • Rating deviation (confidence)
  • Volatility (performance stability)

Advantages:

  • More accurate
  • Faster convergence
  • Works better for inconsistent players

Used in competitive games where accuracy matters.

4.3 Microsoft TrueSkill

Designed for Xbox Live.

Handles:

  • Teams
  • Asymmetrical team sizes
  • Complex match results

Tracks:

  • Skill estimate
  • Variance (uncertainty)

TrueSkill remains one of the best systems for team-based games.

4.4 Custom Hybrid Systems

Modern AAA games use variants:

  • Performance-based rating (kills, accuracy, healing)
  • Decay systems (inactive players drop rating)
  • Per-hero or per-role MMR
  • Matchmaking bracket adjustments

Competitive games (Apex, Valorant, Dota, LoL) often combine multiple MMR tracks.

5. Matchmaking Constraints

Good matchmaking isn’t just about skill.
It must consider:

5.1 Latency / Region

Players matched to:

  • Same region (EU, NA, Asia)
  • Acceptable ping threshold (e.g., < 80ms)
  • Stable connection profile

5.2 Roles

Team composition:

  • Tanks / DPS / Support
  • Frontline / Backline
  • Snipers / Rifles / Utility

5.3 Party Size

If players queue as a party (2–5 players):

  • Keep the party together
  • Avoid unfair advantage vs solo players

5.4 Skill Fairness

Match should not feel “rigged.”

5.5 Queue Time

Matchmaker must expand search radius over time:

  • Wider skill range
  • Additional regions
  • More flexible roles

This prevents infinite waiting.

6. Matchmaking Algorithm (Simplified)

A typical matchmaking process:

  1. Player enters queue
  2. Assign initial search range (skill ± 50 MMR)
  3. After X seconds, expand search range
  4. Filter by region and latency
  5. Filter by role requirements
  6. Form candidate teams
  7. Evaluate team balance
  8. If balanced → lock match
  9. Allocate a server
  10. Send players into the match

This loop runs continuously (often multiple times per second).

7. Lobby / Party / Pre-Game Systems

The lobby or party system often works alongside matchmaking.

7.1 Party System

Features:

  • Invite friends
  • Shared matchmaking entry
  • Leader selects mode
  • Party voice/chat

Challenges:

  • Party size imbalance
  • Boosting (high skill + low skill friend)
  • Handling disconnections

7.2 Pre-Game Lobby

Common in MOBAs and hero shooters:

  • Hero selection
  • Role lock
  • Loadout configuration
  • Map voting
  • Final team confirmation

The pre-game lobby ensures teams are ready before match begins.

7.3 Ready Check

Used to confirm:

  • Players are not AFK
  • Players accept the match
  • Network is stable

If anyone fails, the match cancels and resets queue state.

8. Server Allocation (Creating Rooms/Matches)

Once players are matched, you must allocate a server.

8.1 Room Allocation Process

  1. Matchmaker picks ideal region
  2. Checks available servers
  3. Allocates a room instance
  4. Sends room IP/port/token to all players
  5. Room server initializes match state
  6. Players connect
  7. Match begins

This must happen fast—usually under 200–500ms.

8.2 Containerized Room Servers

Most modern systems use:

  • Docker containers
  • Kubernetes pods
  • Serverless game server instances (Agones, PlayFab, GameLift)
  • Lightweight VM-based instances

8.3 Load-Based Allocation

Matchmaker tries to spread rooms across nodes to:

  • Maximize performance
  • Minimize cross-region traffic
  • Avoid overloaded servers

9. Post-Match Rating Adjustment

After the match ends:

  1. Server sends results → match service
  2. Match service computes rating change
  3. Rating stored in database
  4. Leaderboards updated
  5. Rewards granted
  6. Analytics captured

Rating adjustments depend on:

  • Win/loss
  • Relative team skill
  • Performance metrics (optional)
  • Match length
  • K-factor or adjustment formulas

10. Anti-Boosting & Anti-Smurfing Systems

Modern matchmaking must prevent abuse:

10.1 Smurf Detection

Based on:

  • Performance vs rating
  • Account age
  • Match quality impact

10.2 Boosting Detection

Flags suspicious behavior:

  • Repeated play with much lower MMR friends
  • Abnormally fast progression

10.3 Hidden MMR Systems

Visible rank ≠ actual MMR
This allows better hidden matching accuracy.

11. Example End-to-End Matchmaking Flow

Putting everything together:

  1. Player joins queue
  2. Matchmaker collects group of players
  3. Filter by region, latency, role
  4. Ensure skill fairness
  5. Expand search if needed
  6. Evaluate team compositions
  7. Allocate game server
  8. Place players into pre-game lobby
  9. Confirm readiness
  10. Start match
  11. Record match results
  12. Adjust player ratings
  13. Return to lobby

This is the typical loop for competitive and casual real-time games.

12. Summary

In this chapter, you learned:

  • How matchmaking queues work
  • What skill rating systems do (ELO, Glicko, TrueSkill)
  • How region, latency, party size, and roles affect matchmaking
  • Role of lobbies and party systems
  • How match servers are allocated
  • How rating changes are applied after matches
  • Anti-smurf and anti-boosting considerations

Matchmaking is a complex balancing act between fairness, speed, and player happiness.
Designing it well dramatically improves the quality and long-term success of any multiplayer game.

Keep Reading

Follow the engineering thread

Get the next practical Birdor note, or browse the archive for related systems, tooling, and architecture work.

Join newsletter Browse articles