Game Server Development Series — Part 7: Matchmaking & Rating Systems
Leeting Yan
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:
- Accepts players into a queue
- Evaluates their skill, latency, and roles
- Finds compatible teammates and opponents
- Allocates a game server
- 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:
- Player enters queue
- Assign initial search range (skill ± 50 MMR)
- After X seconds, expand search range
- Filter by region and latency
- Filter by role requirements
- Form candidate teams
- Evaluate team balance
- If balanced → lock match
- Allocate a server
- 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
- Matchmaker picks ideal region
- Checks available servers
- Allocates a room instance
- Sends room IP/port/token to all players
- Room server initializes match state
- Players connect
- 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:
- Server sends results → match service
- Match service computes rating change
- Rating stored in database
- Leaderboards updated
- Rewards granted
- 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:
- Player joins queue
- Matchmaker collects group of players
- Filter by region, latency, role
- Ensure skill fairness
- Expand search if needed
- Evaluate team compositions
- Allocate game server
- Place players into pre-game lobby
- Confirm readiness
- Start match
- Record match results
- Adjust player ratings
- 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.