V社用1700颗不停转的CPU来对抗CSGO作弊者

2018-03-27 17:39作者:游久来源:

  Meet VACnet”是V社开发的深度学习系统,用来粉碎CS:GO的外挂问题。

  所有的多媒体游戏都在与作弊者进行无止境的斗争。CS:GO在2014年快速发展,成为世界上最受欢迎的FPS游戏,同时某些原因让它更容易被黑。

  CS:GO作为基于Source引擎开发的第10款游戏(CS主系列的第三款),早已经有一堆关于如何篡改V社引擎的资料。一些给诸如半条命2一样的老游戏所开发的外挂,只需要经过几分钟的修改,也许就能在CS:GO里面使用(虽然V社声称外挂会被检测到)。作为一款与角度和准确度相关的熟练性游戏,从设计上看,这一点也让外挂更加有效率。游戏中的武器伤害很高,所以它们在外挂玩家手里更具有破坏性。CS:GO中的信息和隐藏非常重要,知晓对手的位置信息价值连城,这使得透视挂在游戏里面如鱼得水。

  按照V社的说法,反外挂斗争是“很重要的,很有价值的工作”。如果你玩过FPS游戏,你可能已经注意到从几年前开始,游戏环境变得更好了。不仅表现在Reddit上的投诉和外挂视频出现频率变低了,而且作弊行为(这种行为与其他损害竞技游戏健康的行为一样有危害性)似乎消失了。伴随着一次大规模封禁作弊者的新闻浪潮,我们也高调发布了关于禁用账号的一些故事。这些被禁用掉的,是作弊者中的一大部分,那么V社是如何清理出这些混蛋的呢?

  作弊者不知道我们要这么做,游戏玩家对此反应很开心,我们重拳打击了作弊者,这感觉太棒了。——McDonald

  上周在旧金山举行了游戏开发者大会,深入探讨反外挂这一话题的机会不多,在这唯一机会上,V社的程序设计师Jhon McDonald讲述了他和V社如何利用深度学习技术来解决CS:GO的作弊问题。这一方法非常有效,因此V社正尝试使用深度学习技术来解决一系列的问题,例如从反作弊到DOTA2的方方面面。并且V社正在积极寻找其他工作室一起合作,想要在Steam平台的其他游戏上也部署他们的这一基于深度学习的反作弊方案。

  解决CS:GO的外挂问题

  McDonald有一个专门用来接收CS:GO玩家电子邮件的私人电子邮箱。在2016年项目之间的某个时候,基于在线讨论和那个私人电子邮箱里的信息,McDonald注意到“整个社区在讨论的唯一的一件事情就是作弊”。他说,那些关于作弊的讨论无处不在,VAC系统的禁用数量大大增加,这也佐证了V社所收到的作弊泛滥信息。

  为了解决作弊问题,V社和McDonlad把目光转向了深度学习。深度学习有很大的潜力,它能够随着时间来变化和调整,能更好的应对新出现的作弊技术,这一点对V社很有吸引力。比起来雇佣成百上千的员工来处理作弊,深度学习能够自动应付Stream上的多个方面的问题,选用深度学习方案更是历史的选择。经过一年时间的开发,V社推出了被大家所熟知的VACnet。

  Overwatch是面向CS:GO玩家的重播工具,可以用来评估那些因不良行为而被举报的玩家。VACnet可以和Overwatch协同工作。老VAC是V社使用多年的客户端和服务器端技术,当有玩家在游戏中运行不良程序时,VAC用来识别这一行为。但是VACnet不是老VAC的新形式。VACnet是一个新的附加系统,使用了深度学习技术来检测玩家在游戏中的行为,它熟悉作弊的行为方式,然后根据动态标准来发现并禁用作弊者。

  McDonald表示一些“微妙”的作弊还是难以发现,在开发VACnet时,V社决定首先解决射击模式。因为在游戏里面进行射击时,所表现出的射击模式很特别,很容易定义。可以用角度来衡量玩家在瞄准时的俯仰(Y轴)和偏移(X轴)变化。V社可以建立一套系统,这套系统可以捕捉射击前0.5秒,射击后0.25秒这期间的瞄准角度变化。这些数据和其他的信息,例如玩家持有的武器,敌我之间的距离,射击结果(打中了,没打中,爆头?),都是独立的“数据粒子”,他们一起构成V社所称的“数据原子”,其中包含了描述每次射击的数据包。

  与过去相比,玩家遇到的外挂更少了,与作弊相关的讨论也大大减少。——McDonald

  但是VACnet不能只基于一个数据原子就识别出作弊者。“我们需要一系列数据原子,实际上我们需要140个,或者说目前我们的模型里面需要这么多……随机从八个回合抽取140个数据原子,把数据导入模型中,然后我们会想,“如果你在人类陪审员面前展示这140次射击,你有可能被定罪么?”。

  事实证明,这效果很好。游戏玩家和VACnet都会举报需要在Overwatch中进行裁决的疑似作弊者。但是VACnet举报的疑似作弊者,他们几乎都作弊了。

  “当有人向Overwatch提交一个举报时,被举报玩家开挂的可能性只有15%到30%,这一概率随着一系列因素变化,例如不同的时间,游戏的发售情况,当前是不是在春假期间等等。虽然有很多情况,但重点是:人举报的准确率很低。”,McDonald这么说。“VACnet的准确率很高。当VACnet提交一个举报案例时,被举报玩家开挂的几率是80%到90%。”

