Core elements
This page gives an overview of the three core elements of the Idem service:
Matchmaking systemβ
Basicsβ
The central challenge for any matchmaker is balancing players' queue wait times with the quality of their matches (proximity in skill). Constant fluctuations in player availability, skill levels, and factors like location make this a challenging algorithmic problem.
Matchmaking quality heavily impacts player experience by influencing both wait times and satisfaction with opponents. Suboptimal algorithms lead to inconsistencies in both areas, causing further player dissatisfaction. Traditional approaches, like expanding MMR ranges, create an inverse relationship between match quality and wait time: players wait longer to get a worse match. This in turn can promote anti-pattern behavior where players try to "fix" matchmaking by constantly requeueing.
Our matchmaker, which operates a probabilistic algorithm, solves the problem in a much better way. The algorithm finds optimal matches by predicting incoming players and their skill level using a highly sophisticated modelling approach instead of only focusing on currently queueing players. That way it can deliver better matches at shorter and more consistent waiting times than traditional benchmarks.
External resourcesβ
If you want to learn more about this problem and its implications, here are some more resources:
- Activision on the importance of matchmkaing for Call of Duty
- Grubby - eSport-pro and RTS legend, turned streamer - talks about his experiences with matchmaking, the fundamental concepts, and common misconceptions:
Target-waiting-timeβ
We have reduced the need for configuration of the matchmaker to one parameter: the target-waiting-time. You decide which waiting time is a good experience for your users. We automatically tune the matchmaker to make sure that, they get the best match possible while keeping the average waiting time on that value. This ensures a consistent queuing experience, even when the number of players varies throughout the day.
An extra word about top playersβ
Statistically, top players β often the most visible and vocal group β are most affected by poor matchmaking. And in most systems they are systematically at a disadvantage, due to the outstanding rating they have. Without proper matchmaking logic, they experience the longest waiting time and the most inadequate opponents. With streamers having millions of viewers β who are also potential customers β virtually looking over their shoulder, this experience of a few players is witnessed by a vast audience. Therefore, poor matchmaking for top players can severely impact a gameβs reputation, even before it has publicly launched. The Idem matchmaker is specifically designed to provide reliable wait times even for top players.
Key featuresβ
Our matchmaker is versatile and supports virtually any game setup. Here are a few examples for key functionality that most of our customers are profiting from:
- Support for any game mode (PvP, Coop, free-for-all (FFA), Battle Royale, etc.)
- Ability to match multiple players as a party so your players can play with their squad
- Automatic team balancing to ensure matches are fair independent of the team sizes
- Latency-based or geography based matching to manage server connection quality
- Extendability with custom criteria to accommodate the uniqueness of your game
You can find a full list of features here here.
Rating system (MMR)β
Idem is using a Baysian approach for MMR to provide the best experience for players. It provides:
- Lightning fast estimation of the skill of new players
- Quick and fair adaptation when player skills change
- Consistency across players and time
The foundation is similar to other systems (e.g. Glicko-2 and TrueSkillβ’οΈ). But we have carefully optimized our algorithm based on our extensive experience in the domain.
For updating ratings after a match, we can consider any match outcome, e.g.:
- Binary: Winners and losers
- Scores: "Winning 5:0 is better than winning 1:0" (and similar for games with more teams)
- Ranks: "Finishing 2nd is better than 3rd" (e.g. for racing games)
In addition, we can model:
- Team dynamics: on a continuum from "weakest link" to "carry"
- Game randomness: to accommodate luck vs skill
- Player segmentation: to have a separate rating for different factions (or any other dimension upon which it makes sense to separate ratings)
The rating system is automatically learning and is further tuned over time to find the best parameters to represent the true probability of the different events upon which ratings are based. It also prevents rating from becoming "stale" by enforcing a rating uncertainty floor. We are never "too sure" so players can always climb rapidly enough if they improve.
If you have more specific needs, we will help you customise the matchmaker to any possible use-case. Think: Team-games, parties, latency-requirements, regions, platforms etc.
The product consists of three core components:
Matchmaking, Rating, and Ranking
Ranking systemβ
We have put a focus on building a ranking system that is fair for players who are continuously engaged in your game and discourages "camping a rank". This is achieved by balancing skill (rating) and activity (number of wins) to determine the rank of a player.
The system can be customized to your game's dynamics, maximizing engagement without compromising rating integrity (e.g., no need for rating decay or penalties).
You can access the live leaderboard data of your game at any point via an API endpoint.
The ranking system also supports seasons so you can give your players a fresh start for reaching the top. (Note: Optionally, a season reset can also harmonize the ratings of players.)