3 章(第1/3 页)
速度上限的,无论玩家怎样改装赛车,都不可能超过这个速度上限。」
「为什么不可能超过上限呢?难道玩家没有某种手段绕过这个限制吗?」
「不可能绕过的,因为这个速度上限并不是我们为了防止玩家刷BUG设置的,而是我们游戏的底层机制决定的。因为赛车在我们游戏里运动需要不断地改变位置,而我们游戏里面物体改变位置的最小单位和最小时间单位都是确定的,所以从理论上就会有一个最大速度,玩家无论用什么办法都不可能让赛车超过这个速度。因为这个速度就是我们游戏能保证赛车连续运动的极限,再快,赛车在玩家眼里就会出现瞬移了,这种现象从我们的底层算法上就是无法出现的,我们的赛车在程序空间中,只能一格一格的移动,不能跳格!」
你听完,觉得研发经理说得很有道理,于是就非常疑惑地问运营经理:「那么我们的玩家是怎么做到的呢?」
运营经理说:「我也不太懂这个原理,但是我能把玩家的操作重现给你们看。」
于是运营经理进入游戏,选择赛道开始比赛。只见运营经理在赛道上找到一个合适的位置,飞快地把车撞进了路边的一个崖壁,经理试了几次后成功了。某一次几乎是一瞬间,车没有被崖壁正常地弹回去,而是从另外一边的崖壁被飞快地弹了出来,这个穿越过程似乎没有花费任何时间,于是经理就重现出了玩家的变态成绩。
办公室里一阵寂静,你和研发经理两人面面相觑。
研发经理毕竟是211毕业的高材生,他想了一会就恍然大悟道:「原来是这样,我实在没有想到会出现这种情况,这其实是赛道旁边的崖壁太薄了造成的。」
「崖壁太薄为什么造成这个BUG?」你一脸的疑惑。
「是这样的」,研发经理已经完全理解了问题所在:「我们游戏里面的碰撞检测是有时间间隔的,程序会每隔一会检测赛车模型的中心和各种阻挡物之间的距离关系,一旦距离小于某个值就会视作发生碰撞,将车弹回去。但是这个崖壁阻挡太薄了,玩家的车速高到某个程度的时候,撞进来又正好在两次检测的空隙之间的时候,车的中心就穿过了这个崖壁才被检测到碰撞,但是因为模型已经越过了崖壁,于是碰撞程序就把车移到了另一边,所以赛车就穿墙而过了。这个移动是碰撞算法造成的,和正常的移动不一样,所以没有受最小移动距离的限制,所以就超过了游戏的最高车速。」
「碰撞算法有这么高的能力,能帮助赛车超