如果人们想要机器人,我认为您不能真正阻止他们。
当然,您可以实施许多措施,这些措施或多或少使您感到痛苦。但是,您只能在代码库变成巨大的混乱,难以维护,容易出错并惹恼合法用户之前做很多事情。同时,冲突者总是会找到一种方法来击败您的对策:
- 他们比你更多
- 他们有更多的空闲时间(您必须在实际开发和bot验证之间分配时间,他们可以整天破解bot代码)
- 当您创建古怪,具有挑战性的防护措施时,将进一步鼓励机器人作者,因为打破机器人防护的乐趣很有趣
- 如果存在从机器人中获利的人的黑市,那么您越难编写机器人,则有价值的机器人将变得越有价值,因此您就会激发机器人攻击
基本上,您将被困在与冲锋队的军备竞赛中,并且根据上述要点的逻辑以及我在此类游戏中的经验,您将无法跟上步伐。
一些游戏开发人员采取了非常激进的反作弊措施:例如,Steam会扫描内存和文件系统以查找黑客攻击,而犯罪者可能会因丢失价值数百美元的帐户而受到惩罚。但是仍然有用于Steam游戏的机器人程序和其他黑客工具,其中一些甚至可以使用一半的时间。与它们不同,您拥有一个向用户开放的API,并且无法控制用户计算机。从一开始,这是一场艰苦的战斗。
您要解决的问题本质上是图灵测试:除了这是非常简单的图灵测试之外,因为您无法通过要求诸如语言之类的硬AI问题来作弊。不管您创建了多少种启发式方法,botter都会在机器人的动作中添加一些随机性以使其几乎完全模仿人类,这是微不足道的。让机器人观察一下您玩一点,甚至学会如何像您一样精确地计时动作,这甚至都不是难事。然后,当你禁止机器人,该botter职位巨大的咆哮关于他如何只是专用播放器论坛(也许他是实际上是一个假阳性)的铁杆玩家,你的核心观众将揭竿而起反对你。
使游戏太有趣了
有人使用机器人的主要原因是因为他们想跳过游戏的一部分。如果他们喜欢游戏并发现它很有趣,那么他们就不会让机器人玩游戏,而是自己玩游戏。
但是,如果游戏是如此无聊,为什么还要玩呢?大概,游戏的某些部分很无聊,必须去玩一些有趣的部分。例如,在MMO中,每个人都喜欢上一个关卡,但是没人愿意杀死42,324只不死的毒鼠来获得XP。因此,他们让机器人可以随意玩耍。
这并不是对您或您的游戏的批评,但显然至少有些玩家认为您的游戏有些乏味。您应该看看是否可以减少这些乏味的部分,并考虑添加更困难,更有意义的决策:与人类智力相比,机器人不擅长深层次的战略或横向思考,而且人类还喜欢做出艰难的游戏决策。
从您的描述中,我得到的印象是这是一个类似于Travian的浏览器游戏,其中有一个构建队列,其中包含一个最佳构建顺序和必须执行的某些“维护”(例如继续进行农业突袭)任务。您说没有冲突,但是在任何MMO戏剧中,小政治都是不可避免的(IMO是主要吸引力),因此,我敢肯定您的玩家会找到对头的方法。在这类游戏中,很多乏味来自于这些“维护”任务-玩家真正想做的是结成同盟并与敌对氏族玩外交游戏,然后维护成为一种税费,您必须唤醒最多在奇数小时发出警报,让其进入有趣的外交环节。所以切掉乏味:
不幸的是,这种方法可能并不总是有效。并非所有的玩家对乏味的玩法都具有相同的容忍度或相同的娱乐概念。您可能拥有99%的玩家喜欢的杰出技工,但1%的玩家却觉得无聊。如果1%的人随后开始编写机器人,从而破坏了99%的乐趣怎么办?但是最终,这是一个程度的问题。您永远无法完全消除僵尸,但可以将损失降至最低。
咬边冲击波
机器人的许多真正负面影响来自将其商业化的机器人作者。如果您是这种情况,则可以与机器人竞争。许多基于实时的在线游戏已经具有高级功能,可以进行时间跳过和自动化(例如扩展的构建队列)。这些相当于开发人员认可的官方机器人。如果您有这些东西,并对其进行适当定价,玩家将购买您的溢价而不是购买机器人。好消息是,您要负责API,因此您始终会在为自己的游戏开发质量自动化方面拥有强大的优势,因此,这对傻瓜游戏来说是一场失败的战斗。
这不会消除业余爱好者,也不会消除认为您的保费不是物有所值的人们,因此,此方法的有效性取决于情况。
手动寻找
就像我上面说的,您要做的本质上是图灵测试。由于与人的互动通常被认为是图灵测试中的一项艰巨挑战,因此您可以尝试利用它。
手动检查顶级玩家,看看是否发现任何可疑的东西。您甚至可以偶尔通过仅局限于您的想象力的方式来探究它们,以查看是否可以欺骗该机器人执行它不会做的事情。
虽然很难编写一种能够可靠地检测到机器人的算法,但对于人类来说,学习如何发现它们并不难。我认为许多浏览器游戏都使用这种策略,并且效果非常好。缺点是您要么一直需要做很多无聊的工作,要么需要向游戏管理员付费以进行定期的机器人巡逻。