YGO Omega's Ranking Algorithm

The purpose of this article is not to dive deep into the rabbit hole of the delicate intricacies and mathematics behind ranking algorithms. Rather, it is to explain the ranking algorithm that YGO Omega is currently using, the reasons behind the values we chose and examples of how it works. We want to be transparent with our algorithm so it can be peer-reviewed and improved with player feedback.

How do other Games do it?

Before we get into the nitty gritty, it’s important to understand how other games in the past and present implemented rating systems.

Dueling Network:

One of the most popular simulators known for an accurate rating system was Dueling Network. It used a modified version of Elo. Each player would start with 100 / 0 where 100 represents the rating and 0 represents experience. They also factored in how much LP difference and card difference (hand+field) were extra compared to the opponent at the end of the duel. We know this from the faq published from Dueling Network forums shown below.


The successor to Dueling Network, Dueling Book, does not use Elo. It uses a modified MMR which means it is a custom point system. The ranking algorithm used by Dueling Book awards base points calculated from the difference between each player’s rating and bonus points based on things earned during the duel. It is unknown how those points are calculated, but the players start again from 100 / 0 and the maximum rating is 2000. The matchmaking also is essentially the same. Even very high rated players >1800 still get matched with <1000 on Dueling Book, but the amount of points gained or lost is very small, so it is less sensitive to changes. That said, due to these “bonus points”, a high-rated (>1800) player can rank up relatively fast even by defeating multiple low-rated (<1000) players by meeting the conditions of those “bonus points” during a duel. This is easy to do if their opponents are weaker. This is known as boosting, a form of cheating where a player creates a second account to duel themselves and gain free wins. Elo already takes care of this but because you would gain smaller and smaller points for each win against a weaker player. However, because of the added “bonus points”, boosting is possible.

These “bonus points” add an element of bias. It’s equivalent to stating that a Chess player should get bonus points for each extra piece on the board at the end of the game. However, we know from Chess, that strategy is not necessarily dependent on which player has the most pieces. Rather, it’s possible for the player with less pieces to win by checkmate and that sacrificing pieces to win is also a strategy. In today’s metagame, one cannot judge who has the lead simply by counting the number of cards in the hand and field or even by looking at one’s LP. The game state is very complicated and the winner of a duel can turnaround at any time which is what makes Yugioh unpredictable and exciting. Hence, a ranking algorithm should not have any element of bias or subjectivity and only give points according to the difference between player’s ratings. In addition, it’s not good to start at the bottom (100 rating), but to start in the middle (1000 rating), as the algorithm will place a player better this way since it has no data for new players yet.

MTG Arena and Duel Links:

In MTG Arena and Duel Links, they count the number of steps. Each win is 2 steps in Bronze. A total of 6 steps allows you to advance to a new tier (Bronze->Silver). This means 3 consecutive wins in Bronze would mean you go to Silver. In Duel Links, it’s a total of 10 steps so 5 consecutive wins. The quality of those wins/losses don’t matter, only the quantity. This means all wins and losses are treated equal regardless of the strength of the opponent. This isn’t a rating system per se, but a level up or progression system. You can simplify this into a formula that just equals x*(Wins - Losses). These systems do not approximate a player’s rating but a player’s persistence (grinding) to get to the top. It’s inevitable that if a player regardless of skill, will eventually reach the top in these systems. It’s great for game companies since it causes more players to play and hence, they get more money in their pocket. In Elo, the strength of your opponent matters. A win against an opponent with Elo 1500 is different from a win against 1000 Elo.

Source: https://strategy.channelfireball.com/all-strategy/mtg/channelmagic-articles/how-many-games-do-you-need-to-play-to-hit-mythic-in-mtg-arena
The table below is the MMR step system used in MTG Arena.

The difference between Elo (used by DN) and MMR (used by MTG Arena & Duel Links), is that in Elo, the opponent’s strength matters. That is, in MMR, all wins and losses are treated equal. It is not a ranking system but a progression system like leveling up in an RPG. This motivates players to play more which is great for gaming companies. However, the purpose of a true rating system is to quantify a player’s skill. To do this, wins and losses cannot be treated equally because a win against a stronger player is not the same as a win against a weaker player. Hence, there is unequal weighting. This weighting is the basis of Elo.

YGO Omega’s MMR System

YGO Omega uses modified MMR. We did try Elo for a long time but we found that it discourages players to join the queue. The reason is that as you win more duels, your rating will go up, which means the risk of losing is greater (you will lose more points from losing than gain points from winning). This ultimately means that a player can fall to the bottom just by losing 1 duel even if they previously won several duels. Elo just doesn’t work in a game where probability is a factor. Since most players get matched with Bronze, losing to a Bronze due to a bad hand, isn’t good.

