相信各位玩家无论是在玩网游,还是各种联机对战时经常会听到这样一个词——网络延迟。
延迟可以说是对玩家们的游戏体验影响非常大的因素,游戏中玩家与玩家之间的延迟也会存在着差异,那么问题就来了,在玩家游戏延迟都不同的情况下要如何做到游戏的同步性呢?
在网络游戏中,各项判定基本是由服务器来完成的,以FPS游戏为例,当你向某个位置开枪时,客户端也就是玩家的计算机会向服务器发送你的各项信息,其中包括位置、武器、方向等等。之后再由服务器进行判定处理,之后再反馈给服务器上的所有玩家,更新当前的游戏状态。
当玩家与服务器之间延迟很大的时候,玩家想服务器发送信息与服务器给予反馈的时间就会变长,在这段时间里就会觉得卡顿,而这段时间也就是游戏中所谓的Ping值。
为了补偿延迟,玩家在接收到服务器的反馈之前,客户端会预测玩家游戏未来的走向,并且绘制出来,在收到服务器的反馈信息后,会立刻纠正为服务器提供的数据,所以这就是在玩家延迟比较大的时候,会感受到游戏人物明明一直向前走,却突然跳回到了原地的原因。
服务器处理延迟通常采用倒带法,服务器会记录过去一段时间内的所有信息。假设一个玩家有100ms的延迟,并向服务器发送了请求,那么服务器就会调取0.1秒前的游戏状态进行判定,再把判定结果反馈给每一个客户端,但是这样做的话,会让低延迟的玩家被迫体验高延迟,也就是说在采用倒带法的服务器中,如果有一个高延迟玩家,那么就会影响到其它低延迟玩家的游戏体验,但是补偿个别玩家的延迟而影响到了其它玩家的体验,而且用宝贵的服务器资源去补偿个别玩家的做法显然不明智。所以,很多时候服务器不会去补偿个别玩家的延迟,而是选择忽略掉。
直到今天,网络延迟一直都困扰着许多玩家,当然造成游戏延迟的因素有很多,像是服务器的计算能力偏低,或者是登陆玩家超过了预期,还有某个大厂叫做土豆的服务器。
延迟上的差异,会造成极大的不公平性,所以高延迟的玩家还是尽量要有一个好的网络环境再进行游戏。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved