有两种抵制僵尸程序的方法。它们是客户端保护和服务器端分析。
从某种意义上说,客户端保护是最明显的方法-蛮力。您将尽一切努力确保游戏客户端完全合法,未被篡改并且没有其他程序影响该客户端。现在这是一个棘手的问题,不可能完全解决。但是许多游戏都尝试了这种方法,并取得了一些成功。我知道有一些现成的解决方案可以保护客户,并建议您寻找它们。自己实施是一项艰巨的任务。
客户端保护除了效果不到100%之外,还具有令您的播放器极为烦恼的缺点。通常,这意味着禁用alt-tab任务切换,防病毒程序等。
服务器端分析的侵入性较小。通过这种方法,您可以使用一些服务器代码来分析玩家行为的模式。大多数情况下,机器人的玩法明显不同。例如,人类玩家在两次动作(例如射击)之间有不同的时间,而这一次服从钟形曲线分布。原始漫游器将具有恒定的时间,或在一定间隔内均匀分布。有趣的事实:使用这种方法,我们曾经用机械人(一种巧妙的设备,可以在其物理键盘上按下按钮)来吸引玩家。不用说,没有多少客户保护可以抓住这一点。不过,这种分析并不完美。更多高级机器人将欺骗您的系统,您实施的检查越多,高级机器人将变得越多。
为了获得最佳保护,可以将这两种方法结合使用。客户端保护将使开发机器人更加困难,而服务器分析将阻止快速开发的简单机器人。但是无论您做什么,都永远无法完全停止机器人。好吧,除非您派遣代表到球员的家中,否则他们必须监督球员的比赛并举报违规行为。(顺便说一下,这并不是闻所未闻的。我肯定读过一个有关在线扑克公司将人们送往一个非常成功的玩家家中的故事,以确认他的游戏合法。但是我现在似乎找不到它。)
还有两个针对机器人的可疑建议。一,加密您的网络流量。我认为这不会奏效。如果您的客户端处于敌人手中,则可以并且将对流量进行解密...或者您自己的客户端将用于加密。另一方面,加密会增加延迟,这对于“实时射击者”来说确实很糟糕。第二个建议是“仅以此设计游戏”。虽然这似乎是一个不错的主意,但我还没有看到一个能解决这个问题的游戏。