服务器判定没命中,客户端再把这个反馈撤回来,但误差窗口控制在几十毫秒以内,玩家感觉不出来。”
梁永琪把这段话记在手机备忘录里,第二天上午转述给李轩的时候,李轩听完之后沉默了很久。
他坐在椅子上,两只手交叉着搁在腹部,视线落在天花板上,嘴唇动了动像在默算什么东西。
“浩哥这个思路是行业顶级的。”他终于开口了,声音比刚才低了一些,“客户端先反馈,服务器后校验,把玩家的感知延迟压到最低,实际的数据一致性用服务器兜底。
但这个‘假命中’需要极其精细的补偿算法,客户端预判的时机和服务器校验的窗口要卡得非常准。
如果客户端的预判和服务器校验的结果差得太多,就会出现一种最恶心的BUg——玩家明明看到自己打中了,屏幕上弹了命中特效,敌人身上也飙了血,但两秒钟之后服务器说‘没打中’,那个敌人又满血站起来了。
玩家会骂死我们。”
“那就把补偿算法做到不差太多。”梁永琪说。
技术团队在接下来的三周里几乎住在了机房。
李轩带着两个网络方向的程序员把客户端预判模块和服务器校验模块拆开重写了一遍,在两者之间加了一层补偿缓冲区,缓冲区的窗口大小根据实时网络延迟动态调整。
第一版延迟补偿算法跑通的那天晚上,李轩在模拟环境里把网络延迟设到了200毫秒,开枪打一个移动目标,屏幕上弹出了命中反馈,服务器校验的结果在缓冲区窗口内追了上来,确认了命中。
【跪求礼物,免费的为爱发电也行!】
本站若有图片广告属于第三方接入,非本站所为,广告内容与本站无关,不代表本站立场,请谨慎阅读。
Copyright © 2020 二零小说 All Rights Reserved.kk