views:

826

answers:

14

In many online chess lobbies, I've seen instances of 'engining', where a cheater would open a chess program at the same time as the main game window. He would then set it up so that the opponent's moves are relayed to the computer, then which he would copy the computer's moves, until he (almost always) wins.

As a game developer and moderator, what is there to do about this situation?

A: 

Im not very familiar with this enviroment. But maybe CAPTCHA would help stop automated robots. You could also generate statistics for your users (games won/lost/average speed to move, etc). The first movements should be fast, but later on the movements should be slower as complexity increases. so you can highlight cheaters, monitor them and maybe ban their accounts as Wikipedia does with some editors. You could even make a point based system as stackoverflow does, to whitelist known good/clean players.

Benjamin Ortuzar
Having captcha for each chess move could be a little frustrating for the non cheating users, don't you think?
Marek
It could be done every 10 moves, or X amount of time, not necesarilly on every move.
Benjamin Ortuzar
that would only be 10 times less irritating. Still too bad for noncheating users and will not stop the majority of those who want to cheat (cheat by hand by feeding opponents moves to another chess game)
Marek
+12  A: 

I can't see that there is anyway to prevent someone to using a chess engine to assist them, unless you can observe the player.

You might have some luck protecting against fully automated bots, though.

JesperE
A: 

Nothing effective.

Depending on how much access you have to the computer the user is playing on, you can scan his process list for known chess programs and kick him if you see one... but there is no guarantee that he is actually using it in the manner you describe, and he can always use it on a separate computer if he has duel displays or a KVM.

Cheaters will find a way to cheat.

The good news in this case, is that the computer programs for chess are reasonably beatable unless they are running on some serious hardware.

Good luck.

MikeEL
Due to Moore's law, your "good news" is not true anymore. Nowadays, a standard PC can beat a grandmaster.
Michael Borgwardt
+4  A: 

Sites like chesscube monitors you for some time if you comes under the radar of suspicion. They monitor how much time you are taking for hard moves and relative simple moves. If there isn't some serious difference, they may conclude you are cheating. Also I believe they implement some method to check the shifting between windows, however I'm not sure about what they use for it. But I personally know guys who had been banned. So their method is pretty good.

I second what JesperE say, You have to monitor the guy for sometime before arriving on an opinion.

Christy John
A: 

