01-13-2013, 04:23 PM
Hello everybody,
I'd like to share some thoughts and ideas about Xonotic's ELO system, more precisely the one used to rank CTF players, for that is the one I had the chance to observe.
First of all, I have to ask for a little clarification on how the ELO variation is calculated. If my math is correct, it should be impossible that in a single match all the players have a delta ELO >= 0 (unless they all have 0). However I recall a match in which this theoretically impossible situation was in fact verified. This leads me to wonder whether:
a. the formula used is slightly different than the one published in the "Much ado about ELO" posts;
b. approximation is the culprit, in that maybe some "ELO did not change" were actually "ELO decreased by almost zero" (in players with a high K that could even things out);
c. I have a bad memory.
Secondly, a word about quitters. Since the ELO system was introduced I saw my fair share of quitters. Heck, I've also been one a couple of times (I ask for forgiveness) and, being a competitive person, I totally understand why this happens. But how to prevent it? I have a couple of ideas, and I hope at least one of them is feasible (i.e. the server stores enough data about the match to make it possible).
FIrst idea: count them anyways. Quitters usually quit near the end of a match, which means that most of the times they have played more than 50% of it. So if the server keeps the score and the playing time of the quitter, why not using it? This way people would be encouraged NOT to quit, as keep playing gives them the best chance to improve the situation.
Second idea: punish them by taking - say - 10 points off their ELO. I know this could be unfair because people may be legitimately forced to quit the game, due to a phone call, a door bell or a bad connection, but, well, this occurrences are relatively rare. Maybe we could set a "once a week pass", so if you quit and in the previous week you have already quitted, 10 points of your ELO will be detracted.
Thirdly, how about different (base) K coefficients? In the chess ELO system grandmasters have a lower K than - say - FIDE masters. I suggest that different K coefficients are kept even after the 32nd game. So, for instance: for players with 1000 > ELO >= 900, K = 5; for players with 900 > ELO >= 800, K = 10; etc. This would prevent the endlessly upwards trend we're witnessing now (4 months ago I was 10th with < 800 pt, IIRC), which in the long term will probably make it very difficult to climb up the ELO ladder.
Fourthly, let's introduce titles! This only marginally concerns ELO and I'm aware it has been already suggested elsewhere, but I re-voice the proposal. It'd be cool to have titles for people that reach certain ELO goals. Again, taking from chess, we could have a "Apprentice Master -> Master -> International Master -> Grandmaster" rank system. Titles could be visible in-game by making models wear a special badge, or a special outfit altogether.
I see the code-related difficulties, as this could also require a more robust players identification system. But it would encourage players not to play anonymously, an habit I saw spreading more and more recently (I'm looking at you Mr Anderson!!!).
Fifthly, we should reward the winning team. When the ELO system was introduced, players of the winning team earned ELO points, players of the losing team lost them. That did not work, so the system was changed to base the ELO variation on scores. I think this doesn't work either and, more importantly, it negatively effects gameplay. This way, in fact, players are just encouraged to score more, introducing a competition not only between the two teams, but also between players amongst the same team. I may be the biggest offender here. When I play my only concern is scoring as much as possible. I must score as much as possible, otherwise I lose ELO points, and I do care about ELO. Fellow teammates, however, pointed out that, due to my greed, I leave them with nothing to do, stealing flags and killing opponents in their crosshair (not on purpose I must say, but since I don't think about sharing points, statistically I'm the one who gets them). Consequently I've started to play anonymously (I go by the alias of Mr Anderson), which has the added benefit of being more relaxing and fun.
By rewarding the winning team we could mitigate this issue. Moreover, the game mode is ctf after all, a reward for the winning team should be given! I haven't thought yet about the technicalities. But if devs are interested I could produce some math.
Sixthly [it's fun because I have a dumb s (which sounds like th), IRL I could never pronounce that!], the many faces of ctf. I will probably get a lot of hate from everybody, but… Ctf in Xonotic is being played in three very distinct modes: vanilla, minsta+hook and overkill. In the ctf leader board there should be players with high skills in all the three modes (yes, ALL three). So I say, let's have three virtual leader boards, one for each mode, and then combine them (by sum) in the unique leader board we have now, without showing the single ones. This would have the added benefit of pushing people to play vanilla Xonotic, a topic which has been discussed a lot lately.
Ok, that's it. Just to be clear: I'm not trying to trash the work of Antybody, which is absolutely amazing. I'm just sharing some thoughts I had over the past months on ways to improve an already good system. I hope they could kickstart a constructive discussion about ELO and, why not, maybe even some improvements .
Thanks for taking the time to read this post, I apologize for the length.
I'd like to share some thoughts and ideas about Xonotic's ELO system, more precisely the one used to rank CTF players, for that is the one I had the chance to observe.
First of all, I have to ask for a little clarification on how the ELO variation is calculated. If my math is correct, it should be impossible that in a single match all the players have a delta ELO >= 0 (unless they all have 0). However I recall a match in which this theoretically impossible situation was in fact verified. This leads me to wonder whether:
a. the formula used is slightly different than the one published in the "Much ado about ELO" posts;
b. approximation is the culprit, in that maybe some "ELO did not change" were actually "ELO decreased by almost zero" (in players with a high K that could even things out);
c. I have a bad memory.
Secondly, a word about quitters. Since the ELO system was introduced I saw my fair share of quitters. Heck, I've also been one a couple of times (I ask for forgiveness) and, being a competitive person, I totally understand why this happens. But how to prevent it? I have a couple of ideas, and I hope at least one of them is feasible (i.e. the server stores enough data about the match to make it possible).
FIrst idea: count them anyways. Quitters usually quit near the end of a match, which means that most of the times they have played more than 50% of it. So if the server keeps the score and the playing time of the quitter, why not using it? This way people would be encouraged NOT to quit, as keep playing gives them the best chance to improve the situation.
Second idea: punish them by taking - say - 10 points off their ELO. I know this could be unfair because people may be legitimately forced to quit the game, due to a phone call, a door bell or a bad connection, but, well, this occurrences are relatively rare. Maybe we could set a "once a week pass", so if you quit and in the previous week you have already quitted, 10 points of your ELO will be detracted.
Thirdly, how about different (base) K coefficients? In the chess ELO system grandmasters have a lower K than - say - FIDE masters. I suggest that different K coefficients are kept even after the 32nd game. So, for instance: for players with 1000 > ELO >= 900, K = 5; for players with 900 > ELO >= 800, K = 10; etc. This would prevent the endlessly upwards trend we're witnessing now (4 months ago I was 10th with < 800 pt, IIRC), which in the long term will probably make it very difficult to climb up the ELO ladder.
Fourthly, let's introduce titles! This only marginally concerns ELO and I'm aware it has been already suggested elsewhere, but I re-voice the proposal. It'd be cool to have titles for people that reach certain ELO goals. Again, taking from chess, we could have a "Apprentice Master -> Master -> International Master -> Grandmaster" rank system. Titles could be visible in-game by making models wear a special badge, or a special outfit altogether.
I see the code-related difficulties, as this could also require a more robust players identification system. But it would encourage players not to play anonymously, an habit I saw spreading more and more recently (I'm looking at you Mr Anderson!!!).
Fifthly, we should reward the winning team. When the ELO system was introduced, players of the winning team earned ELO points, players of the losing team lost them. That did not work, so the system was changed to base the ELO variation on scores. I think this doesn't work either and, more importantly, it negatively effects gameplay. This way, in fact, players are just encouraged to score more, introducing a competition not only between the two teams, but also between players amongst the same team. I may be the biggest offender here. When I play my only concern is scoring as much as possible. I must score as much as possible, otherwise I lose ELO points, and I do care about ELO. Fellow teammates, however, pointed out that, due to my greed, I leave them with nothing to do, stealing flags and killing opponents in their crosshair (not on purpose I must say, but since I don't think about sharing points, statistically I'm the one who gets them). Consequently I've started to play anonymously (I go by the alias of Mr Anderson), which has the added benefit of being more relaxing and fun.
By rewarding the winning team we could mitigate this issue. Moreover, the game mode is ctf after all, a reward for the winning team should be given! I haven't thought yet about the technicalities. But if devs are interested I could produce some math.
Sixthly [it's fun because I have a dumb s (which sounds like th), IRL I could never pronounce that!], the many faces of ctf. I will probably get a lot of hate from everybody, but… Ctf in Xonotic is being played in three very distinct modes: vanilla, minsta+hook and overkill. In the ctf leader board there should be players with high skills in all the three modes (yes, ALL three). So I say, let's have three virtual leader boards, one for each mode, and then combine them (by sum) in the unique leader board we have now, without showing the single ones. This would have the added benefit of pushing people to play vanilla Xonotic, a topic which has been discussed a lot lately.
Ok, that's it. Just to be clear: I'm not trying to trash the work of Antybody, which is absolutely amazing. I'm just sharing some thoughts I had over the past months on ways to improve an already good system. I hope they could kickstart a constructive discussion about ELO and, why not, maybe even some improvements .
Thanks for taking the time to read this post, I apologize for the length.