Tuesday, July 26, 2016

Adding a Time Component to Ranking Systems

Overwatch has added competitive play and a ranking system. The ranking system is a 0 to 100 scale, centered on 50. If you win matches you gain in rank, if you lose matches, you lose rank. As is pretty standard, the magnitude of the gain or loss depends on the rank of your opponents.

For the most part this system is pretty serviceable, but it has its quirks. For one thing, it's zero-sum: the ranking gained matches the ranking lost. Then Blizzard decided that if someone left a game in-progress, hitting the remaining members with the full loss would be too punishing, so the loss is greatly reduced. But since its zero-sum, the winning team gets a very small gain. Which is arguably fair, as there's nothing great about winning when you're up a person. However, this has led to people quitting when they are losing, to "punish" the winning team.

There are other issues. In general, your rank settles down after a while and does not really change, leading to a feeling of stagnation.

I think it would be interesting to add a time component to these ranking systems. The current system for Magic: the Gathering does something similar.  Here's my idea:

Let's start with the existing rank, R.

Then let's add the concept of a Time-Adjusted rank, T = nkR + nm, where n is the number of days since the start of the season, and k and m are constants.

What this does is cause the ranking curve to go higher and wider as time goes on. Let's say that on Day 1, the ranking system goes from 0 to 100. On Day 10, the Time-Adjusted ranks would range from 10 to 1010. (The constants adjust how the curve changes.)

However, the rank the player sees does not automatically increase each day.

The final piece we need is a Display rank, D. This is the number that players see, and are ranked by. The Display rank only changes when the player plays a game.  The Display rank increases, targeting the Time-Adjusted rank. The Display rank doesn't need to jump directly to the Time-Adjusted rank, it might do so in stages. Cap the amount gained per match, only jump halfway to the target, etc.

The big advantage of the Display rank is that it is decoupled from the real rank. It does not have to be zero-sum. Indeed, it does not have to decrease at all. You can set up so it always increases (or stays flat).

To go back to our earlier example, on Day 1 Jane plays a bit and has a real, time-adjusted, and display rank of 50. She then doesn't play for a week or so. On Day 10, her real rank is still 50, her time-adjusted rank is now 510, but her display rank is 50.  She plays a game and loses. Her real rank drops to 49, her time-adjusted rank is now 500. But her display rank increases from 50 to 150 (increase in display rank is capped at 100 points for a loss). As she continues playing, her display rank continues to increase, win or lose.

Such a system keeps the forward momentum going. You are always moving forward. The better players move forward faster and higher, but even the worse players see movement. The system also encourages players to keep playing steadily. You can't achieve a high rank early and then stop playing.

Since display rank is not zero-sum, you can do things like penalize leavers 10 points, without modifying the other players' increases.

There are a few negatives, of course. It's harder to compare players' skill, as a lower display rank might just mean that you haven't played in a while. And you do have to play steadily, especially near the end of a season. Playing the first two months and skipping the last month is worse than skipping the first month and playing the last two months.

Overall, though, I think a time-adjusted ranking system is better as a whole, and focuses people on playing the game rather than gaming the ranking system.


  1. One of the most disheartening things in PvP games is to discover that your efforts are actually causing your ranking to deteriorate. A system in which all players advance by playing - but the better players advance faster - is to be welcomed.

    1. I agree with this. The problem, of course, is that you have to be careful to avoid forcing people to "grind" to the top.

  2. The real purpose of a PVP ranking system is so that poor players don't get constantly demolished by good players. Having a high score is nice, but having a low score and still being able to win sometimes is better (from a customer service standpoint.)

    A better way to handle it would be to change the bracketing of a quitter to be higher. If you quit out of a game, your next game is going to be even harder. At some point, you are going to have to take your losses to get back down to your level. (And make sure it is just the bracketing that changes, not the displayed level -- this keep people from quitting to raise their ego-score. In fact, you could display both, and it would be easy for the community to tell who the quitters are.)

    I think that is a better system that isn't too onerous to occasional "I have to go because my mother just had a heart attack" quitter while dealing real punishment to the habitual quitter.

    1. Well, this system still has the regular rank R for matchmaking purposes.

      I don't think that putting quitters in a higher bracket is a good idea. It hurts the other people on the team.

      I also don't think that punishing someone in a passive-aggressive manner is a good idea. Punishments should be swift and unambiguous.

  3. They should keep it zero sum. Give the winning team the regular rank bump and a bigger portion of the rank hit to the players that disconnected before the end of the match. That'll do two things, big disincentive to players that quit losing matches, and less of a hit for the players that tough it out.

    1. The problem is that some disconnects are not the players fault. The internet is not 100%. Overwatch has been DDOS'd in the past. Harshly punishing disconnects is not the best way to go.

      As well, giving someone points they do not deserve (for winning 6-5) distorts a zero-sum system just as much. Ranking is not just points. It's also a probablistic estimate of how likely you are to beat someone of a different rank.

  4. It's an Elo matchmaking system, not a ladder to climb. Your rank has nothing to do with a reward system, it's just used to pair you with teams of equal skill. If a rank 60 player and a rank 20 player both play 30 games, they should both end up with about 15 wins and 15 losses.

    The bigger issue is the toxic players that dominate the games of players under rank 50 (or so). The only real cure for that is to find a group of people that you can stand playing with and play with them. Otherwise, prepare to use the Mute/Block feature a LOT.

    1. But why not both? The ELO matchmaking zero-sum system still exists. But just adding the time component turns into a ladder to climb.

      So from my point of view, I think you get the best of both worlds.