不仅是技术问题:FPS游戏外挂为何难根治?
最近常关注竞技游戏的盆友可能都被一条消息刷了屏,CS:GO国服公布了一份近7000人次的封禁名单,评论区一片喜大普奔,让人错觉仿佛封禁的那些不是开挂的玩家,而是一个个穷凶极恶的法外狂徒。
那为什么一份作弊名单就能引得所有人同仇敌忾呢?为什么MOBA游戏中几年碰不到一个挂比,而玩FPS游戏就常常被人追着脑袋射?都是网游,难道FPS限制作弊很难吗?
对,限制FPS游戏作弊是件艰难的事,FPS游戏作弊门槛低,收益高,难辨别,从雷神之锤踹开电竞大门的那天开始,各公司雇佣的反作弊小组与全世界黑客大军的斗争就没停止过,这场战争似乎没有尽头。黑客成份复杂,动机不一:技术宅做外挂纯粹是技术挑战;求胜心强盛的玩家造外挂是为了赢;商人靠外挂赚钱;还有些人很迷,反正很闲,不知道为什么就做外挂,不知道为什么就流传出去了。。。
这个是某黑客瞎统计的世界黑客地图,反作弊小组主要与美国人打仗
低门槛:因为数据在本地
游戏流畅是必须的,而技术水平是有限的,这是网络游戏的一大痛点。回合制游戏还好,聊天战斗什么的对流畅性要求很低,中途网络失链也无伤大雅,MOBA游戏要求高些,但是零点几秒的失误是可以弥补的。但FPS游戏就不一样了,几毫秒,定生死,对流畅性的要求极高,但现在能在毫秒时间内将数据往返几十个来回的服务器与计算机不是一般厂商和玩家用的起的。
因为射击游戏对流畅性要求很高,游戏操作必须得到即时反馈,所以大量数据都是在客户端即时进行的,然后将运算的结果传给电脑屏幕和服务器,并不需要服务器的验证与回传,或者说不能等待服务器慢吞吞的回应,硬要等待的话,那么玩家就会发现自己在玩回合制游戏。
20tick是1秒20回合,120tick是1秒120回合,守望先锋属于前者
MOBA游戏中,是服务器告诉客户端,你在做什么。FPS游戏反之,是客户端告诉服务器,我在做什么。FPS游戏部分数据运算是在客户端进行的,而客户端又在玩家手上,这就为游戏作弊者提供了方便,FPS作弊门槛低的根源就在于此。作弊者大可以告诉服务器:我的血量是9999999。
比如穿越火线,正常情况下无法穿墙,客户端内的碰撞检测会让玩家乖乖呆在合法区域,但如果用作弊器或者BUG影响碰撞检测算法,那么玩家就可以到达非法区域,此时服务器检测到非法行为,系统给出惩罚,或者说是补救措施:持续掉血或者直接判定死亡,所以某些卡BUG开外挂的猛士出地图不久就GG。外挂制作者针对这个问题继续优化,不断向服务器发送“该玩家还活着”的信息,持续说服服务器,玩家得以在非法区域射冷枪。
此外挂的逻辑应该是客户端告诉服务器:玩家击杀了xxx。
像穿越火线穿墙挂一样的作弊器就是内存外挂,修改数据,欺骗服务器,简单暴力,破坏性很强。只要是大量数据在客户端处理的网络游戏都会被内存挂占领,DNF就是其中的佼佼者,其外挂五花八门,秒杀挂,刷图挂都弱爆了,嘲讽挂,站街挂,智能骂人挂才是真正有艺术价值的外挂,不过最有趣的还是出粉装秒杀队友的刷图挂,很好玩。
内存外挂有局限,它很难修改服务器负责的数据模块,比如LOL,所有数据都要经过服务器大法官的检验,非法操作一律不执行,想修改数据的话你得先黑掉腾讯的服务器,然后做好被企鹅的王牌律师逼死的准备——双重非法,MOBA游戏作外挂不仅门槛高,风险也大。
私服,就是篡改服务器数据,说它是外挂也没毛病。
收益高:从万人之下到众人之上
FPS的核心规则很简单:快速而准确的瞄准。玩家的天分是不一样的,有七八秒打不中前方正中间的固定靶(不要觉得不可思议,笔者我就是个活生生的例子),有人能在自己都没反应的过来情况下依靠肌肉记忆0.1秒超视距爆头,这其中的差距能有几百倍,再加上FPS网游角色普遍血薄,反应快的玩家一对多完全不是问题,所以个人主义,英雄主义在FPS游戏中的流行不难理解,而秒杀敌人,一对多,个人极限翻盘的带来的成就感也是超强的——一个人靠暴力碾压了其他十几个人,能不爽吗?
在FPS游戏中,透视挂可以让你知晓敌人位置,永远快人一步;自瞄挂可以解决所有准星乱晃的问题;穿墙挂更是无耻,你能打敌人,敌人却伤不到你;无限子弹挂可以让你毫无顾虑的封锁区域,自由进攻……外挂收益之高相当于从底层乞丐变成高层掌权者,具有极强的诱惑性。而相对应的惩罚力度又弱,最多是重新买个198的经济损失,更何况那些暂时封禁的处罚措施,30天后又是一条好汉,几乎不痛不痒。
至于MOBA游戏,首先开发者难以开发出十分强大的外挂,其次外挂对玩家的帮助也有限,因为MOBA游戏中个人能力是有上限的,攻速只能到某个值,金钱只能买属性有限的装备,其他属性实际上也有极限,所以MOBA中玩家很难以一对多,技术高了只能秀,无法屠,个人英雄主义被大大削弱了,另一方面,部分队友总会让敌人变的更强,不是吗?
不知道未来的法律是否会规定游戏作弊的相关事宜
难辨别:人都分不清,更别提电脑了
FPS玩家看死亡回放有时会比较懵逼:这家伙的准星这么准,是不是自瞄?这个家伙怎么知道我在这,是不是透视?自瞄这件事守望先锋玩家或许是最纠结的,因为人物血厚,所以部分不知道是高玩还是挂逼的准心会在人身上黏更久,让人对整个游戏环境充满怀疑,信任变得廉价——蛋疼的是,出于延长游戏生命周期的考虑,暴雪未放出游戏录像功能,所以玩家没有充分的资料去审查嫌疑人是否有作弊。
最让人崩溃的感觉:这个家伙怎么打不死?
在CS:GO里似乎就要人性化一些。除了以检测内存代码为原理的VAC反作弊系统,V社还引入了“Overwatch”模块,利用人工审查来清除作弊份子。系统会给出匿名嫌疑人的视频,由被授予权限的审查者投票判定他是否开挂:有证据不足和明显开挂两个选项,只有压倒性的投票才能将嫌疑人判决,而证据不足的嫌疑人继续观察。这种玩家审查的方式不仅减轻了官方负担,也提高了清挂准确率,如此一来,那些一眼就能看出来的暴力开挂玩家很快就会被剔除出游戏。
然而,没有不透风的墙,像Overwatch这样的玩家审查也并不是万能的,审查者可以观察嫌疑人是否开挂,开挂者也可以演戏对不对?假装没开透视,发现敌人是运气好;假装没开微自瞄,偶尔打偏几枪送死,关键时刻再大显神威,一个个都是影帝。虽然说有开挂,但这些影帝为避免被认出,多用的是影响小的辅助性外挂,自身又要演戏躲避审查,在菜鸟看来和高手没什么区别,在高手眼中也就是个平级的对手。
除却演技党,还有种非内存外挂也很难辨别,使用者常称其为辅助软件,鼠标宏和按键精灵就属于软外挂。鼠标宏是安装在鼠标驱动或者鼠标硬件内的一个程序,本身对游戏数据影响很少,所以系统无法检测。而按键精灵是在输入系统上面做手脚,输入指令总是比正常玩家快准稳,按键精灵就能有效降低连招失误率,这绝对影响了游戏平衡性,但无论是玩家还是反作弊系统都很难区分这些操作是玩家做的还是脚本做的。
反作弊:八仙过海各显神通
要想根除外挂话,必须从技术上断绝,也就是说需要超越本世代的网速与高性能的计算机,这个是时间问题,在此之前,厂商和玩家只能用其他措施对抗外挂,让我们看看反作弊小组的研究成果吧。
对于内存挂,官方会推出检测系统,比如腾讯的tenprotect反作弊系统。tenprotect拥有系统级的权限,会在进入游戏前就启动,收集各种数据的同时监视你的电脑进程,隐藏游戏内存,一旦检测到有进程试图干扰游戏数据,tenprotect会根据不同情况采取不同措施,可能会结束可疑进程运作,甚至删除掉可疑进程(就是这么霸道!),遇到无法解决的情况tenprotect会直接关闭游戏!
当然,这种检测电脑进程的程序存在是否合理就是一个长期议题。与许多用户广为诟病的某些电脑“助手”、“管家”一样,其超高的权限在原理上与所谓“流氓插件”并无直接区别。检测有效的代价就是你的一举一动都被尽收眼底,隐私堪忧的同时也必然会占用电脑资源,影响游戏流畅度。权限低,占用资源少,反挂力度弱;权限高,占用资源多,游戏不流畅,世界各国的反外挂程序都处在这种矛盾中。
还有像战地1使用的fairfight这样从玩家数据入手的反作弊系统。Fairfight会检测玩家各种行动数据,一旦数据出现异常或者超过阈值就会给出处理。很明显fairfight对高手是不公平的,所以有人嘲讽说fairfight就是个官方反高手程序。其实fairfight也有自己的优势,它不占用玩家电脑资源,而且对暴力开挂者确实很有效,然而对于那些开了挂也依然菜的选手和会演的“影帝”,基本上就形同虚设了。
FAIRFIGHT:公平决斗。把高手踢出去就公平了。
前文介绍过,CS:GO的原理是VAC内存特征代码检测+人工监管,虽然准确率高,永封禁力度也够强,但依然存在玩家吐槽的“秋后算账速度慢”的问题。这也确实无可奈何,V社表示不窃取用户本地管理权限是出于对玩家权益的保障,却成了高科技党耍滑钻空子的资本。无奈之下,官方只能一边加紧更新一边提升作弊成本,比如引入了国际服的优先账户匹配和国服的荣耀认证。
进行过荣耀认证的账号,其游戏账户会通过芝麻信用与玩家身份证绑定,一旦作弊被抓到,这个身份以后就永远无法登陆游戏,换一个新号就需要一个新支付宝+新身份证。这一措施笔者认为还是有效的,即使短期之内仍有手握一户口本的狡兔型玩家,总会随着时间的大浪淘沙而越封越少。
反外挂战争市场是场持久战,这需要玩家,厂商和社会各界人士的广泛参与,稍有松懈,外挂就会毁掉游戏体验,夺走厂商收益,有碍行业的发展。胜利是可以预见的,等到高性能计算机与超时代网络设施普及之时,也许这场战争就会画上句号,这不仅需要游戏从业者的坚持,更需要每一位玩家的自我约束。