如何在Multiplayer游戏中减轻延迟:输入延迟与回滚

如何缓解延迟:输入延迟与回滚
如何缓解延迟:输入延迟与回滚
如何缓解延迟:输入延迟与回滚

在线多人游戏中的延迟(“卡顿”)简单来说就是游戏开发者在设计游戏玩法和游戏后端时必须考虑的一个现实,以确保为玩家提供优秀的游戏体验。

因此,游戏开发者必须考虑如何减少延迟。历史上,主要使用两种技术:Rollback(即客户端预测),以及输入延迟(输入延迟)。

在本文中,我们将突出介绍每种技术的功能(以及其工作原理)。

要深入了解Rollback代码,我们的详细文章在此处提供

为何多人游戏中会出现延迟(“卡顿”)

为什么游戏开发者需要首先“减少”延迟呢?

无论是点对点(即由其中一个玩家托管游戏服务器),通过中继或与云中的游戏服务器(查看每种架构的详细分类)都必须通过复杂的网络系列(即“互联网”)将数据发送到每个玩家,当有新的输入提供时,必须双方发送。这需要时间,因为物理定律限制了数据通过电缆/卫星和中间所有硬件的速度。

有时,它可能会快到无缝衔接,例如与街对面的人一起玩。

大多数时候不是这样。使命召唤比赛可能包含数十名玩家在游戏中行动,所有这些玩家都需要进行协调,而这些玩家距离往往达到数百甚至数千英里或公里。

这就是延迟发生的地方 - 会有瓶颈,这将影响您的延迟。

这就是为什么部署服务器近玩家的地方有效,但减少延迟比仅靠近某人更重要。 

减少延迟的技术:输入延迟(锁步)

输入延迟,通常称为锁步模型,通过让客户端将按钮点击发送到中央服务器并等待服务器发送回模拟结果后才显示任何内容来工作。

主要缺点是玩家在按下按钮和屏幕上看到动作发生之间经历明显的延迟——这种延迟等于他们到服务器的往返时间(ping),这意味着ping为100毫秒的玩家需等待整整十分之一秒才能看到他们的角色响应。

这种方法的优势是视觉一致性:每个玩家都准确看到服务器所说的正在发生的事情,没有视觉故障或不同玩家屏幕之间的分歧。

这使其适用于实时策略游戏、某些体育游戏和较旧的格斗游戏,只要玩家的ping相对较低(约50毫秒或以下),就可以接受游戏体验。

视觉上,它工作起来有点像这样:

减少延迟的技术:Rollback(客户端预测)

客户端预测,通常称为rollback,试图通过让客户端立即模拟并显示玩家动作的结果而无需等待服务器来消除输入延迟。

当服务器的权威响应最终到达时(通常是几帧之后),客户端必须进行"协调";即,它回滚其模拟到较早的帧,重新应用服务器的正确结果,然后重新模拟所有中间帧以赶上现在。

好处是即时响应:玩家在按下按钮时立即看到动作发生,这对于反应型游戏如射击游戏格斗游戏至关重要。

然而,当客户端的预测与服务器实际发生的情况不匹配时,该技术会引入视觉故障。对象可能会突然传送、出现或消失,因为模拟正在自我纠正。此外,多个帧的不断重新模拟会产生显著的CPU开销。

有些游戏尝试通过在使用预测处理有额外延迟的情况下增加一个小且固定的输入延迟来平衡这两种方法,从而为玩家提供响应的控制并减少视觉伪影。现代实现甚至可以实时动态调整此输入延迟,以找到最佳平衡。

视觉上,它看起来有点像这样:

建议与考虑

每个游戏的游戏玩法和基础设施将影响多人游戏开发者的决策。

某些网络代码可能在预测方面非常出色,这将有助于协调输入。例如,Rivals of Aether 2使用SnapNet网络代码以及Edgegap的编排,这使Aether Studios能够针对任何对局以最低的延迟部署在离用户最近的地方。结果是AAA在线格斗游戏体验,仅有10名团队

其他可能优先考虑尽可能低的带宽以最大限度地减少传出费用。

因此,了解您可用的工具以及最适合您的最终用户体验非常关键。

