梁永琪的表情很平静,手臂伸着,保持着递东西的姿势,没有催促,手很稳,手指捏着手机边缘的力道均匀,没有发抖。
李轩伸手接过了手机。
他的手指碰到手机壳的时候有一点犹豫,但碰到之后就拿过去了,贴到耳边。
他没说话。
电话那头传来一个男声,不高,平,像坐在那里慢慢喝茶的时候随口说出来的话。
“你看到第三页了?”
李轩的喉结动了一下。
“看完了。”
“那你说一下你的判断。”电话那头说,“不谈带宽,不谈硬件,只谈你对我那个状态同步方案的理解,你认为它的核心瓶颈在哪个环节?”
李轩握着手机的手指收紧了一点。
他坐直了身体,原本蜷着的腿从坐垫上放下来,两只脚都踩在地上,脚趾在地面上蹭了一下找到平衡。
他沉默了大概四秒钟,四秒里他盯着桌面上那叠纸的封面看,呼吸变得比刚才慢了一些。
开口的时候声音比刚才低了一些,也慢了一些,像是每一个字他都先在喉咙里过了一遍。
“你的方案本质上是把高频的移动操作交给客户端做预测,服务器只在关键状态变更时做权威裁决。
这个思路不新,但你里面写了一个‘心跳窗口’的容错机制,这个我没见过。
你的窗口大小是跟网络延迟动态绑定的,用的是客户端实时上报的RTT均值,对吗?”
“对。”电话那头说,“窗口的上下浮动阈值是RTT均值的一倍半到两倍之间,超出就做强制回滚。”
“回滚怎么处理玩家的操作感?”李轩追问,语速明显快了,尾音往上走,像一根弦被人往上拨了一下,“你回滚一帧两帧玩家体感不明显,但如果网络抖动超过五百毫秒,回滚幅度超过五帧,玩家的操作反馈会断掉,那种卡顿感在屏幕上非常清晰。
玩家按了一个键,画面没有反应,半秒之后又突然跳回按键之前的位置,这种体验是最伤用户的。”
“所以我写了两个方案。”电话那头说,“第一方案是心跳窗口内做插值补偿,第二方案是超出窗口直接冻结客户端输入直到服务器确认。
你更倾向于哪个?”
李轩的呼吸停了一下。
他握着手机,身体微微前倾,手肘撑在膝盖上,整个人的重心往前压了过去,背从椅背上抬起来,腰挺直了。
“第二
本章未完,请点击下一页继续阅读!