Trueskill is an algorithm for estimating skill, more formally it’s a ranking system.

You’ve probably heard of the elo rating system, which is widely applied throughout various competitive sports and games. Like any rating system **elo** has some issues that Trueskill is better at handling.

### short explainer

The trueskill algorithm maintains two values for every player mu and sigma.

You might be familiar with these terms as parameters to a distribution, a normal distribution in this case. They encode the expectation of the algorithm of a players skill.

The more certain the system is about your skill the lower the standard deviation gets. The higher the system expects your skill to be, the higher your mean gets.

Using these values you can take multiple players and predict the outcome of a match.

Roughly put this works as follows:

- Take the skill parameters of each player
- Introduce extra uncertainty
- different games / contest models have varying levels of susceptibility to skill. In other words, if RNG / chance impacts the contest, we include it here.

- If we’ve got teams then we combine probabilities
- We use the resulting numbers to determine who’s most likely to win.

Moserware 2 provides an extensive valuable explanation

### Limitations

**landslide victory**
True skill doesn’t care about the extent to which you win, just your rank for any given game.

If a player suffers complete and utter defeat at the hands of an opponent, it’s just the same as if that opponent had beaten them by a small margin.

Including such factors can improve the rate at which it converges.

**mutli-faceted skill**
True skill doesn’t care that you’re good at some things but bad at others.

This is very important when one is considering team formation problems. A team of top performing DPS players will likely lose to a more well rounded team of lower skill.

It’s likely that modelling multi-faceted skill reduces the ability of the algorithm to converge quickly, but can yield it’s merits.