I see accounts of people getting banned from sites like chess.com for using engines like Stockfish and Komodo (I admit I have used these engines before, but never in an actual match). Now, I believe there are certain characteristics of these engines that make them easy to detect. One I heard is the way you move the King, as well as every move being the best move possible (This one could be wrong). But I was thinking... couldn't chess engines not do the things that make them detectable, like play Kings less randomly, play sub-optimal moves in between optimal ones, etc, and become basically, as far as I can notice, undetectable? Is there anything about the way they are programmed that make this impossible or is this because of legality and morality?

  • @J... Failing the turing test in general is indeed about being 'intelligent' enough, failing to not be identified has more to do with replicating the same human 'stupidity' in the same way. – David Mulder Nov 12 '20 at 10:30
  • Human stupidity isn't a particularly efficient heuristic in a typical Turing test. And the best chess engines aren't based on brute force anymore anyway, but something more akin to analysis (alphazero is a neural network). Regardless I put 'intelligent' and 'stupidity' between quotes because they are inadequate terms, maybe I should have called it 'human fallibility', making sure that every action takes as long as it would take a human, making sure that the errors that are made are of consistent style, etc. – David Mulder Nov 12 '20 at 12:07
  • @J... chess.stackexchange.com/a/32880/2947 answer expresses my own believes why Chess Engines can be identified. As for neuron counts, neurons in neural networks and in the brain are only very superficially similar concepts, so comparing them is beyond meaningless. As for energy efficiency, a trained neural network is typically reasonably cheap to execute, it's the training portion that takes either time or energy. I would expect a dedicated chess engine to be more energy efficient than a human (obviously humans are flexible). – David Mulder Nov 12 '20 at 12:42
  1. Engines have no concept of natural moves and they have no fear. An engine will play for the most advantage, not for the most manageable advantage, even if it allows a fierce attack, because it sees that the attack does not work, while a human would probably prevent an attack and settle with a smaller, but practical advantage.

  2. "Randomly" picking good moves is not easy. The second best move may only be second best if you see a very hard ONLY MOVE which comes 15 moves after. And sometimes, the best move is very obvious, and playing the second best move would be very suspicious.

  3. It is not very known how engine detections on chess websites work, but I have read that they also account for playstyle inconsistency (ultra-aggressive to defensive, even though an aggressive move is available and not much worse), mouse movement, time management.

  • 2
    The third point is very important: There is no simple "one size fits all" set of measures that would universally camouflage engine use for every user. For 100% "protection", each cheater would basically need their own tailor-made anti-detection profile, trained with hundreds of their own games to play just like them themselves but a little stronger. Not very feasible. – Annatar Nov 10 '20 at 8:30
  • 2
    @Annatar Feed a collection of 5 or so suggested moves into the engine, get them back ordered according to how good the engine thinks they are. (Not so good for blitz of course) – Taemyr Nov 10 '20 at 12:23
  • Do you think advancements in AI can help chess engines to bypass all 3? – Apoqlite Nov 10 '20 at 17:18
  • 3
    @Apoqlite Certainly it could, but at the same time the websites will also be improving their anti-cheat detection as well. – Carmeister Nov 10 '20 at 21:43
  • 2
    @Annatar great point. Chess playing style (timing, decision making etc) could be an unique as hand writing – stevec Nov 10 '20 at 22:35

One very obvious indication for people using engines is, that they need roughly the same time for every move (usually about 5s in blitz games), even for the most obvious ones, which could be premoved. They also have much worse ratings in faster time controls (bullet). One example: https://youtu.be/rlxHusHfpck

  • 5
    On the opposite, I once made a mistake losing the queen in a quick game online, something a computer "sees" immediately (most other moves are pruned quickly) and it took the "opponent" 0.3 second to take it. A human, even seeing quickly the completely unexpected (and not anticipated = no premove) mistake would need at least 1.5~2 seconds to take it. A very fast move that shows, anyway, that the opponent is a comp – e2-e4 Nov 10 '20 at 8:17
  • @e2-e4 You should take a look at one of this HyperBullet/UltraBullet tournaments on Lichess. – Sleafar Nov 10 '20 at 16:45
  • As the chess engines usually used are a handful, it is possible that websites could be comparing the move made by the player with the move made by an engine at the same position. If the moves are consistently the same, then it is quite obvious that an engine is being used. – Paddy Nov 11 '20 at 8:00
  • @Paddy It's not that simple. If you would do that, you would accuse every top player who memorized 30+ move variations up to e.g. a forced draw of cheating. – Sleafar Nov 11 '20 at 9:39
  • 2
    @PeterLeFanuLumsdaine e2-e4 was talking about a "quick online game" so I assume it was a blitz game. I'm making moves regularly in times below 1.5-2s during blitz games (and usually regret them regularly as well). I seriously doubt you can accuse someone of cheating, because he took your queen in a time below 1s. Even if you could, this would be an indication that you play against a bot, not someone using an external engine. – Sleafar Nov 11 '20 at 13:43

Some of those things are possible in theory. Especially if you have a good idea what an engine-detector is looking for, you could maybe do some machine-learning training of algorithm against algorithm until you had one that could make good moves that didn't get detected as different from a given player's normal play.

But that would require someone to be interested in spending a bunch of effort to make software whose main use-cases included letting people cheat undetectably. Most people actively don't want that and would avoid doing so, even though there might be other uses (like for training, to play against a human-like opponent, if it's good enough to really play human-like, not just sneak under the anti-cheat radar).

So I think a significant part of what prevents that from happening is the ethics / moral code of many software developers. Or that for most people it's a somewhat less interesting goal than making a strong chess engine by any means possible. Not purely technical challenges if someone set that as a goal.

OTOH I could imagine some people might be curious to see if they could teach an engine to play more like a human, or play more like a particular human. And/or as @Akavall mentions, as a training opponent. That could make for some interesting research, although the danger of cheaters weaponizing the results would hopefully deter many researchers from pursuing it.

  • 3
    The caveat is that the whole point of cheating is to "win", but once you make your moves undetectable (mimics a real player), then you probably won't be winning with the same level of consistency. – Nelson Nov 10 '20 at 7:07
  • 2
    @Nelson: Right, but you can still win significantly more than you were before, and put your rating on an upward trajectory as you at least avoid blunders, for example. – Peter Cordes Nov 10 '20 at 7:09
  • 5
    Good points, but software that plays very much like a human would be useful for other things besides cheating, it could be useful to play training games against, for example, so there could be an incentive to develop it. – Akavall Nov 10 '20 at 7:43
  • @Akavall: Good point, that's a stronger factor in the plus side than what I'd thought of. But only if it's really human-like, not just fooling an automated cheat-detection system. Anyway, updated my answer to include that, thanks. – Peter Cordes Nov 10 '20 at 7:46

That's a bit like asking a congregation of people "is everyone here?" and expecting an accurate answer.

There may very well be chess engines that are optimized to fly under the radar of the cheat detection algorithms used at the major sites. But those are not the ones that get exposed and therefore they are not well known.


With the proliferation of machine learning systems and excess processing power, once you have enough play data, you can use readily accessible machine learning algorithms to determine a player's playstyle, and compare their moves against chess engine playstyles.

The exact mechanism and detail are university-level courses, so that isn't something I can explain in detail at the moment, but having access to a large amount of chess play data would make such analysis easily doable for someone in 2nd or 3rd year in computer science or data analytics. Machine learning is accessible enough that I think even a high schooler with particular interest would be able to do the analysis.

  • "easily" means here that he would know well, what to develop. The actual development would take from months to years. – Gray Sheep Nov 18 '20 at 1:25

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.