游戏延迟?和机制有关

首先,在A和B中发生一个操作,这个操作被发送到服务器。此时,服务器不会立即发送A和B的操作,而是会记录A和B的操作,直到100ms才向A和B发送操作。也就是说,在100ms中,A和B的运算是在现实世界中,谁先来其实并不重要。真正决定顺序的可能和服务器算法有关。比如B在第50ms对A造成999伤害,A在第100ms对B造成999伤害,但是因为服务器在100ms的同步帧中先处理了A的数据,所以在现实世界中B先出手,然而还是判断A先伤害了B。

当然更有可能是A和B同时伤害对方,导致‘同归于尽’的结果。这种方法有很多优点。首先是可以很大程度上避免网络抖动的问题,让游戏更流畅。第二是可以减轻带宽的负担,保持所有玩家收到的操作信息一致,最终保持游戏世界同步。

大部分情况下游戏同步时间在60-100ms左右,比赛服同步时间可能低至30-60ms,那是不是说十几毫秒的延迟都是心理上的,没有影响?

其实还不是全部。看下面这个特例。A和B同时执行一个操作,但是A的延迟比B少5ms。

这会导致一种情况。A,在服务器看来,操作A发生在200ms,而B因为延时只能数到后面的操作帧,也就是300ms。即使实际网络延迟是5ms,但实际上造成了100ms的游戏延迟。但是,一般来说,最后的情况发生的次数多是概率问题。在实际游戏情况下,最终的情况可能会发生,但不会太多,因为游戏包的冗余发送机制。

[免责声明]本文来源于网络,不代表本站立场,如转载内容涉及版权等问题,请联系我们会予以删除相关文章,保证您的权利。

上一篇 《危鸡之夜》手游评测:真正的“杀鸡”游戏
下一篇 “很快”登陆Cocos2016 “快玩”探索H5游戏新契机