伴随着去年“大逃杀”类型游戏的突然爆红,频繁出现的神仙打架局让游戏外挂一次再次成为了焦点。而在王者荣耀等MOBA类游戏中却很少见到外挂的泛滥,这是为何呢?
因为在FPS游戏中,有一个不好解决的问题:结果运算。
绝大多数的游戏都是这样的:
拿个实际点的例子解释下:
你在地图上拿武器攻击了一个螃蟹,螃蟹受到100点伤害。那么这个过程的步骤是:
客户端,事件发生,攻击螃蟹,攻击动作触发。传输命令到服务器。
服务端,运算,玩家攻击螃蟹,螃蟹被这个玩家打,受到100点伤害。传输命令到客户端。
客户端,事件展示,螃蟹受到100点伤害。
那么FPS游戏是怎么样的呢:
我们发现本来应该在服务端运算的部分,客户端解决了。这样可以不?可以。要不没有服务端的单机游戏都怎么做的?
这样安全吗?不安全,因为所有的运算在本地进行,这个过程一定会借助内存,那么就肯定容易被篡改。
为什么要这么做呢?FPS游戏和别的游戏不一样的一点就是即时性要高于别的作品,如果都在服务端运算的,那么网络条件有波动的话,就无法感受到FPS游戏的即时感了(也就是打一枪,等1秒,那人身上冒绿血)。出于游戏本身的“体验”来说,目前的网络条件下,只能这么干。
我们目前看到的所有的FPS游戏中的外挂,透视、自瞄、穿墙、手长、飞行遁地等等都是围绕客户端进行的。比如透视其实就是把所有的客户端模型的移动位置的坐标报出来,自瞄就是让准星锁定模型中的某个点,穿墙就是让人物模型忽略掉建筑模型的模组。其实说穿了,也就这样了,并不是什么特别高深的玩意。
总的来说,在枪战类游戏(FPS类)中,对流畅性要求很高那么操作必须得到即时反馈,所以大量数据都是在客户端即时进行。然后将运算的结果传给电脑屏幕和服务器,并不需要服务器的验证与回传,就是客户端告诉服务器,我在做什么。而在MOBA游戏中,是服务器告诉客户端,你在做什么。FPS游戏部分数据运算是在客户端进行的,而客户端又在玩家手上,这就为游戏作弊者提供了方便,同时作弊门槛低的根源就在于此。
领取专属 10元无门槛券
私享最新 技术干货