在游戏行业,似乎有这么一个不成文的规律,只要是爆款游戏,往往都会有外挂的存在,尤其是竞技游戏。同时比较尴尬的是,这种不公平行为严重影响了游戏环境和大多数玩家体验,所以,反作弊是所有竞技游戏开发商都需要面对的挑战。

作为全球最受欢迎的MOBA游戏,《英雄联盟》已经连续多年成为全球收入冠军,前不久,该公司刚刚宣布其MAU超过了1亿。所以,反外挂对于开发商拳头公司而言同样不是轻松的工作。

最近,《英雄联盟》高级反作弊工程师Phil Koskinas在官方博客中讲述了拳头公司近几年反外挂的一些成果和方法,他透露,过去3年来,超过700万个账号被封,其中有500多万都是腾讯处理的,以下是GameLook整理的详细内容:

反作弊的三种形式:

如果你在阅读这篇文章,很可能你的账号没有在《英雄联盟》被禁过。和我们所反对的作弊者一样,反作弊团队通常更像是影子部队,默默观察游戏数据并且判断一个用户的行为是否涉嫌使用外挂。

总的来说,反作弊团队专注于保护游戏的公平竞技环境,禁止任何人通过不公平优势与其他玩家竞争。在处理这种令人讨厌的游戏行为时,我们会采用多种方法,但主要分为以下三类:预防、检测和惩罚。

预防:这里主要是加强游戏设计或者加入一些阻止玩家作弊的措施,这种方法是针对所有人的,让作弊行为不那么容易;

检测:我们捕捉一些无法阻止的行为,这些行为的表现数据各有不同,包括不断升级的客户端存储控制以及追踪玩家行为的高级机器学习模型。

制裁:有时候,你也必须挥舞正义之锤,虽然有时候可能会经历多次封号,但这些惩罚措施可以让无辜者避免被当成作弊者。

为什么要保留反作弊团队?

答案很简单:由于一些玩家的作弊。大多数人都希望赢,或者更重要的是,赢得游戏可以给人带来优越感,而外挂提供方希望通过给玩家带来不公平的优势来换取经济利益,我们要让这种行为无法盈利,让作弊者无法通过外挂获得优势。

需要提到的是,我们希望让《英雄联盟》被当作具有体育精神的竞技游戏,因此所有人的竞技规则都必须是相同的,如果你可以买段位,那就是没有意义的。

反作弊团队主要是一群黑客/技术大牛,我们的成员有一些是之前的外挂开发者,有些是数据科学家,还有1-3名分析师。

最近,我们飞到深圳与腾讯的反作弊大师举行了联合训练。中国的反作弊环境简直是炼狱难度的,而且外挂制作者通常是团伙作案,所以我们找到新的方式第一时间辨别这些外挂的提供方,通过各种形式的措施,我们打造竞技游戏的全球标准。

《英雄联盟》里的三种作弊行为

有时候,但你发现账号被禁的时候,通常是因为以下三种原因:脚本、代练和僵尸挂。

脚本挂

《英雄联盟》提供的是服务器授权式服务,每个客户端都链接一个管理游戏状态的服务器相连,这句话的意思是,你们所看到的外挂并非进入了上帝模式或者修改地图(这些是可以直接被排除的),而是试图自动获得一些优势。脚本挂或许是MOBA游戏里影响最大的外挂方式,脚本指的是通过外部程序执行操作或者为你的游戏行为提供非正常能力的程序,比如自动瞄准、自动追踪冷却时间以及自动连击等等,这些行为为外挂使用者提供了对其他人不公平、非常人能够执行的操作。

通常来说,使用外挂的方式会更高明一些。首先,一些黑客会用特殊的软件对游戏客户端解包,他们会找到游戏最重要的功能所在,通过写定制代码的方式涉及这些功能,最后,他们会给游戏里注入不安全因素,通过API的形式让其他开发者写自动搅拌或者某个英雄的逻辑代码。作弊者们会在游戏使用这些脚本,并且向他的朋友们展示着急并不具备的高超技术。。

我们首先来看看过去几年《英雄联盟》里的脚本挂使用情况和封禁状况:

青色曲线代表的是每天游戏排位出现脚本挂的比例,从整体来看,这个比例是越来越低的,说明游戏环境趋于健康。封号比例(金色曲线)指的是同期被封号的玩家比例,以下数据是非常值得注意的:

