top | item 27735659

(no title)

vfc1 | 4 years ago

I feel like I've been playing against it a lot in chess.com, with the tremendous amount of cheating that is going on online, every 1 out of 6 or 7 games is an engine user (I know because I report them, and they get banned).

It's great to have a better engine, but I feel that would benefit the most the online chess community is not a better engine, but an open source cheat detection system, if that's even possible.

I wouldn't know how to build one, but I think that is a lot more important for chess right now, still it's great to have a better engine so congratulations and thank you to the Stockfish team.

discuss

order

mewpmewp2|4 years ago

It's odd that it would be 1 out of 6 or 7, because when high elo streamers like Hikaru or Chessbrah are doing speed runs, they very often go on a 100 win streak, which sounds exceedingly unlikely if the odds of facing an engine user would be 1 out of 6/7.

An engine user would definitely beat them, unless they were using it sparingly of course, which can be, but I don't think it would be that obvious for you in this case as well.

There are examples where they face an engine and it's obvious, but it doesn't seem 1 out of 7 times.

knuthsat|4 years ago

I guess the problem is that most users that play with an engine don't play bullet/blitz.

I do meet a lot of engine players on 3 minute blitz but then I just do very fast bullet moves and all of a sudden I'm losing with a 90 second advantage that cannot be recovered if the user persists on playing with an engine.

nemz44|4 years ago

Hikaru and Chessbrah are playing at GM level. It'd be difficult to cheat at this level. Every player tends to recognise every other player, and it takes time to climb to this elo. A far more representative example would be to observe games from a NM or IM. These guys often bump into cheaters. 1 in 6/7 isn't unrealistic.

reader_mode|4 years ago

>It's odd that it would be 1 out of 6 or 7, because when high elo streamers like Hikaru or Chessbrah are doing speed runs, they very often go on a 100 win streak, which sounds exceedingly unlikely if the odds of facing an engine user would be 1 out of 6/7.

I would guess that even with the engine you would take some games to rank up to that high so if chess.com is good at banning cheaters most of them would probably get caught sooner.

kristofferc|4 years ago

Even against engines, a pro player will often win due to the other player running out of time due to the time loss in every move from copying the engine. You often see the game being slightly equal with the pro player slowly falling behind but then as the time starts to run out for the cheater they completely fall apart.

zsmi|4 years ago

Maybe it's not an engine but a GM on a 'speedrun'. I am pretty sure I couldn't tell the difference. :)

vc9999|4 years ago

Speed runs are 3min game, or even less.

It's much hard to cheat in 3minutes games. The chess engine takes somes time to think about the next move

r34|4 years ago

I've built a cheat detection system for chess few years ago. Our client paid for creating a chess portal to play chess for money (not an idea I'd put my money into - and it's been dead after few months). Anticheat engine has worked like that:

- simulate a game using stockfish

- for each move (except few moves at the beginning) compare the move made by player with the list suggested by engine - if the move chosen by player is on the list generated by engine, than give that player some points (depending on the position of the move on the list)

- do some math considering player's ELO and some other stuff (I can't remember exactly).

Definitely not an ideal solution, but also open for improvements. Btw it wasn't my idea - chess players provided the exact algorithm, so it must have been known.

oehpr|4 years ago

I mean, such a system already exists when players do analysis of their matches. The thing that makes a move identifiable as a blunder is that a chess engine evaluating the board before and after the move.

It's also worth keeping in mind that you will sometimes see players match the best engine move 95% of the time or more at the 800-1000 elo's and they're not cheating, it's just their opponent is blundering and the next move is obvious.

So specifically, you have to find when players matched up with engine moves, where the engine decided on an optimal move by looking far into the future.

antisthenes|4 years ago

And after a player has been labeled as a cheater, start matching them with other cheaters exclusively.

Nemerie|4 years ago

A small problem with using Stockfish is that cheaters may use other programs in order to not play like a top engine. For example, Stockfish would laugh at some old versions of Houdini, but Houdini still outplays any human easily.

dorgo|4 years ago

Just wanted to propose this approach. But I wouldn't call it cheat detection. It's more of "make sure my opponent is not better than X". It could even be integrated into the game by showing the players "forbidden" moves, which are too good for the current game-level and are therefore not allowed to be played.

chki|4 years ago

At what rating do you play? Around 1200 on chess.com? I don't see cheating as a big problem online for two reasons but I only play on lichess, not on chess.com.

First of all it's not that bad to play against a cheater once in a while. If you compare it with other games, playing against an engine is a huge disadvantage but will not fundamentally change the structure of the game. You are still playing chess, but against a superhuman opponent. You don't want to play against the computer but it's not as bad as the other player abusing a glitch in the game.

Secondly, I'm guessing that cheaters will mainly play at the entry level strength (1200 on chess.com) and a bit above that. If you are seriously cheating you will be caught very quickly. So maybe if you change your rating you might encounter less cheaters.

