News for hackers. Stuff that matters.
Re:Implementing the Elo Rating System (2020) by elcomet on Friday February 12, 2021 @03:12PM (#26118014)
Why do you say it's shit ?
Re:Implementing the Elo Rating System (2020) by jayd16 on Friday February 12, 2021 @03:22PM (#26118122)
Once you reach the top there's much less reason to keep playing. It doesn't have a great way to handle multiplayer situations. It doesn't handle confidence as well as some other systems ie it takes a while to skill test a player.

https://en.wikipedia.org/wiki/Elo_rating_system#Practical_is...

Trueskill and many others are often used instead.

https://en.wikipedia.org/wiki/TrueSkill

The biggest issue is fun is not the same fair and its a lot more complicated to tune for fun.

You could, for example, play 100 matches where you were given the closest opponent but at a disadvantage for every single match. There's a lot of other scenarios around how you want to fold in ping based match making and how that smaller pool effects the fairness of the matchhing.

Re:Implementing the Elo Rating System (2020) by nwallin on Friday February 12, 2021 @06:04PM (#26119598)
Elo is not a matchmaking system, Elo is a rating system.

Elo tells you how skilled a player is, how surprising a result (win, loss, draw if applicable) is, and how a player's rating should change based on a result and how surprising the result was. It does NOT tell you who should be matched up against who.

> The biggest issue is fun is not the same fair and its a lot more complicated to tune for fun.

> You could, for example, play 100 matches where you were given the closest opponent but at a disadvantage for every single match. There's a lot of other scenarios around how you want to fold in ping based match making and how that smaller pool effects the fairness of the matchhing.

Elo tells the system that if you play 100 games at a disadvantage, your rating should not go down as much when you lose, and should jump up more on a win. Elo is the math that tells the system that if your skill does not change, your score does not change, regardless of whether you play 100 games at disadvantage and lose most of them, or play 100 games at an advantage and win most of them.

I agree that Elo handles uncertainty poorly; when you're rating a chess player whose career is tracked over the course of decades, this isn't an issue, but online play with transient accounts, players who blip into a game when it's hot and then never play it again, smurfs and account buyers, people who take a break for a while and come back, patches which might radically change the meta, etc, uncertainty should be accounted for. Note that TrueSkill is, for all intents and purposes, just Elo+Bayesian inference. Like Elo, it is a rating system, not a matchmaking system. TrueSkill does not handle the problem of playing 100 games in a row against players who are better than you. TrueSkill, like Elo, just tells you what a result means, not which players should be pitted against each other.

Re:Implementing the Elo Rating System (2020) by noxvilleza on Friday February 12, 2021 @06:26PM (#26119797)
Elo-like systems (or various other rating systems) are often as part of a matchmaking algorithm - since you can easily calculate expected game win percentages for each party, and this allows you to create more enjoyable matchups. An example of this happens even in online chess: you're much more likely to be paired against a player with a similar rating, because you're much more likely to enjoy a match against someone similarly skilled.
Re:Implementing the Elo Rating System (2020) by jayd16 on Friday February 12, 2021 @06:48PM (#26119985)
Agreed. Elo is fine for ranking. The issue is its used to match make and it isn't great for that.
Re:Implementing the Elo Rating System (2020) by xmprt on Friday February 12, 2021 @03:51PM (#26118405)
What's the open source alternative to TrueSkill? It seems really interesting but it's patented by Microsoft.
Re:Implementing the Elo Rating System (2020) by philihp on Saturday February 13, 2021 @06:39PM (#26128136)
I wrote this library: https://www.npmjs.com/package/openskill

It's open-license, handles complex matchups (e.g. 5 vs. 3 vs. 4), comparable in predictive accuracy, and is up to 20x faster than TrueSkill. The implementation is also much simpler.

Re:Implementing the Elo Rating System (2020) by xmprt on Sunday February 14, 2021 @11:24PM (#26139068)
This is excellent. I love how simple the API is.
Re:Implementing the Elo Rating System (2020) by wizzwizz4 on Friday February 12, 2021 @04:18PM (#26118656)
They can't patent the general idea, so just base something off the information in the Wikipedia article. At time of writing, I don't think doing that would infringe their patent.
Re:Implementing the Elo Rating System (2020) by swirepe on Friday February 12, 2021 @06:05PM (#26119601)
Is your project non-commercial? You can use this[1] official bsd-licensed[2] library for non-commercial projects.

[1] https://trueskill.org/

[2] https://github.com/sublee/trueskill/blob/master/LICENSE

Re:Implementing the Elo Rating System (2020) by asymptotically3 on Friday February 12, 2021 @07:28PM (#26120286)
If it's BSD licensed, how do they limit it to non-commercial use?
Re:Implementing the Elo Rating System (2020) by stephencanon on Friday February 12, 2021 @08:28PM (#26120626)
BSD doesn’t have a patent grant, so it would still be protected by patent, even if there’s no copyright restriction on commercial entities using the code.
Re:Implementing the Elo Rating System (2020) by ummonk on Friday February 12, 2021 @04:34PM (#26118818)
Glicko
Re:Implementing the Elo Rating System (2020) by noxvilleza on Friday February 12, 2021 @06:28PM (#26119808)
Glicko (1 and 2) don't handle complex matchups well (as in, anything that's not 1v1). Trueskill was specifically designed to extend the Bayesian concept of Glicko in a more general way which allowed this type of use-case.
Re:Implementing the Elo Rating System (2020) by maybeOneDay on Friday February 12, 2021 @03:26PM (#26118165)
I accept your premise and the fact that matchmaking is hard but:

> You could, for example, play 100 matches where you were given the closest opponent but at a disadvantage for every single match.

not really, you'd derank aggressively and end up playing people at a lower level and presumably winning comfortably after some time.

Re:Implementing the Elo Rating System (2020) by jayd16 on Friday February 12, 2021 @03:39PM (#26118295)
It all depends on who happens to be playing the game to match with but you're right. Ideally you would quickly hit a good match and win.
Re:Implementing the Elo Rating System (2020) by smogcutter on Friday February 12, 2021 @05:05PM (#26119091)
One issue is that once you find your level, Elo should keep you around a 50/50 win rate. So it doesn’t feel like you’re making progress or improving even if in a real sense you are.

It’s also a bad fit for team games. But ranking individual contribution to a team is hard. Even for something like the NBA where there’s obviously a ton of incentive to do this, statistical methods rely on a large sample size and often need to be taken with a grain of salt.

Re:Implementing the Elo Rating System (2020) by Kranar on Friday February 12, 2021 @05:41PM (#26119394)
Most multiplayer games I know of, such as StarCraft, use a different score for single player and multiplayer games. You might have an amazing single player Elo score but a crappy multiplayer score and vice-versa.