另外需考虑的是通过三个关键设置对输入延迟和rollback进行微调,这些设置作为软约束。

  • 最小输入延迟设置控制无论延迟如何应用的基线延迟(通常设置为0以获得最大响应),尽管有些格斗游戏使用较高值以确保精准输入时的一致计时。

  • 最大输入延迟设置确定在任何预测启动之前将添加多少延迟以覆盖延迟,常见的默认值为50毫秒,为低延迟玩家提供无伪影体验,同时保持控制感觉轻盈。

    • 然而,请注意,传统编排不太可能实现50毫秒目标。因此,使用广阔的Edgegap网络的615+位置帮助您完全达到这个范围。

  • 最大预测时间设置限制客户端可以模拟以补偿延迟的时间,通常默认值为100毫秒,以涵盖大多数网络条件,同时最小化视觉故障。配合50毫秒的最大输入延迟,意味着ping在50-150毫秒之间的玩家体验最小延迟且只有偶尔的伪影。对于分布良好的服务器,普通玩家可达到可预见目标。ping低于50毫秒的玩家享受最干净的体验,纯输入延迟,而ping在50-150毫秒之间的玩家在轻微预测下感受响应。

对于超过这些阈值的玩家,额外的延迟转化为更多的输入延迟,而不是更多的预测,导致控制感觉越来越迟缓,但保持游戏可玩。此方法通常优于延长的预测超过长时间范围,这可能导致混乱、混乱的视觉校正,使游戏感觉破碎而不仅仅是延迟。

不可控的问题:网络

研究表明,延迟的主要原因是网络本身引入的——31%,排除正常的人类眼睛/响应。服务器、玩家硬件或游戏代码本身的影响远低于总和(14%)。

因此,只有现代游戏服务器编排结合能够利用像Edgegap提供的大型边缘基础设施,才能应对这一特定元素挑战。

这为游戏开发者提供减少复杂性的方法,集成较为一致的rollback代码,以减少延迟(平均减少58%),从而减少与集成延迟缓解系统相关的复杂性,使得所有玩家的延迟标准和平均值更加一致。

解决方案:针对需求定制的代码 + Edgegap的编排

卓越的在线多人游戏并不是选择输入延迟和rollback之间——而是实现适合您的游戏特定需求的网络代码,并确保玩家以最小的延迟连接。一个配置良好的网络系统能够提供响应性、无伪影的游戏体验,但前提是玩家能够持续实现低到服务器的ping。这是现代编排行动至关重要的地方。

Edgegap的基础设施利用全球615+位置随需应变地在玩家附近部署游戏服务器,从而显著降低比赛中每个玩家的延迟。通过最小化往返时间,更多玩家进入理想的低于50毫秒范围,在此范围内仅输入延迟即可提供流畅、无伪影的体验,或在50-100毫秒的最佳范围内,微弱的预测保持响应性而无显著伪影。不是强迫您的网络代码补偿错误的服务器放置,而是Edgegap确保您精心调整的网络模型完全按预期交付理想的游戏体验,随时随刻。

另一考虑因素:對局配對

虽然超出本文范围,但對局配對的重要性亟需关注。

有效的對局配對在通过汇聚地理上相近的玩家和可用服务器位置来优化延迟方面发挥至关重要作用。

即使拥有615+边缘位置,配对来自不同地区的玩家仍会将一些参与者置于高延迟状态,削弱您网络代码的有效性和编排器的网络部署。

智能對局配對算法应考虑技能为基础的标准和地理接近性,确保服务器部署时,比赛中的所有玩家都能连接并维持相似、低ping值。这种平衡方法防止了一个玩家享受低于50毫秒无伪影体验,而另一个却在200毫秒以上延迟和迟缓控制情况下奋斗的场景——创造公平、竞争的比赛,您的网络技术能在涉及的所有人中表现最佳。

幸运的是,Edgegap的對局配對可用,并包括基于延迟的规则帮助您解决此难题。

书写者

Edgegap团队

Get your Game Online Easily & in Minutes

Get your Game Online Easily & in Minutes

Get your Game Online Easily & in Minutes