Neha Patil (Editor)

TrueSkill

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit

TrueSkill is a skill-based ranking system developed by Microsoft for use with video game matchmaking on Xbox Live. Unlike the popular Elo rating system, which was initially designed for chess, TrueSkill is designed to support games with more than two players.

Contents

Calculation

A player's skill is represented as a normal distribution N characterized by a mean value of μ (mu, representing perceived skill) and a variance of σ (sigma, representing how "unconfident" the system is in the player's μ value). As such N ( x ) can be interpreted as the probability that the player's "true" skill is x .

On Xbox Live, players start with μ = 25 and σ = 25 / 3 ; μ always increases after a win and always decreases after a loss. The extent of actual updates depends on each player's σ and on how "surprising" the outcome is to the system. Unbalanced games, for example, result in either negligible updates when the favorite wins, or huge updates when the favorite loses surprisingly.

Factor graphs are used to "pack up" each team into ( μ , σ ) pairs on which the update formulas are run; the skill updates are then correctly distributed to each player.

Player ranks are displayed as the conservative estimate of their skill, R = μ 3 × σ . This is conservative, because the system is 99% sure that the player's skill is actually higher than what is displayed as their rank.

The system can be used with arbitrary scales, but Microsoft uses a scale from 0 to 50 for Xbox Live. Hence, players start with a rank of R = 25 3 25 3 = 0 . This means that a new player's defeat results in a large sigma loss, which partially or completely compensates their mu loss. This explains why people may gain ranks from losses.

Use in other projects

TrueSkill is patented, and the name is trademarked, so therefore it is limited to Microsoft projects and commercial projects that obtain a license to use the algorithm.

References

TrueSkill Wikipedia