Mass Timeouts #2374
Replies: 2 comments 7 replies
-
2 was a problem in the past. 4 sounds overly complicated. 3 is generally preferable all around I think. Before implementing that though what needs to happen is someone needs to go through the data here: https://github.com/online-go/goratings , which houses the rating system test harness along with real world data, and do some case studies and analysis on what effect that would have on the rating system. My suspicion is that it might not matter much at all these days as Glicko is already asymmetric, but it's important to go through the motions here to make sure. Basically what we're looking for is sanity checking some know affected players and looking at the overall rank distribution before and after, and in general making sure everything still looks ok and we're not seeing sustained rank inflation. |
Beta Was this translation helpful? Give feedback.
-
FYI I did some testing on asymmetrically applying the rating as well as just applying all ratings and not doing the mass timeout mitigation, both definitely still produced notably worse results and in general inflated the ratings more than is comfortable, so unfortunately I think we're kind of stuck with our current solution. (Although messaging around what's going on could most certainly be improved.) |
Beta Was this translation helpful? Give feedback.
-
This one’s obviously a big topic, and a lot of discussion has happened on the forums, but also among devs. This discussion is an attempt to distill a lot of the complexities so we can hope to find a path forward.
The Mass Timeout UX problem
When a user times out multiple games in a short time frame (a.k.a. “mass timeout”) ranking changes from the timed out games do not take effect. This creates an incongruent experience for players who might expect to see their rank change after winning by timeout. Winning a game and not being awarded a rank boost for it undermines users’ trust in the solidity of the ranking system, and is a genuinely frustrating experience (players are often very proud of their ranks).
The current solution protects against failing on KPI number 2 (see below), by making sure a player who mass-times-out doesn’t see a huge rank hit. However, it does so at the direct expense of KPI number 1. While this current solution does solve one KPI’s output, it’s perhaps debatable from a fairness standpoint. It subtly penalizes multiple well-meaning players for the mistakes of one, or worse, the intended tactic of a devious player (imagine the case where a player knows about mass-timeouts and just strings along all the games he/she is losing until he/she then just times them all out to avoid the rank hit).
KPIs for UX success:
Proposed Solutions
Possible Solution Number 1
Keep things as they are, and accept a failure of KPI 1. To do this we’d need to continue to ignore the community’s complaints on the issue, and we’d accept that this UX is subtly damaging for the experience for players who receive unfair rank judgements when their opponents mass time out. In this case we may want to properly disclose the situation, with something like a flag/tag on mass timeout games, linking to a description of why ranking did not occur for the annulled game.
Possible Solution Number 2
Remove the mechanic that keeps mass-timeout games from affecting ranks. This seems like the heuristic route for the well-meaning players who would justly want to see their ranks increase when their opponent mass-times-out. It does come with the side effect of heavily affecting a single player’s rank when they mass timeout, followed by possible disengagement from OGS or rank-sandbagging as they attempt to regain their rank. While this solution feels “just”, it does damage the experience of the entire OGS ecosystem, because there would be X percentage of players who are just trying to climb back to their rightful ranks after a mass-timeout.
Possible Solution Number 3
Apply rank boons for winners in a mass-timeout situation, but leave the rank of the loser unaffected. This seems like a nice idea because it tries to both feel fair to winners while not overly penalizing losers (preventing sandbagging). However, it comes at the expense of KPI 3, because one person’s loss is not another person’s gain. It would also be possible to directly abuse this to avoid ranking down when you’re losing or to rank up other accounts (imaging keeping a 1 dan account around for intentionally mass timing out against other weaker accounts, thereby ranking them up quickly and easily). Over time this would potentially inflate the entire rank pool, making players appear on average a bit stronger than they are. And, frankly, it doesn’t properly punish someone for abandoning multiple games—there should be accountability. After all, there are people on the other end of the games.
Possible Solution Number 4
This idea could be considered a hybrid of 2 and 3, and would be more complex to implement. In this solution We would let ranks be affected as normal in the case of a mass-timeout, but instead of just heavily penalizing the player who timed out we’d give their account a special status. This status would basically be a way of letting them provisionally interact as their previous rank until they’ve sufficiently proved (through gameplay) that they deserve to keep their previous rank. This way the only player suffering consequences for the time-out is the person who made the mistake and timed out, but the consequences aren’t so dire that they abandon OGS or heavily damage the rank pool’s integrity by sand-bagging. The details of this are not even close to decided, but they may look something like this:
After a mass timeout (of say, 5 games or more), a player would be flagged as provisionally ranked at their pre-timeout rank. Let’s take for example that they are 1dan and the timeouts might collectively bring them down to 5kyu. The player would then be able to see and accept games listed for 1dan players, and if they play sufficiently well (over, say, 3 games) to show that they have 1dan ability then they could have the provisional status removed. While they’re in this state their account would be visibly flagged as having recently timed out, so other players could choose not to accept their games if they’re worried about that. The flag may serve as a deterrent for those who would attempt to grief the system somehow.
In this model, if a provisional player mass timed out again they’d just be ranked down. Likewise if they didn’t prove their rank by winning games within a reasonable time period they’d just get ranked down, not left provisional.
Moving forward
In order to make a solution for this problem become realized, we’ll probably need to first gather some baseline data about the complaint count, the sandbagging frequency, and the rank pool. That way we can substantiate that our fix has had its intended effect. That said, I think the reason this has been such a hot item is because we all suspect the problem is validated—it’s really more useful as a baseline for showing that our solution fixed something.
Testing this issue could be tricky, as it’s not something we can simply test with a few people in dev. It would need to be tested by us, functionally, and then validated by the community’s use of it—and hopefully an improvement of the above KPIs.
Beta Was this translation helpful? Give feedback.
All reactions