TrueSkill Server Acknowledgements

[Home] [Help]

TrueSkill is a Bayesian ranking algorithm developed by Microsoft Research and used in the Xbox Live ranking and matchmaking service. The algorithm is patented and trademarked by Microsoft.

Microsoft provided two TrueSkill rank calculators on-line but sdly no more (i.e. these links are broken legacy links):

Both seemed more complicated than was needed, didn't support more than 8 players and were not apparently intended to provide a server for TrueSkill updates so much as demonstrating the algorithm and providing a benchmark for comparison against if re-implementing.

This TrueSkill Server was written by Bernd Wechner, with an aim of being as simple and lightweight as possible, while versatile and able to serve all of TrueSkill's features out to client applications and users for an unbounded number of players and/or teams, and to provide an interface that does not depend upon team definitions (that is, supports individual play, as is far more common in board gaming culture).

This server owes much thanks to:

This TrueSkill Server is written in Python using the Bottle web framework (in under 300 lines) with the form written in HTML with JavaScript driving the dynamic layout (less than 400 lines of JavaScript and 200 lines of HTML) with one small style sheet (under 200 lines) and two support files, one for help and another for acknowledgements.

It should run fine on any web server that supports Python, poses very light resource loading and keeps a log of all requests it serves.

Disclaimers

The help and interpretation of TrueSkill parameters is by no means certified by Microsoft Research. It is the best understanding that I have after reading the Microsoft Research papers, Jeff Moser's papers and discussing with Heungsub Lee

The server does not guarantee accurate TrueSkill results and thorough testing and comparison with Microsoft's raters (cited above) is worthwhile but not (yet) conducted.

Microsoft Research has improved TrueSkill and published TrueSkill 2. But until someone codes that up in Python we're unable to offer it here (hint, hint @Heungsub Lee or others).