# Create player rankings?

I recently created a tournament system that will soon lead into player rankings. Basically, after players are done with the tournament, they are given a rank based on how they did in the tournament. So the person who won the tournament will have the most points and be ranked #1, while the second will have the second most points and be ranked #2, and so on...

However, after they are ranked in the new rankings, they can challenge other members and have a way to play other members and change their rank. So basically (using a ranking system), if Player A who is ranked #2 beats Player B who is ranked #1, Player A will now become #1.

I've also decided that if a player wants to compete in the rankings but was not present during the tournament, they can sign up after the tournament, and will be given the lowest possible rank with the lowest score (but they have a chance to move up).

So now, I am wanting to know which way should I go about planning this. When I convert the players from tournament to match rankings, I have to identify them with points. I decided I can do this 2 ways:

1  1000
2  900
3  800
4  700
5  600
6  500
7  400
8  300
9  200
10 100


Or I can have it set up in a exponential type of system where the points will be greater in between the players that are ranked higher.

After looking on the internet I've decided it would be wise to use ELO to give players their new rank after they players have matched against each other.. I went about it on this page: http://www.lifewithalacrity.com/2006/01/ranking_systems.html

So if I go about this my first way, and lets say I have rank #10 facing rank #1. My formula is:

R' = R + K * (S - E)


and the rating of #10 only has 100 points where #1 has 1,000. So after doing the math rank #10's expected value of beating #1 is:

1 / [ 1 + 10 ^ ( [1000 - 100] / 400) ]
= 0.55%


So 100 + 32 * (1 - 0.52) = 115.36

The problem I have with ELO is it makes no sense. After A rank such as #10 beats #1, he should not only gain something as low as 15 points. I'm not sure if i'm doing the math wrong, or if I'm splitting up the points wrong. Or maybe I shouldn't use ELO at all?

• If a very low-ranked person beats a high-ranked person, I think ELO assumes it was a fluke. This whole issue of ranking systems that only use win/loss as an input is complex. I recommend reading this: en.wikipedia.org/wiki/Elo_rating_system – Almo Nov 21 '14 at 20:59

An Elo-type system is designed to reflect a game where the #1 person is not expected to win every single match. A #1 ranked chess player might only beat the #10 ranked player 8 out of 10 times. The #1 ranked player is still better than the #10 ranked player but if you happen to observe only one of the 2 in 10 that the #10 ranked player won you wouldn't know that.

You can also tweak the variables in the Elo formula to make the outcome a single match have more or less impact on a player's score. "K" in that formula is the most a player's score can change in a single match. That is why you are seeing such a small change in score for a single match, the most the score could possibly change in your formula is 32. Also you are doing the math wrong, the #10 ranked player should be: 100 + 32 * (1 - 0.0055) = 131.824; they should get almost all of the 32 points up for grabs in that match because the expectation they would win was so low.

That 400 number should also be adjusted to your game. Using 400 assumes a player ranked 100 points higher wins 64% of the time. 400 in particular comes from chess, you might want to adjust this number as you observe the variability in your particular game. For instance, using 300 would mean a player ranked 100 points higher is expected to win 68% of the time and 1 would mean the higher score player is virtually always expected to beat the lower score player.

Newer systems like Magic's "Planeswalker Points" also involve a participation bonus to prevent high ranked players from simply not playing to protect their rank.