射击网游中网络时延的处理
(金庆的专栏)
网游中的网络时延是无法避免的事.
例如移动, 客户端发出命令到收到服务器的确认会有100ms的时延,
如果客户端等待100ms后再移动, 操作性将会非常差.
一般是不等服务器确认, 先移动起来.
对于攻击, 同样也有时延.
一般的PK网游中,攻击速度很慢,大概1s发一次攻击,
攻击伤害结果延时100ms没有问题.
因为攻击动作播放大于100ms.
但在射击类网游中, 网络时延就很难处理.
开枪射击后, 是否打中的结果要100ms后才知道.
大多数的处理是用客户端判断, 所以可能出现外挂.
因为网络时延的存在, 网络游戏其实并不适合射击, 格斗这些即时性强的游戏.
最适合的是星际战争这类远距离的对打, 发个导弹会需要一段时间后才命中,
正好符合网络有时延的特征.
为了处理网络时延, 射击的结果不应该立即表现出来.
对目标开枪后, 目标不应该立即倒地死亡, 而是应该表现出一种可能被击中的动作,
等待服务器确认后才倒地.
这符合真实的情景, 即使被击中要害部位, 倒地前仍然可能有一定的动作.
如果服务器判定没有死亡, 目标可能仅仅是受伤, 可能是未打中,
目标这时可恢复其正常的动作.