过去三年来,我们全球封号数量超过700万个,其中有500多万都是由中国的腾讯公司处理的。如今,排位赛出现脚本挂的概率已经降到了1/400;

在2018年,只有9%脚本挂导致了玩家申诉,在作弊者真正能够登录游戏之前,他们平均被封禁的号达到5.1个;

我们已经把脚本挂出现的概率降到1%以下,所以目前更加重要的是专注预防措施,而不是惩罚措施。

可能还有人会问,“这些作弊软件真的有用吗?”不妨看看下面这张图:

很明显,通常情况下,正常玩家的胜率应该是50%左右,而外挂使用者的胜率最开始几乎都在60%以上,即便是到了2018年仍高于50%。不过,从外挂使用者的胜率下滑趋势来看,反外挂措施也是取得了成效的。

脚本挂通常在一些功能型英雄比较有用,比如ADC或者后排,为了降低极限操作带来的巨大影响,我们故意增加了容错率,比如削弱了痛苦之拥/寡妇制造者-伊芙琳的Q技能,这样正常玩家面对外挂的时候也可以有一定的机会。

为了让行为检测更有效率,开发者们还对自动操作增加了额外的延迟,迫使他们表现得更像正常人。

持续对脚本供应者的打击迫使他们不断地改变平台和代码库,试想一下,当你试着让车子平滑行驶的时候,有人不断地偷偷把汽车螺母拆掉,会是什么结果?

这是一个缓慢的过程,但我们可以自信的说机器暴动至少被延迟了几十年,你可以放心地使用微波炉,并且确保它不会和LOL客户端互动。

代练

有时候,从白银打到黄金可能会让很多人筋疲力尽,所以就会有人希望别人替自己做,通常被称为代练,之所以有代练,主要是玩家想要获得更高的赛季末奖励,比如68%的代练通常发生在黄金5段位,当然,还有一部分原因是有人希望通过段位展示自己的技术。

按照经验来说,如果在黄金3的匹配中遇到钻二段位的选手,你的体验会非常糟糕,如果有铂金5段位的代练,那就更糟糕了。最佳的竞技体验是同段位水平玩家之间的竞技。所以,当一个玩家的表现和所处段位严重不符合的时候,我们就会考虑是否存在代练情况。

代练往往是很难阻止的,所以我们通常只是专注于特别明显的代练行为,有些东西出于保密的原因,不便在这里透露,但基本上来说,一个玩家的正常游戏行为和代练之间的差别是非常大的,我们每个赛季都会通过算法方式去掉一些人的赛季末奖励,我们并不封号,但对于打击代练行为已经取得了更好的成效。

不同段位的代练行为分布

我们打击代练的目的是不让这种违规行为形成利益链,从这方面来看,我们还有很长的路要走。从今往后,我们将考虑更好辨别和关闭代练服务方式,这些是我们从腾讯学到的战术。

僵尸挂

另外一种就是升级机器人,这在游戏业是很常见的。《英雄联盟》是一款免费游戏,所以账号创建的门槛很低,我们封掉的几百万帐号当中,他们很多人需要新的账户再次作弊,而只有帐号到了30级才能解锁全部功能,于是快速升级又称为了外挂重灾区,这也是我们想要避免的,因为这些僵尸挂的存在不仅会影响新手游戏体验,还会让我们的惩罚措施形同虚设。

所以,我们也对此专门进行了针对,我们团队里有很多博士生,这些人对于机器人模型非常了解,因此可以快速区分正常玩家与机器人的区别,他们也看了大量的玩家行为报告,所以ARAM模式就成为了重灾区,因为这是快速升级最简单的游戏模式。

上图展示的是每个月ARAM模式各区域的僵尸挂数量,从发展趋势可以看出,我们对僵尸挂的打击是有成效的,我们的最终目标是彻底禁止这种行为,但我们也不希望让玩家们受损失,所以这些账号会在被出售之前就被封掉,而且减少僵尸挂可以节约我们的服务器成本。

当然,上面的列表并不是全部,作弊者们始终在寻找新的方式作弊,虽然这意味着我们的存在是有必要的,但同时意味着我们还有大量的工作没有完成,我们专注于竞技游戏环境的公平性,而且会确保采取所有必要的措施来保障玩家体验。