Just thinking out loud here .. couldn't you have some sort of slow-playing (intentionally taking a long time on each of your decisions to annoy your opponent and/or encourage them to resign) detection? Thoughts:
- You could measure how long, on average, a player takes to make a decision. If it becomes over some threshold after x turns (x is greater than 2, as in most games I would think the first few turns of the game are relatively long), their opponent can force-resign them.
- If decisions are intrinsically long for a player (it's a high-profile league game, players are playing with unfamiliar cards, etc.), that player can explain in the chat that they are simply having difficulty coming to decisions and need time. It is up to their opponent to respect this explanation.
- Players get n seconds per decision before a force-resign, and m seconds per turn before a force resign. m would be not all that larger than n, i.e. a player cannot just take n seconds a bunch of times per turn (for many turns).
- Players can have a small amount of "slow-play" tokens. I get, say, 1 of these tokens for every 10 games I play. I can spend a token to basically say my opponent is playing slow and I want to divide their time-to-force-resign by 10, or whatever.
- If I recall correctly, one of the biggest selling points of ShIT over Making Fun was its blacklist feature. And part of that feature was the ability to retroactively remove a often-blacklisted ("often" being over some threshold) player from all ranking algorithms, thereby removing slow-played losses from a player's ranking-contributing games. But as far as I know, this "removal" decision is not public. How do I know a horrible slow-player has been flagged enough? And can I mark them as horrible, i.e. different than a player that I blacklisted just due to, say, differences in undo preferences? This extra marking could contribute to the Stef-investigates-said-player more than the normal blacklist flag.
Now that I write this all out and think about it, it's actually seems like a pretty interesting problem to solve. It makes sense that it's not solved yet. How do other online games address it? Is there anything else we can do to improve the online experience?