《策划有话说》基础体验优化解读

2025-05-15 18:03:05 神评论

亲爱的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和安卓的跨区延迟,其实也是13P不同步带来的影响;

五、墙后杀的问题

原因造成伤害时的3P位置和1P位置不同步;

【解决方案客户端上行同步频率、服务器移动模拟帧率提升(也就是大家常说的tick),将客户端的上行间隔由80ms缩短至50ms,将服务器tick由25帧提升到了50帧,极大程度地提升了我们的同步频率;

墙后杀优化前

墙后杀优化后

以上列举问题的修复与优化并不是终点,因设备差异和网络波动而遗留的小部分不同步问题,我们也会持续跟进努力给大家打造一个愈加完美的竞技环境;同时,也欢迎大家继续向我们反馈各种13P不同步的相关案例,我们一定会认真修复感谢各位CFer的支持!

【来源:官网】

关于,策划,基础体验,优化的新闻

日期
游戏
状态
下载
礼包

页游测试表

日期
游戏
状态
评分
礼包