-
Notifications
You must be signed in to change notification settings - Fork 9
Matchmaker Overview
Here's a few helpful tips.. Please let other players know if you see them having trouble.
-
Do not restart matchmaking; it will only take longer.
-
The matchmaker will try to match you with players of similar skill, predicted balance, and common server pings.
-
After three (3-5) minutes, it will ignore skill/rank, and relax the server ping requirements.
-
After ~6 minutes, it will immediately create a match.
-
When balancing teams, the matchmaker will balance based off your OpenSkill rating (see below).
-
When a player early quits, and then start matchmaking, they will not match with players who are currently matchmaking.
-
If you change your
/party group, reopen your game. -
Matchmaking averages the rank percentile of players in a party.
-
Party members will always be on the same team when joining a new match, or backfilling.
- Players looking for a match are grouped into candidates (sets of matchmaker entries).
- These candidates undergo pre-filtering to remove invalid match possibilities.
- RTT Filtering: Ensures all players in a potential match have an acceptable Round Trip Time (RTT) to a common server.
- Match Predictions: Candidates are evaluated based on predicted balance.
-
Sorting by TeamOrdinal: Instead of only using
mu(mean skill) andsigma(variance), teams are ranked using TeamOrdinal, a derived metric from the rating system that evaluates team strength.
- Players are divided into two teams:
- The strongest players are assigned to Team A (blue).
- Remaining players are placed in Team B, ensuring balance.
- Sorting is done using TeamOrdinal and win probability estimates.
- If teams are too imbalanced, the match is discarded.
- The best-ranked matches are selected.
- Ratings (
CalculateNewPlayerRating): https://github.com/EchoTools/nakama/blob/main/server/evr_matchmaker_ratings.go - Ranking (
CalculateSmoothedPlayerRankPercentile): https://github.com/EchoTools/nakama/blob/main/server/evr_matchmaker_ranks.go - Matchmaker (
processPotentialMatches): https://github.com/EchoTools/nakama/blob/main/server/evr_matchmaker.go