《策划有话说》基础体验优化解读
亲爱的CFer们大家好,我是策划青鸟。针对团队爆破中高频反馈的延迟、假红、飞天、回扯和墙后杀等问题,已于去年下半年开启了基础体验专项优化。
上述问题,本质上都是由于1P、3P(第一人称视角与第三人称视角)不同步导致的。我们经过排查和案例收集,将问题分为五个大类:
移动机制问题、动作错乱问题、空间位移问题、iOS和安卓跨区延迟问题、墙后杀的问题;同时还有CFer们最关心的服务器tick提升。
一、移动机制问题
【原因】游戏人物从静止开始移动,到达到最大速度的时间非常短;在之前的策略中,服务器从0加速到最大速度大约需要100ms左右,而客户端3P却需要400ms左右。这就导致,3P模拟位置和1P真实位置在加速追赶这段时间内,差异变大。而这部分差异,就是导致延迟、假红和墙后杀的最大问题;
【解决方案】提升13P同步的效果,让人物3P模拟位置和1P真实位置尽量接近;
对比视频
二、动作错乱问题
【原因】提升13P同步的效果导致的动作和移速不匹配,小范围左右横移时会出现“迷踪步”、“无影步”现象;
【解决方案】调整动作表现,保证快速横移时人物的腿部动作不会错乱;
对比视频
三、空间位移问题
1、跳跃飞天后回扯到地面的问题
案例视频1
【原因1】在跳箱子的过程中,服务器认为和箱子产生了碰撞,从而改变了3P路点状态,3P跳跃模拟也确实站在了箱子上面。状态变化导致空中滑步的现象;
【解决方案1】客户端3P起跳时不采用服务器位置,而采用客户端位置;客户端连续鬼跳时,限制客户端和服务器的最大跳跃高度;
案例视频2
【原因2】客户端3P在起跳时和服务器位置存在误差,且直接采用了服务器位置,导致后面的模拟存在误差值;并且计算跳跃高度时(没有取当前速度计算,取得是最大速度计算),这样就会导致客户端比服务器跳的高一些;
【解决方案2】客户端3P起跳时不采用服务器位置,而采用客户端位置;客户端连续鬼跳时,限制客户端和服务器的最大跳跃高度;
案例视频3
【原因3】在3P落地后进行后了起跳检查,但是起跳点错误。导致了3P的跳跃轨迹模拟错误,出现了后续的拉扯;
【解决方案3】在跳跃模拟过程中,增加起跳点检查,尽快模拟1P的下一次跳跃;
【原因4】因网络延迟,3P落地后收到服务器上一次的跳跃导致的回扯跳跃;
【解决方案4】根据新增的跳跃序号,3P已经发生了跳跃时忽略上一次跳跃;
2、场景二层的边缘位置,3P移动到一层后回扯到二层的问题
案例视频
【原因1】客户端1P并没有移动到一层,但是服务器存在自驱模拟状态变为下落了,转发给3P的移动包是跳跃;
【解决方案1】服务器在补偿或者自驱模拟时,在场景边缘,多等待100ms左右,超过时间再模拟跳跃移动;
【原因2】服务器在接受客户端移动包后,物理引擎里面获取的位置和客户端实际请求的位置不一致,这个可能会导致在墙边出现不同步;
【解决方案2】接受客户端1P移动包后直接设置为客户端3P位置;
3、高台跳跃1P直接跳上,3P会显示落地后瞬间拉扯上高台的问题
案例视频
【原因】1P起跳点较低时,服务器将起跳点往高修正了一些,但是跳跃高度小于1P。服务器因为跳跃高度校验导致限高掉落到P3,后面收到1P的包校验通过,回扯到P4,再将3P扯到P4位置;
【解决方案】客户端3P起跳后不采用服务器位置,而采用客户端位置;
4、跳跃过程中有障碍物导致3P轨迹不一致(如空中滑翔,跳过障碍物后又回扯)的问题
案例视频1
【原因1】起跳后服务器到达高点,收到客户端1P位置,服务器移动到到1P位置后,刚好下面有场景碰撞,服务器物理引擎认为触底了,服务器状态就从跳跃变成了步行。客户端采用的服务器下发的跳跃会出现模拟不一致的情况;
【解决方案1】服务器增加校验,修正物理引擎返回值,判断客户端是否真正下落到地面,调整了起跳路点的同步的逻辑;
案例视频2
【原因2】客户端3P落地后的起跳,只用了服务器Y轴的速度,没有使用服务器XZ轴的速度,导致轨迹不一致;
【解决方案2】服务器增加每段跳跃的序号,客户端1P 起跳/落地,立刻同步位置给服务器。保证客户端跳跃落地后新的跳跃一定采用服务器的起点和速度值,保证模拟相同;
案例视频3.1
案例视频3.2
【原因3】客户端3P模拟鬼跳过程中,处于下落状态时,收到服务器速度上升的路点。强制同步了服务器的位置信息,采用了服务器下一次下发的跳跃,客户端从错误的起跳点进行起跳,会出现模拟不一致的情况;
【解决方案3】增加了起跳点的表示,客户端在校验的过程中,只针对起跳点进行强制同步逻辑;
四、iOS和安卓跨区延迟问题
CFer们反馈的跨区问题,其实是在不同的客户端上出现了3P模拟不同步的现象,这个问题,并不一定只存在于iOS和安卓设备之间,安卓设备间、iOS设备间也有可能出现。(案例视频中,请大家重点关注连续鬼跳部分的对比)
【问题复现】
1、测试安卓设备间、iOS设备间,是否有3P模拟不同步的现象:
1台安卓设备移动,2台安卓设备同一角度观看示意:
移动优化前
移动优化后
1台iOS设备移动,2台安卓设备同一角度观看;
移动优化前
移动优化后
2、交叉测试,安卓设备与iOS设备间,是否有3P模拟不同步的现象:
1台安卓设备移动,2台iOS设备同一角度观看;
移动优化前
移动优化后
1台iOS设备移动,2台安卓设备同一角度观看;
移动优化前
移动优化后
3、混测
1台安卓设备移动,1台iOS和1台安卓设备同一角度观看;
移动优化前
移动优化后
1台iOS设备移动,1台iOS和1台安卓设备同一角度观看;
移动优化前
移动优化后
4、继续测试QQ区与微信区是否存在3P模拟不同步的现象;
5、最后,交叉安卓/iOS和QQ/微信区进行混测;
【测试结论】
1、在移动和跳跃问题修复之前,不仅iOS和安卓设备间3P模拟有差异,安卓设备之间,iOS设备之间,3P模拟同样有差异;
2、而在移动和跳跃问题修复之后,各设备之间的差异几乎消失了;
3、CFer们长期诟病的,iOS和安卓的跨区延迟,其实也是1、3P不同步带来的影响;
五、墙后杀的问题
【原因】造成伤害时的3P位置和1P位置不同步;
【解决方案】客户端上行同步频率、服务器移动模拟帧率提升(也就是大家常说的tick),将客户端的上行间隔由80ms缩短至50ms,将服务器tick由25帧提升到了50帧,极大程度地提升了我们的同步频率;
墙后杀优化前
墙后杀优化后
以上列举问题的修复与优化并不是终点,因设备差异和网络波动而遗留的小部分不同步问题,我们也会持续跟进,努力给大家打造一个愈加完美的竞技环境;同时,也欢迎大家继续向我们反馈各种13P不同步的相关案例,我们一定会认真修复,感谢各位CFer的支持!
关于,策划,基础体验,优化的新闻
- (2025-04-24) 全面竞技优化带来全新游戏体验!
- (2025-04-21) 晋级赛与匹配优化,一文带你了解!
-
05-2089级版本
-
05-17征伐测试
-
05-16梨花初雨
-
05-16天下
-
05-16年中数字服
-
05-16悠悠凉州彻
-
05-14中吕内测
-
05-13全新版本
-
05-11轻剑快马
-
05-09三春晖
-
05-09云锦织霞
-
05-08百鸟朝凤
-
05-08魔王巢穴
-
05-07开拓者先行礼
-
05-06烟雨江南
-
05-04传奇一号
-
05-02青丘古城
-
04-30九天福地
-
04-29惠享福
-
04-29正式上线
-
04-27猎魔召唤
-
04-25虎啸内测
-
04-25长城
-
04-25无为妙境
-
04-23飞龙在天
-
04-19失落古城
-
05-15南风暖资料片5.5
-
05-01欢乐聚资料片5.7
-
04-30清溪资料片5
-
04-15鸿鹄资料片5
-
04-01纷飞资料片5.1
-
03-31九间资料片5.1
-
03-15剑影资料片5
-
03-01沧海吟资料片5
-
02-28护苍生资料片5.6
-
02-15从龙功资料片5.6
-
02-01长生殿资料片5.2
-
01-31金蛇舞资料片4.8
-
01-15如破竹资料片5.5
-
01-01贺新年资料片5.7
-
12-31雪人季资料片5
-
12-15闯三国资料片5
-
12-01小王子资料片5.1
-
11-30帝王路资料片5.1
-
11-15烈焰山资料片5
-
11-01西行路资料片5
-
10-31闯四方资料片5.6
-
10-15傲群雄资料片5.6
-
10-01迎国庆资料片5.2
-
09-30造神话资料片4.8
-
09-15荆棘路资料片5.5
-
09-01逐梦令资料片5.7