17173 > 游戏资讯 > 攻略 > 正文

燕云十六声:科研——一些延迟和外挂的事

2025-11-10 08:08:07 神评论
17173 新闻导语

揭秘燕云十六声延迟机制:为何延迟反而让操作更流畅?深入解析科研同步策略与外挂检测原理。下面为大家带来燕云十六声攻略。

主要议题是:为什么别的游戏延迟让你比别人慢,而燕云的延迟让你比别人的时间短。

先科普一下延迟和同步的基本知识。古早的游戏用的是锁步延迟,工作原理是服务器等所有玩家到位后推进下一步。比如八百年前的红警,一个人卡所有对局中的玩家都会卡,就是因为大家反复等待网络最差的那个人。

此后出现了延迟补偿和回滚技术,代表性的就是GGPO框架。这里有必要解释一下,其中最核心的就是预测与回滚

预测:就是当你的操作没有得到服务器的反馈时,本地客户端预测一个结果并按照这个结果计算下一帧。

回滚:逐帧保存,当预测的和服务器的反馈不一致,回滚到不一致的前一帧,重新演算后一帧。

实例:假设以下动作都只需要1帧,第一帧我按下攻击,开始挥刀,本地预测我攻击命中,第二帧演示击中,但是第二帧我的客户端收到服务器反馈说对手在第一帧按了卸势,那么回滚到第一帧,重新计算第二帧并演示为卸势。

上面只是个例子,因为实际游戏中动作远不止一帧所以并不会出现画面跳跃。

另外,上面只是个例子,燕云并不是真的完全这么运作的。

这里面涉及到一个关键问题就是服务器权威,当服务器权威很高的时候,会很严格的同步服务器的信息,一切与服务器信息不符的客户端信息会进行严格的回滚和重新计算。一般竞技游戏都是这样,比如街霸。

当然为了避免回滚带来延迟和画面跳跃,会有另一种更高容忍度的选择,在一定范围内忽略客户端的预测和服务器信息不一致,让预测的内容继续发生。

接下来我们看一个燕云中的实例。钧钧的陌刀3段蓄力,刀光是红色,会出2个协战安西军。2段蓄力刀光是黄色,只会出1个协战安西军。

燕云十六声:科研——一些延迟和外挂的事

我们取不同情况的同一帧对比下。

是正常状态,3段蓄力的红色刀光+2个安西军

燕云十六声:科研——一些延迟和外挂的事

红色刀光+1个安西军,注意看画面人物右侧,没有安西军虚影。

燕云十六声:科研——一些延迟和外挂的事

黄色刀光+2个安西军。

通过前面的科普,我们简单来分析一下这个情况,当我用极限的时间进行蓄力,直到延迟波动可以影响结果。由此可见,在临界状态下,是否红刀和是否出第二个安西军是两个事件,是否红刀预测我会继续蓄力,但是是否出第二个安西军预测我会放开蓄力,所以造成红刀但是只出一个安西军。这里提一下,客户端对操作的预测最常见的两种就是,继续当前动作和什么都不做。

所以通过这三张图我们可以知道,并不是红刀和安西军的判定有先后,而是各自独立预测独立判定。

那么接下来的结论就显而易见了,如果有严格的服务器权威,这种情况是不会发生的,服务器权威可以判断你的蓄力到底有没有完成。这是唯一,如果有回滚,那么这两个结果必然保持一致。也就是红刀对应2安西军,黄刀对应1安西军。所以我们可以知道,燕云选择的本地预测有更多的宽容度来使反馈更直接,操作更跟手,延迟感觉更低的一种策略。

进行到这一步,可以先小谈一下外挂。由于服务器对客户端数据的宽容度,微加速外挂确实不会被检测到,只要不超过服务器的宽容度就不会被检测为异常。但是,这并不意味着微加速外挂不可探测。比对服务器和客户端的数据是可以发现外挂的异常数据的,但是目前来看这并不是一个默认执行的操作,只有被举报了才有相应的检测。

然后就是宇宙十大未解之谜之燕云的延迟到底是什么鬼。

正常来说一个延迟100ms第人和一个延迟0的人一起开始走100米,正常来说表现为前者晚0.1秒开始晚0.1秒到达目的地。而燕云表现为后者走了100米的时候前者只走了90米。延迟应该是表现为时间上晚了,而不是时间上少了。

这种情况可能的主要原因有两种,一个是预输入是“假的”。我们知道游戏角色动作一般有GCD或者前后摇,否则只要你按的够快,你可以一秒钟打无数没有cd的技能。

而预输入就是在当前动作未结束的时候提前记录下一个操作。预输入是有时间范围的,比如我当前动作持续时间一共持续1秒,那我只有最后200ms才接收下一个指令,当有预输入的时候假设我有50ms延迟,那我在-150ms输入下一个技能,服务器-100ms收到信息,然后服务器会多次计算直到0ms没有任何限制你下一个技能的条件,它就会广播出下一个技能。

可能的假预输入就是预输入的信息没有单独的送往服务器,而是存在客户端,等动作结束再送往服务器。这样子预输入并没有能够消弭单向延迟,导致延迟仍然会随操作累积。

第二个原因有点太复杂了,我一直没办法很好的组织语言。但是也是涉及到延迟和同步。如我们前一个话题,燕云的策略是同步要求不那么高但是操作更跟手。

那么我们就可以想象一种情况,当我延迟比较高,我开始走路的时候,如果一个严格同步的游戏,我按下w人物不动,直到服务器广播到来,本地执行,我才开始动,等我停下,同样的松手人物还在移动。这样体验显然不好,尤其是当你体验单人内容的时候。

那么按照燕云的策略,信息还没有传送到服务器,但是为了操作顺滑,本地客户端已经预测并演示我开始往前走。

然后服务器没有纠正,那么到最后我松开w,传到服务器的数据到底执行还是不执行。执行的话我甚至多走了两步。不执行的话,本地的预测又只发生在操作的交接处。

中间很多数据又是服务器决定的。因此服务器修正保守策略可能会导致实际动作的减少。实际的表现方式近似于,你的某些被服务器纠正的动作会停顿或回滚,累积多了就会浪费时间,造成你实际的动作次数减少。

有没有兄弟愿意帮忙提供一些测试数据,就是开自动攻击长按测30秒双刀平A,然后用资源监视器看下服务器IP,然后ping一下延迟发出来,注意一定是长按自动攻击,不要狂点的那种。

延迟用命令提示符ping一下,别用加速器。范例如下,最好非江浙沪的用户提供一下延迟比较高的数据。如果有杭州100刀以上的也可以提供一下。

为了严谨请多测几次发稳定的,另外现在游戏都是多服务器,不同的数据类型由不同的服务器处理,有的数据服务器甚至不在杭州。就先看到杭州服务器的延迟就行。其他的我先看看再说

燕云十六声:科研——一些延迟和外挂的事

燕云十六声:科研——一些延迟和外挂的事

【来源:公众号】
我想了解这个游戏:
官网 专区 下载 礼包
关于燕云十六声,延迟,同步,服务器权威,预测,回滚,外挂,预输入,客户端,GGPO的新闻

你不知道点进去会是什么