Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Elo rating system: start value when players can join the game constantly

Tags:

system

rating

I've implemented an Elo rating system in a game. There is no limit for the number players. Players can join the game constantly so the number of players probably rises gradually.

How the Elo values are exactly calculated isn't important because of this fact: If team A beats team B then A's Elo win equals B's Elo loss.

Hence I've got a problem concerning the starting values for my rating system:

  • Should I use the starting value "0" for every player? The sum of all Elo values would be constant. But since the number of players is increasing there would be some kind of Elo deflation, wouldn't it?
  • Should I use any starting value greater than 0? In this case, the sum of all Elo values would constantly increase. So there could be an Elo inflation. The problem: Elo points lose value but the starting value keeps always the same.

What should I do? Can you help me? Thanks in advance!

like image 437
caw Avatar asked Dec 10 '09 14:12

caw


People also ask

What Elo rating do you start with?

The starting value for Elo is always the current average. ELO is a zero sum game, points lost by player A are gained by player B. When you set a starting point at 1000 what you are essentially saying is that the average player = 1000 pts.

How does Elo rating system work?

A player's Elo rating is represented by a number which may change depending on the outcome of rated games played. After every game, the winning player takes points from the losing one. The difference between the ratings of the winner and loser determines the total number of points gained or lost after a game.

What does my Elo rating mean?

The Elo rating system measures the relative strength of a player in some games, such as chess, compared to other players. Its creator, Arpad Elo, was a physics professor in the United States and a chess master who worked to improve the way the U.S. Chess Federation measured their players' skill levels.


2 Answers

You can start at zero and add a fudge factor to the displayed score to keep it above zero, or you can start at 1000 - they are the same thing. Yes, with the 1000 starting point you'll have an increasing number of total ELO points in the system but it will always be the same number per player on average - 1000. The starting value for Elo is always the current average. ELO is a zero sum game, points lost by player A are gained by player B.

When you set a starting point at 1000 what you are essentially saying is that the average player = 1000 pts. With a closed group of initial players (beta testers?) this is true, within that group average = 1000. But if the game is something you improve at with time then your closed group average player becomes highly skilled compared to someone who hasn't played.

Now when you assign a 1000 to a new player you are saying new average players = existing highly skilled average player. This is not true, they are likely to be much less skilled that your original closed group. So the new player loses points and your highly skilled players gain => inflation. What you would need to do is accurately assess the skill of new players and assign them a ranking that is more in keeping with their actual skill. This could be done be assigning them a "provisional ranking" for their first x games until you get a feel for their skill. When provisionally ranked only their ELO score would change, not those of the people they play. Once they join the real system the points they bring into the scored ELO would roughly equate to their actual skill and they wouldn't move up or down dramatically => no inflation or deflation.

In short: Provisional rankings

like image 60
Andrew Avatar answered Nov 17 '22 14:11

Andrew


This site used the elo rating system. They start at 1200

taken from http://gameknot.com/help-answer.pl?question=29

GameKnot rating system is based on Elo rating system with a fixed K = 20 and the following modifications:

The first 20 games are used to establish player's rating on the website. During the first 20 games, the player's rating is calculated as an average of the ratings of all his/her opponents, +400 in case of a win, -400 in case of a loss, same for a draw. +/-200 points are used when playing against a player with a provisional rating. PLayer's rating is provisional during the first 20 games, after which it becomes established. Player's rating is considered to be equal to 1200 during the first 5 rated games.

Timeouts are counted as wins only if there were at least 3 moves made in the game (losses are always counted for the timed out players, regardless of how many moves were made).

The higher of two ratings, at the beginning of the game and at the end, is used to calculate the rating adjustments after the game is over.

For example, if during your first 20 rated games, you played 3 games and you won against 1200 player with provisional rating, then against 1400 player with established rating, but lost against 1600 player with established rating, your rating will be: ( (1200 + 200) + (1400 + 400) + (1600 - 400) ) / 3 = 1467

Or, if during your first 20 rated games, you win against 1200 provisional, win against 1400 established, lose against 1600 provisional, draw against 1500, your rating will be: ( (1200 + 200) + (1400 + 400) + (1600 - 200) + 1500 ) / 4 = 1525

like image 45
Kieran Avatar answered Nov 17 '22 15:11

Kieran