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