Hence, we do think that MMR is better but we want to be able to incorporate weighting. That is, winning against a stronger player should give more points than winning against a weaker player. So we made a custom table of points for MMR that is as follows:

{
  "Bronze": {
    "Bronze": {"Win":20,"Lose":-10,"Draw":-6},
    "Silver": {"Win":20,"Lose":-9,"Draw":-5},
    "Gold": {"Win":20,"Lose":-8,"Draw":-4},
    "Platinum": {"Win":20,"Lose":-7,"Draw":-3},
    "Diamond": {"Win":20,"Lose":-6,"Draw":-2},
    "Master": {"Win":20,"Lose":-5,"Draw":-1}
  },  
    "Silver": {
    "Bronze": {"Win":10,"Lose":-14,"Draw":-7},
    "Silver": {"Win":20,"Lose":-12,"Draw":-6},
    "Gold": {"Win":20,"Lose":-10,"Draw":-5},
    "Platinum": {"Win":20,"Lose":-9,"Draw":-4},
    "Diamond": {"Win":20,"Lose":-8,"Draw":-3},
    "Master": {"Win":20,"Lose":-7,"Draw":-2}
  },
    "Gold": {
    "Bronze": {"Win":5,"Lose":-18,"Draw":-8},
    "Silver": {"Win":10,"Lose":-16,"Draw":-7},
    "Gold": {"Win":20,"Lose":-14,"Draw":-6},
    "Platinum": {"Win":20,"Lose":-10,"Draw":-5},
    "Diamond": {"Win":20,"Lose":-9,"Draw":-4},
    "Master": {"Win":20,"Lose":-8,"Draw":-3}
  },
    "Platinum": {
    "Bronze": {"Win":4,"Lose":-20,"Draw":-10},
    "Silver": {"Win":8,"Lose":-18,"Draw":-9},
    "Gold": {"Win":12,"Lose":-16,"Draw":-8},
    "Platinum": {"Win":20,"Lose":-14,"Draw":-7},
    "Diamond": {"Win":20,"Lose":-12,"Draw":-6},
    "Master": {"Win":20,"Lose":-10,"Draw":-5}
  },
    "Diamond": {
    "Bronze": {"Win":2,"Lose":-22,"Draw":-12},
    "Silver": {"Win":4,"Lose":-20,"Draw":-11},
    "Gold": {"Win":8,"Lose":-18,"Draw":-10},
    "Platinum": {"Win":14,"Lose":-16,"Draw":-9},
    "Diamond": {"Win":20,"Lose":-14,"Draw":-8},
    "Master": {"Win":20,"Lose":-10,"Draw":-7}
  },
    "Master": {
    "Bronze": {"Win":1,"Lose":-24,"Draw":-15},
    "Silver": {"Win":2,"Lose":-22,"Draw":-14},
    "Gold": {"Win":4,"Lose":-20,"Draw":-13},
    "Platinum": {"Win":8,"Lose":-16,"Draw":-12},
    "Diamond": {"Win":12,"Lose":-14,"Draw":-7},
    "Master": {"Win":14,"Lose":-7,"Draw":-3}
  }
}

From the table above, you can clearly see that we did not just give 2 points for each win and -2 points for each loss like MTG Arena or Duel Links. The points vary according the to the strength of the opponent but this variation is fixed unlike in Elo.

Example. A Bronze player beats a Master player. The Bronze player gains 20 points and the Master player loses 24 points. Remember that we always need a penalty for losing. If there was no penalty, then “boosting” occurs where people give themselves free wins using an alternate account. It’s fairly easy to climb out of Bronze this way. It’s now both a progression system but also incorporates weighting.

The brackets are defined as follows:

Bracket MMR DP earned
Bronze 0 - 1149
Silver 1150 - 1499 30
Gold 1500 - 1849 60
Platinum 1850 - 2199 90
Diamond 2200 - 2549 120
Master 2550 or above 150

Each time a Player advances to a new bracket, they earn DP (Duel Points), which can be used in the shop. Duel Links, an official Konami simulator, does not use Elo or really any viable ranking system. In Duel Links, if you win 5 times consecutively regardless of the strength of the opponent, you will advance to the next bracket. This means winning 5 times against weak players is all you need. Only a winning streak rather than measuring the strength of the opponents. It rewards grinding. If you keep doing it, eventually you will get that 5-winning streak.

Matchmaking

The minimum queque size is 4 people. That means no matter how long you wait in the queue, unless it has 4 people at least, it won’t match. This ensures you have a higher quality of matchmaking because it finds the best opponent for you from at least 4 people. The longer the wait time, the better the matching but it also means longer waiting. There will always be a trade-off.

Resetting

Rankings are reset every new banlist. The question is should everyone reset to the start of the race or should those that are already ahead stay ahead? Currently, the reset will reset everyone to 1000 MMR each season (every banlist).

3 Likes