什么是延误补偿?太坑爹了。你有和我一样的朋友。
延迟绝对是影响竞技游戏公平性的最重要因素,就像打开同一扇门,我需要3秒,你需要2秒。所以你会比我先拿到门后的东西,哪怕你的反应比我慢,因为时差在这里,必然导致最终结果不公平。。
而延迟补偿是专门针对游戏中玩家的不同延迟而设计的机制。。。
当然,延迟补偿不会发生在游戏客户端。
FPS游戏中,玩家A在10.5秒射击击中目标玩家B,射击信息打包发送(网络延时100毫秒=1秒,延时一般以毫秒为单位),服务器会在10.6秒收到,此时玩家B可能已经去了另一个。
如果服务器只根据接收时间(10.6秒)做出判断,那么玩家A的射击就变得无效,玩家B没有受伤,可能会击中紧跟在玩家B后面的玩家C(0.1秒后,如果玩家B紧跟在玩家C后面,有可能玩家C当前处于玩家A的射击目标位置)。
如果没有延迟补偿,游戏就是这样的。。从上面的描述中可以看出。。这将导致玩家A杀死玩家B,但杀死玩家C..。。很明显,肯定对玩家c不公平。
为了弥补延迟带来的问题,服务器需要引入“延迟补偿”策略来修正延迟带来的混乱错觉。
服务器计算执行射击命令的时间,然后找出当前世界10.5秒时刻的玩家信息,根据射击算法模拟是否命中,做到尽可能准确。
但是延迟补偿似乎对低延迟玩家不公平。
我们经常可以看到这样的情况:在玩家A和玩家B的射击中,玩家A在玩家B开火的瞬间(玩家A的主观视角)明显躲进了掩体,但是玩家B的子弹似乎忽略了掩体,于是玩家A将其击毙。。
这对于低延迟玩家来说,确实有点不爽。
所以延迟补偿对网络延迟高的玩家是有利的,网络延迟低的玩家优势可能会降低(网络延迟低的玩家利益受损),但对维持游戏世界整体的平衡是利大于弊的。。
当然每个游戏的延迟补偿机制不一样,体验也不一样,但是如果你的延迟太高。那么这个延迟补偿是没有用的。