VACnet的人机良性循环VACnet的人机良性循环

  但这并不意味着V社打算逐步淘汰它的作弊者剧院——Overwatch。二者协同工作:VACnet从Overwatch中学习检测技术。McDonald说,“我们正在使用Overwatch,而且事实上我们没能取代所有的玩家举报,我们只是做了补充。这意味着VACnet有机会和人类审判员一起发展。所以当人类审判员发现新的作弊行为时,VACnet有机会做到同样的事情。

  McDonald补充说,为了使VACnet发现新型作弊,使用玩家数据对其再训练,刚训练完成那段时间,在作弊者没有作出相应应对前,检测准确率可能能接近100%。V社在本月早先时候悄悄在CS:GO的2V2模式加入了VACnet,McDonald说“这一模式下的检测准确率一度高达99%,这很漂亮。作弊者不知道我们要这么做,玩家们对此反应很开心,我们重拳打击了作弊者,这感觉太棒了。”

54核的每个刀片服务器拥有128G的RAM,4个支架上每个都有16个服务器54核的每个刀片服务器拥有128G的RAM,4个支架上每个都有16个服务器

  大型的反作弊系统

  为了使VACnet能充分发挥,必须建立一个服务器集群,用来处理CS:GO数百万的玩家,海量的数据,并且这个服务器集群要随着CS:GO的增长而拓展。现在每天大约有600000场5V5的CS:GO比赛,每场比赛V社需要大约4分钟来运算,为了评估所有这些比赛中的所有玩家,每天的CPU工作量加起来有240万分钟,需要大约1700个CPU来完成这项日常工作。

  所以V社买了1700个CPU,后来又额外买了1700个。“所以我们有拓展的空间”,McDonald这么说,暗示V社有意把VACnet引入其他游戏。保守的说,V社在这些硬件上必须花费至少几百万美元:64个刀片式服务器,每个有54个CPU,128GB内存。仅在2017年,CS:GO预估的销售额就有1.2亿美元,服务器的花费相比较之下,微不足道。但是这可能是为单个游戏构建的最强大,最好的反作弊系统。

  这项工作仍在继续进行中,但在McDonald看来,VACnet很强大,有潜在的应用价值,不仅能在非V社游戏上应用部署,也能在Stream上的其他游戏上部署。“深度学习对行为进化而言是变革性的技术”,McDonald这么说。“我们认为深度学习的确帮助开发者从单调的重复性工作中解放出来,同时不会对玩家产生任何负面影响。与过去相比,我们的玩家现在遇到作弊者的次数更少。比起来刚开始进行反作弊工作那会,现在关于作弊的讨论也大大减少。

  2017年12月初,这套反作弊系统迎来新的里程碑:在Overwatch中,VACnet的判定准确率更高了。McDonald说,“这套系统工作的非常好”。

官方微信

网上冲浪记事官方微信