You can theoretically prevent the automatic relaying of moves (but doing it manually is not much of an obstacle unless you're playing speed chess), perhaps even prevent any chess programs to be run on the same machine. But IMO that's a waste of effort, because you'll never be able to prevent people from running a chess program on a different machine sitting next to them.

Michael Borgwardt
+1  A: 

Technically, there's nothing I can think of you can do.

Socially, there's a lot. For example, all of the online board game servers I've seen make very public the user's win/loss record, and compute the user's rank from that. Doesn't that just encourage people to want to win? Instead, I'd record all games, but not present a win/loss record anywhere (does anybody at a real chess tournament know how many games they've won/lost ever?). Make rank a user-entered number, used for the purposes of finding an appropriate partner only, so simply showing rating of 5000 is meaningless. If you need to have some kind of 'user rating', then add a commentary system, to let users comment on moves of other people's games, and then let other users rate the comments. Commentary is one thing I haven't seen computers do intelligently yet, so it's something you can probably assume comes from a real person.

Ken
"does anybody at a real chess tournament know how many games they've won/lost ever?" No, but we all know our Elo ratings and the ratings of everyone we'll play.
Bill the Lizard
That's a bit different (though when I played seriously, I usually didn't even know that).
Ken
If the win/loss record is used to compute the user's rank on a chess site, then the Elo rating is effectively the same thing in a real tournament. You know the ratings going in to the tournament, and you certainly do keep track of your win/loss/draw score *for that tournament* so you know if you're close to a prize.
Bill the Lizard
I do think that having a separate commentary rating is an interesting idea. I don't think it would ever catch on as a replacement for ratings based on actual play, but it would certainly help identify good teachers and players whose commentary you should pay attention to.
Bill the Lizard
Bill: I guess I'm a different kind of player. I have several tournament prizes in a closet somewhere (moving is a pain!), but I don't remember winning any of them, or thinking about it. My memory of chess tournaments is being in the back room discussing strategy with others.
Ken
+7  A: 

Many chess computers work to formulas and end game books, so they will often play the same move in a particular situation. You could run users game history through a variety of chess computers and see if the users chosen moves after the opening moves have correlation with how the various chess computers play. This could be used to highlight users that are using chess computers.

Martin Beeby
It's really hard to actually detect it directly-- going with correlative history comparisons is probably the best way to go. +1
Platinum Azure
A: 

I cant see any way of stopping this from happening - pretty much whatever you do the cheater will still be able to manually "copy" the move that the other player has made (to another computer if necessary).

How about somehow using social mechanisms to discourage these sorts of players? Cheating in this way is obviously in itself fairly unrewarding in the long term for the cheater - if you can find and eliminate / safeguard any potential gain (for example ranked tournaments with prizes) that the cheater might be able to use this to explit against, then you should at least be able to keep the percentage of cheaters down allowing most other users to enjoy "genuine" chess games.

Kragen
+3  A: 

As a holder of a similar site, I would suggest just to let them be. If you are not intended to monetize the bets, the cheaters will move to their level of Chess program that plays for them, and fall off. Best practice is to keep several player rooms according to level, thus cheaters will even be welcomed, allowing strong players to reach out to higher level, and adding practice to rookies.

alemjerus
+8  A: 

Online poker sites use anti-bot measures similar to what you're describing. I recommend the series of articles How I Built a Working Poker Bot for a good overview of how these systems work, and how they are defeated.

I agree with the others who said that there's not much you can do to stop the most dedicated cheaters, but you might be able to prevent casual cheating. (The problem with that, of course, is that then the dedicated cheaters will rule your site.)

Bill the Lizard
A: 

I don't know the specifics, but I'm sure you could get statistics about the behavior of players that cheat this way--in other words, find things that the cheaters have in common (length of turns, consistency, etc) and have your application automatically find those and put a "red flag" on players that look suspicious. Then you can personally review them (or have someone else do it) and see if indeed they look suspicious. If so, ban them.

Other than that, there is really not much you can do unfortunately. The above suggestion is a lot of work, so unless you're willing to put in the hours to create such a system, I wouldn't even bother with it. Whatever barriers you put up, determined cheaters will get around them.

musicfreak
A: 

I have two accounts on chess.com. The first one i use to cheat. I have rybka deep 3 which is the most beastly chess program i know. On this account i have played 70games and lost 8times. 6 of those times are to time running out. The other two was from playing two GMs. I would never enter a tournament with it because thats just crossing the line for me but regular rated game i cheat like crazy. I don't do it because i want to win. I do it because i want to see who can beat this program. The two GMs that beat it. It was one of the greatest chess games ive ever seen. They never won after that and i played them a lot after that. I have another account which is my legit account that balances out my conscience. Im more in between beginner and intermediate. Anyways great players can tell when someone is using a comp program. Ive been accused like a dozen times for cheating because some of the moves rybka pulls are just straight godly. I have gotten banned once before on chess.com for cheating. It sucked cuz I had some epic games saved on there but on my new account that i have for about 3months now has not been banned. Maybe because the people i play see it as a challenge than them getting duped. IDK but ill soon start losing on purpose to fall under the radar xD. So if you want to catch a cheater ill say look for people with ridiculous stats like 80games, 9losses, 3draws with ratings of 2200+(If youre using the regular chess rating system).

Cheater
A: 

I would suggest having them have a webcam behind them but slightly to the left so you could see if they were pulling up another window such as a chess engine, as a chess master (rated 5th in Canada) I was baffled at how I was losing against players so frequently on the internet (the high timed games, ironically whenever I beat an engine user I was immediately accused of cheating) yet I would never lose to anyone except those top players in Canada's country tournaments where the best of the best were there. The difference? Those people couldn't use a chess engine while I was staring them down as they made their move. All you people that cheat, I fail to see the point, you aren't winning, you aren't furthering yourselves in the games, all you are doing is wasting your time mimicing a computer, you aren't even analyzing the board! I only play 5 minute games and blitz because these cheaters can't efficiantly use their engines in such a short time period but this is not how chess is supposed to be played you are supposed to think about you moves.

Chris
A: 

chesscube is worst example i ever see in this case. Browser game with flash. You can cheat with a rusty screwdriver and programming flash for dummies. Anyway no way to check if people cheating or not. Good example is using a game and near a laptop with rybka or fritz and is no way to check if player cheating or not. My advice if you want do good is changing flash interface with a real downloadable interface that have a task that control if you change to many times tasks. Cant resolve the issue but help a lot. Generally cheaters is lazy too.

flash browser game is worst situation no way.

PALLINO