Yeah I know you love HRJesusYamato wrote:
Don't forget some players play with mods only.
Actually, I think it can be dealt with. If beatmaps would get a rating for each mods combination that have been played, it would just make the rating of mods players a bit slower as every map wouldn't be rated easily.
You've got a point. In my original post I said S-rank = win and A-rank = lose to makes things easier, but as you said it could use accuracy as well. And while the ELO rating system is limited to win/draw/lose, it's possible to detect whether the player is a clear winner/loser or not. The rating update could be weight accordingly._Void_ wrote:
The problem that I see is that there are some maps that are really, really easy to beat but have one stupid pattern where even good players can easily miss.
okay then, I’ll try to be a bit more specific about how the algorithm works, but it might look a bit weird as I am not used writing math stuff in English.Anongos and Cirno wrote:
[...]
First, one of the key point of the ELO rating is that it produces ratings that looks like what’s called a Gaussian or normal distribution (here’s one). In the image I linked the curve is centered on 0 and values above 4 or below -4 are rare. In chess, ELO ratings looks the same, but the curve is centered around 1200 (it’s the ELO rating of an average player), and values above 2500 ELO are rare (grandmasters).
The point is in chess, strategy game or whatever, there is always a large majority of average players, and a few exceptions (extremely bad or good). If look at the IQ of a population, you will get the same kind of distribution (centered around ~100, with few people above 130 or below 70). Well, I was trying to say that gaussian distributions are everywhere, not only in ELO ratings.
Enough theory, here’s an example: let’s suppose we start a rating similar to chess game in osu!
Step 1: all players and beatmaps are given 1200 ELO. It’s a “provisional rating” that will change really fast in the first games.
Step 2: First games are played. When a map is beaten, the player rating increase and the map rating decrease, as I said in the original post. After a few games (it’s really fast actually) and ratings updates, ratings distribution will look like the Gaussian distribution I linked you. The players skill will be approximately known, as well as beatmaps difficulty.
Step 3: When players whose skill is known play against beatmaps whose difficulty is known, the ratings are still updated, but at a slower pace.
Now, ratings are set.
A new map is ranked! What happens?
- The beatmap is assigned 1200 ELO. It will also be a “provisional rating”. In the first games played on this map, the map rating will increase/decrease faster than usual, but the established players ratings won’t be increased or decreased (it would lead to what Cirno described).
- When the beatmap difficulty is approximately known (it would be really fast for new ranked map as only ~20 play are needed), its rating will be set to “established”. From now, players rating will be updated when they play this map.
A new players appears! What happens ?
It’s the same than beatmaps actually. As long as the player’s skill rating isn’t established, the rating of beatmaps he/she plays on won’t be increased or decreased.
Yeah, obviously skill cannot be perfectly represented by a number, but ELO ratings work pretty well though. You know about Starcraft II? It’s a strategy game with 3 very different races (Terran, Protoss, Zerg) and a lot of maps that alter the strategies you can use. Depending on the races combinations and the maps, the player’s skill vary greatly. Yet Starcraft II uses a modified ELO algorithm for its leagues and matchmaking system, and it works pretty well (actually, most of the game's matchmaking features are based on ELO or other similar rating systems).Shiirn wrote:
Long story short:
There are too many aspects to osu! gameplay to quantify "skill" in a single rating system, and even if you COULD simplify them as such, there would be no efficient way to organize or base those ratings against other players.