Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I have to completely change my question, because it was far too general. I now want to focus on how I can detect one type of cheating method.

How can auto-clicking be detected? In general, I am referring to software that will simulate mouse clicks or keyboard input automatically. It seems this would be useful for botting behaviour.

Can my software see other software the user's computer is running. If so, how does the software know what the other program is doing? Will it need to check the byte code for routines that simulate mouse/keyboard input?

Would it be useful for my software to detect if the mouse is jumping across the screen in a non-human-like behaviour? That is the first thing I can think of to stop it, as it would be the simplest but also the cheater might be able to simulate mouse movement that is human-like.

I should probably mention that I am most comfortable with Python and C++, and I am currently learning the Windows API.

share|improve this question
2  
en.wikipedia.org/wiki/… –  Sean Middleditch Mar 16 '13 at 4:32
    
@SeanMiddleditch Thanks, I am also really trying to determine how practical is it to stop cheaters if they really want to go out of their way to accomplish it. Will a team of developers be necessary to have the intellectual know-how to stop them, or can we easily stop them with known technology? –  Leonardo Mar 16 '13 at 4:37
1  
Depends on the game, which makes this question very hard to answer. In general, though, you can only decrease risk of compromise (of any kind), not eliminate it. –  Sean Middleditch Mar 16 '13 at 4:48
    
@Leonardo: A team of developers can probably stop a determined cheater from using bots, but it has little to do with intellectual know-how; it mostly relies on the developers making a game good enough that players won't feel the need to automate the tedious task of playing it. –  Marcks Thomas Mar 16 '13 at 11:52
add comment

1 Answer

up vote 3 down vote accepted

That can be tricky if the auto clicker has a Random var for the interval inbetween the clicks.

There are a few things you can do to detect/stop these guys: 1) Disable the part were the clicking occurs, if people need a bot to do some action it is simply too boring for a human being. (my no.1 suggestion, as it is not in your business to bannish players, and if the game itself is boring it is only your fault)

2) As for the detection of an auto clicker. There are a few types of auto clicking bots (I scripted bots for RuneScape) and there you would have:

Clicking on a specific 3d game object mesh inside the editor, all objects have an id. (ultra hard to detect).

Clicking on one specific gamespot for eg. the minimap, always one exact pixel in the players current pos. Players can set up an auto mouse to click in one point. (less complex)

1)

First thing you want to set, is the player online time table. - if a player has an "insomniac" entry (playing over 20h/day) mark him automatically as suspicious. In the game Tibia there is a fan website Pskonejott.com where anyone can see the online time of all players. Some stay up for 40 hours, I hardly believe it is Redbull rather than C++ :) Add it to his record if he plays over X hours.

http://www.pskonejott.com/otc_insom.php

2)

Make up a Log for actions and if the time between the actions is nearly identical mark that person as a bot. Player clicks on something, then after some time he clicks again. if he repeats this action every five minutes +- (1-2)% for 5hours, mark him as suspicious.

3)

Try to implement the web Captcha once every few hours if it is a browser game it will be easy to do. For instance the player gets> teleported and then he is supposed to type in the Captcha. No bot so far has been able to handle that. (Some humans got problems with that too) http://areyouahuman.com/demo/ Doesn't matter how many mistakes he makes, If he can't do it for 10 minutes/loggs out add this to his record.

http://areyouahuman.com/demo/

4)

Set up a quick report abuse system. With an ingame report abuse button. Encourage players to report suspicious actions, tell them to ask the suspicious characters if they are alive. If the player responds immediately/the reporter doesn't speak to him directly using his name "Hey Player, you there?" it likely means that the report is fake.

5)

Give all your workers ingame characters as Moderators/Game Masters along with volountary game masters. They actually should sometimes log into the game to know what is going on, and get a real bio from the players not just forums, if a player has a feeling that he might actually meet a Moderator it could prevent some of them from botting.

6)

Have a community manager to manage the bans, there always should be a judge to make sure no one gets deleted without an important issue. He should look through the player logs marked as suspicious and define if his actions can actually be botting.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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