How to Catch a Chess Cheater
uschess.org
uschess.org
It's one thing that bother me about many online games (like counter strike). Unless they make a completely locked up computer, fighting cheats (server-side) is a losing battle. The bright side is that when they become really indistinguishable from good players, we can rest easy that the play isn't being degraded at all (expect for the cheaters themselves) :)
Except that you have to beat all future detectors as well, which is a lot harder to get access to. E.g. this is how athletes sometimes get caught out doping; they use methods which are undetectable today, but fail in a year or two.
I don't really want to press this comparison too far though, not only are the prevalent levels completely different, but doping is also a lot less clear cut than cheating in chess / counter strike. It's pretty obvious when you're cheating in the one, whereas you could argue that using as-yet not banned substances is fair game. Mind you, we have had players type in recoil-resetting scripts at competitions, and argue that it's just a configuration, so perhaps it's not as clear cut as I make it sound.
You will find neither the ultimate cheat, nor the ultimate cheat detector.
Detecting performance enhancement solely by looking at performance is a losing battle for the detecting side.
Taken by itself, I'd tend to agree with you. In practice though, I think this can easily swing the balance in favour of the detecting side. Another angle to analyse chess games would be to see the degree to which a player's moves correlate with known chess engines. Over a long term (say, a few dozen tournaments worth of games), this type of evidence would be particularly damning; the types of chess engines which play relatively human-like, yet still are top-tier simply don't exist. Given the difficulty in creating them, and the relative rewards, I wonder if it will ever be practical to cheat.
1. Restrict what clients see and do, server-side. Many cheats rely on the fact, client game software internally has much more information that it presents to the player (wallhacks, radars/ESPs, etc), and server trusts client-originating data more than it should (speedhacks, norecoils, spawners, etc).
I know, those're due to attempts to reduce network-induced lags and lowering server loads, but having a more powerful server-side (and have an occasional desync if network lags badly) doesn't sound like an unacceptable trade-off to not have players upset by cheaters.
2. Embrace cheats as features and raise everyone abilities to best cheater's ones. There's no need to, say, have an aimbot if you have an "official" in-game ability to have autoaim.
Maybe then we'll finally have scriptable/hackable games, where one could "legally" automate routine tasks and be on a "good" side. Oh, and that MMO grinding/farming phenomena would finally die for good.
I haven't tried it in probably 15 years (and, I'm sure technique has improved exponentially, since then) but as long as you can access and reverse-engineer the data protocol (which you almost always can), you can add code logic to gain an edge.
Even if it doesn't appeal to everyone, it might keep the worst of the botters away from the games that don't want them.
> Regan also believes that a centralized authority can best fix public confusion about what constitutes scientific versus unscientific procedure. It’s too easy for people with a poor methodology to spread rumors online.
Ok, this seems reasonable.
> Eventually he would like to oversee the conversion of his 35,000 lines of C++ code into a Windows-driven program or portable app. “I see other people using my methods but not necessarily using my program,” he says.
35,000 lines! After skimming the article, I'd hope it could be done much more compactly in a high-level language, say, Julia, Clojure, or Python.
I'm not sure this is really a true analogy to the examples of catching users of performance enhancing drugs; it would be more like saying 'your time on the track has improved by too much for us to believe, so you must have cheated, and therefore you are disqualified'.
Perhaps it would be better to use his software to target people for higher scrutiny, rather than as categorical proof of cheating. Cheaters, however, could just make sure that they always cheat, and ratchet up the search depth at a rate below the maximum permissible improvement rate.
This method will work only until cheaters up their game (pun intended).