我们写了一个游戏,你尽可能快地射击目标,有人写了一个程序来自动射击目标(通过模拟鼠标移动/点击).
我怎么能发现这个?我想过监控鼠标速度等等,但它似乎太容易绕过了.如果它有帮助,游戏在Windows上运行/用C语言编写.有没有办法只是说运动不是来自硬件?
解决方法
请参阅
How to detect if mouse click is legit or automated?本质上它说它无法可靠地完成,因为有几个原因,其中之一就是程序员会找到一种方法来绕过你想做的任何事情.
正如所建议的,启发式似乎是一个可行的选择.监控可变鼠标速度,未命中率和准确度,暂停,突然跳跃等.启发式方法越好,程序员就越需要让他的机器人更接近真正的玩家,并且他获得的成功越少.
PS:即使是像Counter Strike这样的知名射击游戏,也有hacks可以完美地拍摄一切,所以他们也没想出如何/不想要阻止它.