Question

Supposing a multi-player game, what you be the fairest way give final scores based on the previous scores of all players.

For example, in a two player match, player A having two times the score of player B. "A" finishing first would not give him a lot of points; finishing last, he would lose quite a lot of points.

Was it helpful?

Solution

Microsoft has a pretty cool rating system that I have in my queue to implement someday. It is called TrueSkill. It lets you adjust ratings for players in head to head and when on teams. You can read about it here: http://research.microsoft.com/en-us/projects/trueskill/details.aspx

The advantage is that it is supposed to gravitate towards your True Skill quickly (usually in 20 games or less). The disadvantage is that it is quite complicated.

The ELO System (and others like it) have a disadvantage in that they suffer from a problem called point inflation. For example, if 1500 is intended to mean the average player, over time that will no longer be the case. With enough games, the true average (for the population as a whole) will eventually increase. Thus, the average player really may be 1600 but the intent was for 1500 to be average. Thus, many average players think they are better than they are:).

However, the advantage of the ELO system is that it is very easy to calculate.

OTHER TIPS

Have you ever read about the Elo Rating System, used in chess?

I don't think it's an exact fit for your scenario, but it might give you a few ideas.

You probably want to use something like the FIDE uses for chess scores, which is the Elo rating system

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top