Design Multiplayer Matchmaking
HardSystem design · Realtime Gaming
Design a multiplayer matchmaking system. Players and parties queue for a game mode; the system forms balanced matches with acceptable latency and short waits. Scale: 500K concurrent players at peak, about 400 queue entries/s, target wait under 60 seconds. Cover skill rating with uncertainty, queue partitioning, constraint relaxation as wait time grows, party handling, ready checks, and game server allocation.
Requirements
- Match by skill, latency, region, mode and party size; region and mode are hard constraints
- Relax skill and latency bounds as a player's wait grows, with a cap
- Handle cancellations, declines, disconnects and abuse (smurfing, queue dodging)
- Allocate a game server after the match forms without adding noticeable wait