Edit: I just looked at your comment history to find out what your rating is and apparently you are playing (for an online game) with extremely long time controls? That's probably the reason why you are encountering many cheaters. The player pool for long online games is much much smaller, so you will automatically have more cheaters who just recently signed up for the game.

V-2|4 years ago

> If you compare it with other games, playing against an engine is a huge disadvantage but will not fundamentally change the structure of the game. You are still playing chess, but against a superhuman opponent

It wastes your time. Playing against a human is a different experience. If you actually wanted to practice against an engine, you would do so knowingly. With some possible benefits such as takebacks etc. (since computer is not a rival, just a training tool).

It wastes your rating points - if you play rated games. Obviously not everyone does, or cares about their online rating; but I do to an extent. For one, while rating isn't a goal in and of itself, it's still a convenient form of tracking my progress, and cheaters distort this measure.

Finally, it wastes your nerves. However insignificant this may be in the scheme of things, I think that most people still dislike being cheated or lied to (in any way or form) simply out of principle, and find that frustrating.

muzani|4 years ago

I thought something like lichess actually compares the player's moves against something like Stockfish and if it matches too closely, they flag that user.

deeviant|4 years ago

> I feel like I've been playing against it a lot in chess.com, with the tremendous amount of cheating that is going on online, every 1 out of 6 or 7 games is an engine user

This statement seems a bit funny because in order to have a good idea that they cheated, you would have also had to been analyzing the game with the chess engine.

Regardless, unless you truly an amazingly player, nearly any chess engine made in the last 15 years will destroy you and incremental improvements on stockfish have absolutely not effect on that.

jperras|4 years ago

> This statement seems a bit funny because in order to have a good idea that they cheated, you would have also had to been analyzing the game with the chess engine.

You analyze the game after it is played. When your opponent managed to have a 99.9% accuracy in a 1500+ ELO blitz/rapid game, it's highly unlikely that they managed to do that without some computer assistance.

madflame991|4 years ago

How do you figure out they're using an engine? Are there obvious human moves and AI moves?

eertami|4 years ago

Sometimes yes, computers play a certain way and make moves that simply aren't intuitive to humans, especially not lower rated players.

However the most obvious cheaters are more easily given away by time between moves. When they take the same time between every move whether it be a deep positional move or an obvious recapture, you can be quite sure something fishy is going on. Sometimes they can have literally 1 legal move and still take 10 seconds to find it.

A good player using an engine sparingly however would be very difficult to spot in online chess, especially in a single match.

michaelt|4 years ago

Well, obviously it's impossible to know with 100% certainty. Some heuristics include:

* Some cheaters will just 100% match the best engine moves. If a player consistently does exactly what Stockfish would do that's an obvious giveaway.

* Some cheaters will be manually copying moves between the chess website and their engine; in high-speed games ('blitz' and 'bullet' chess) their abilities plummet when there are only a few seconds left on the clock, because they can't copy fast enough.

* Similarly, a player who takes 5 seconds a move whether they're pounding out a basic book opening or making an inspired move in an extremely complicated situation will raise suspicion.

* Some cheaters will just be improbably good for their known background. A few weeks back some billionaire beat five-time world champion Vishy Anand in a charity game (where Anand played a bunch of different games at once) which is the chess equivalent of Mark Zuckerberg outrunning Usain Bolt.

* Chess engines will sometimes make moves that even the top humans fail to see. All the action is happening on the right of the board, and some innocuous move on the left of the board produces a perfectly executed forced mate in 15 moves? Some people will look at that suspiciously.

Of course, a sufficiently careful cheater could cheat without triggering any of these heuristics - a player who only relies on the engine for one or two key moves can easily be undetectable.

JosephRedfern|4 years ago

I guess a basic implementation might compare the moves performed by the player under evaluation against the move that an engine would suggest?

Presumably an excellent player might often make the same moves as an engine, so this measure alone isn't going to be perfect. But it could be a starting point. You might also look at the player's historical performance and watch for suspicious changes, or perhaps look for patterns in the time taken to play the move?

lionkor|4 years ago

I guess you could compare the outputs for different engines with that of a "suspicious" player - if their moves match exactly, flag them, if it happens too many times, ban them. Something like that.

sudofail|4 years ago

Maybe you could evaluate based on changes in player's performance or ELO. If they rapidly begin advancing, it could be more likely they are cheating.

sobellian|4 years ago

There is such an open source system: https://github.com/clarkerubber/irwin. It seems that the last commit was some years ago, so it's either very stable or no longer used. At any rate, this is what powers anticheat on lichess.org.

anitil|4 years ago

Why do people bother using an engine? Is there money on the line? It just seems pointless to cheat at a hobby.

esyir|4 years ago

Good luck. Those of us in other gaming spheres have been running up against this problem for aeons now. We're not winning. I can only imagine that detecting cheating is even harder in chess.

TenToedTony|4 years ago

How can you tell it's an engine user?