最新网址:m.shukugu.com
梁永琪的表情很平静,手臂伸着,保持着递东西的姿势,没有催促,手很稳,手指捏着手机边缘的力道均匀,没有发抖。李轩伸手接过了手机。
他的手指碰到手机壳的时候有一点犹豫,但碰到之后就拿过去了,贴到耳边。
他没说话。
电话那头传来一个男声,不高,平,像坐在那里慢慢喝茶的时候随口说出来的话。
“你看到第三页了?”
李轩的喉结动了一下。
“看完了。”
“那你说一下你的判断。”电话那头说,“不谈带宽,不谈硬件,只谈你对我那个状态同步方案的理解,你认为它的核心瓶颈在哪个环节?”
李轩握着手机的手指收紧了一点。
他坐直了身体,原本蜷着的腿从坐垫上放下来,两只脚都踩在地上,脚趾在地面上蹭了一下找到平衡。
他沉默了大概四秒钟,四秒里他盯着桌面上那叠纸的封面看,呼吸变得比刚才慢了一些。
开口的时候声音比刚才低了一些,也慢了一些,像是每一个字他都先在喉咙里过了一遍。
“你的方案本质上是把高频的移动操作交给客户端做预测,服务器只在关键状态变更时做权威裁决。
这个思路不新,但你里面写了一个‘心跳窗口’的容错机制,这个我没见过。
你的窗口大小是跟网络延迟动态绑定的,用的是客户端实时上报的RTT均值,对吗?”
“对。”电话那头说,“窗口的上下浮动阈值是RTT均值的一倍半到两倍之间,超出就做强制回滚。”
“回滚怎么处理玩家的操作感?”李轩追问,语速明显快了,尾音往上走,像一根弦被人往上拨了一下,“你回滚一帧两帧玩家体感不明显,但如果网络抖动超过五百毫秒,回滚幅度超过五帧,玩家的操作反馈会断掉,那种卡顿感在屏幕上非常清晰。
玩家按了一个键,画面没有反应,半秒之后又突然跳回按键之前的位置,这种体验是最伤用户的。”
“所以我写了两个方案。”电话那头说,“第一方案是心跳窗口内做插值补偿,第二方案是超出窗口直接冻结客户端输入直到服务器确认。
你更倾向于哪个?”
李轩的呼吸停了一下。
他握着手机,身体微微前倾,手肘撑在膝盖上,整个人的重心往前压了过去,背从椅背上抬起来,腰挺直了。
“第二个更干净,但玩家体验更差。
第一个工程难度大,但做成了上层根本感知不到网络延迟。”
“我也倾向第一个。”电话那头说,“所以你要帮我解决一个问题,就是插值算法在运动轨迹预测上的精度。
我写了一个初步的公式,在第六页,你翻一下。”
李轩下意识地伸手去拿桌面上的那叠纸,翻到第六页,目光落在页底那一行手写的公式上。
那个公式写得不太规整,有涂改的痕迹,某几个符号被划掉重写过,又在旁边加了注释,箭头指向公式的第三项。
但数学逻辑是完整的,从第一项到第四项的推导关系每一步都标出来了,用的符号简练,没有多余的花哨。
他盯着那行公式看了很久,嘴唇动了动,像在默算。
他的目光从公式的开头移到结尾,又从结尾移回开头,把每一步的推演在心里过了一遍。
他算的时候右手拇指无意识地在手机边缘来回搓,指腹搓着手机的电源键,搓一下停一下。
然后他把手机换到另一只耳朵边上,说了一句:“你这个公式的第二项在低帧率场景下会发散。
当帧率掉到二十以下的时候,第二项的分母太小
最新网址:m.shukugu.com
-->>(第1/5页)(本章未完,请点击下一页继续阅读)