点击上方“CSDN”,选择“置顶公众号”
关键时刻,第一时间送达!
本文来自开源中国,内容参考自吃鸡总指挥和网易科技,感谢蓝桥杯的整理。
绝地求生大逃杀(PlayerUnknown’s Battlegrounds)》从去年开始就爆红,还引发了全世界玩家的“吃鸡”热潮。但之后很多外挂制作者也开始瞄准吃鸡这个市场,逆天外挂频频出现,比如之前我们已经见过的“路飞挂”、“黄金甲挂”、“隔空取物挂”等等,吃鸡出神仙早已不是什么新鲜事。
对此,腾讯宣布代理《绝地求生》国服后,不仅成立反外挂专项小组,还联手警方线上线下严打外挂团伙,一度让不少外挂制作者胆颤心惊……
但是这几日,某知名博主爆出一个消息——国内某个外挂作者于前两日已经将某外挂开源发布在论坛上,换句话说这游戏接下来可能会迎来外挂的免费时代。
关于这次事件,有博主表示是腾讯打击外挂惹恼了一批得利者,这些人索性开源外挂,让游戏环境变得更加恶劣!我们都知道,一个月的外挂销售额是十分惊人的,甚至达到了上百万人民币!但随着腾讯代理国服,这些外挂制作者也不敢明目张胆的销售外挂了,未来还有可能受到法律的制裁,所以就做出这鱼死网破的事。
开源的外挂具体可以实现什么操作?
开源的代码可以实现透视、去草等功能,最恐怖的是,竟然可以通过安全监测!
想想吧,你美滋滋的舔了空投找到了吉利服,欢欢喜喜的在草地里当个 LYB,神仙 3000 米之外一枪爆头,你咋想?
毕竟,开了除草外挂的神仙们,看到的视角是,一个人傻傻趴在那里,还绿油油的,简直一个固定靶,枪法再臭也爆你头。
那么为什么开发者没法禁止外挂呢,下面笔者就给大家科普一下《绝地求生》外挂的一些原理和为何不能根除的原因吧~
网络游戏的结构原理
客户端与服务器联接示意图
首先,任何一款网络游戏都会有客户端与服务器端,通常情况下客户端负责实现我们玩游戏时的一切交互(操作)和展现交互(操作)结果,服务器端负责完成数据验证、处理、分发等工作。
《绝地求生》的特殊性
但是 FPS 类的射击游戏就比较特殊了,这类游戏对数据的实时性要求特别高,而作为主打真实的百人竞技《绝地求生》,需要处理的数据就更加复杂了。
绝地求生-SKS
例如不同枪械的不同弹道,你与不同敌人间的距离,击中不同的部位会有不同的伤害数值等等一堆数据,如果每个人的数据都交由服务器处理,不但对服务器性能是个重大考验,更重要的是会产生很高的“延迟”。
举个例子,假如数据交由服务器处理,你这边打了敌人一枪,然后客户端把一系列数据发送给服务器,服务器再计算结果,然后再将结果发给你和被打中的敌人,你想象一下,一台服务器上有很多场比赛,它需要同时处理每场比赛每个人千变万化的数据,这中间哪怕有半秒钟的处理时间,都会让你觉得游戏“好卡”啊!
因为我们玩家要看到的是打中敌人,敌人立刻飙血,容不得半秒钟等待。
所以 FPS 游戏为了保证游戏体验,只能让数据都在玩家本地(也就是你的计算机)进行计算,还是以你打了敌人一枪为例,放在本地计算以后,服务器只需接收到你对敌人造成伤害的这个结果,再将相应的结果转发给敌人绝地求生,这中间的“延迟”就会非常低了,这样才能保证游戏的流畅进行。
外挂的原理
但就是因为数据本地化计算,才让外挂有了可乘之机,外挂可以通过修改数据来欺骗服务器,比如说闪电侠外挂,玩家没有载具的正常情况下,速度是会有个上限的,而外挂可以通过修改数据欺骗服务器,说你现在正骑着一辆摩托(实际上没有),能够让你拥有摩托车一样的速度,这样就实现了加速。
而自瞄也很简单,服务器会将战局中其他玩家的位置发送到你的电脑上,这样你在游戏中才能在正确的位置看到其他玩家的人物模型,外挂就可以通过读取这些位置信息,从而实现自动瞄准锁头等操作。
至于无限子弹、改变射速、提升子弹威力等,也都是通过修改数据产生的,所以以目前 FPS 游戏处理数据的机制来看,更新游戏只能短暂的让外挂无法使用,想要彻底根除外挂绝地求生,几乎是不可能的,唯一能做的就是封号,还有就是像腾讯那样配合执法部门,用法律手段打击制作外挂的团队,让想要通过外挂牟利的人不敢作恶。
技术可以治好外挂,却治不好人心
也许有一天,会有性能更强大的服务器和更先进的技术出现,让我们不再受到外挂的侵扰,但那些开挂才能玩游戏的人,你们的病怕是无药可救了。