
游戏后台深度剖析 - APEX英雄
萨米·杜克,现在是Respawn的技术总监,揭开了《Apex Legends》后台的面纱——服务器、网络代码以及保持每场比赛运行的基础设施。
自第六赛季以来,游戏内性能覆盖展示了实时的上传/下载速率、延迟、数据包丢失和拥塞,将模糊的延迟投诉转化为精确的可操作指标。
每周批处理分析可以大规模标记出故障的硬件或网络瓶颈,以及即将到来的实时警报——带有唯一的服务器ID——将调查和修复时间缩短近一半。
像RPROF分析和基于回滚的延迟补偿系统等先进工具有助于确定CPU瓶颈,调和抖动、数据包丢失和不同时延,并在玩家之间公平分配“无意义”的影响。
Apex的20 Hz tickrate在带宽和CPU成本与模拟精度之间取得平衡——用输入延迟的几帧来交换完整世界状态的复制和更丰富、全球的游戏体验。
萨米·杜克(Samy Duc),目前是Respawn Entertainment的技术总监,提供了关于2021年《Apex Legends》后端的洞见,强调了《APEX Legends》的服务器、网络代码和基础设施如何在每场比赛的背后运作。提供了有关Respawn在线基础设施蓝图的深入了解。
间接地,这突出了任何游戏工作室,无论大小,都可以在其多人游戏中添加的最佳实践,以帮助提高性能。
面向玩家的性能仪表板
自第6季(2020年11月)以来,《APEX Legends》团队添加了性能叠加层。这个游戏内仪表板显示以千字节每秒为单位的上传和下载速度,以毫秒为单位的往返延迟,以及数据包丢失和阻塞百分比,将模糊的投诉转化为玩家和工程师可以采取行动的精确数据点。这使得玩家可以监控连接的波动。
通过将主观体验转化为可量化的指标,开发团队还可以利用这些信息来明确带宽瓶颈或抖动等问题,在它们破坏比赛之前。可以将其视为即时玩家反馈,对于开发团队来说,从宏观层面来看,则是采取行动的洞察。这还带来了消除猜测的额外好处,因为用户可以报告“15% 的数据包丢失和200 毫秒的延迟”,这显著加快了故障排除和补丁部署。
请注意,这也是Edgegap客户采用的策略,即Aether 2的对手。除了在比赛中突出延迟和比赛前的潜在延迟之外,还允许玩家在比赛中报服务器,并将其喜爱的服务器位置设置为优先,以帮助调查问题。
采取行动 - 建立监控有助于洞察生成
在幕后,APEX Legends的数据科学团队处理一周的比赛数据。每场比赛的性能数据——从单个数据包丢失率到服务器CPU帧时间——都被聚合和分析,以发现人类团队可能错过的模式,例如某个数据中心中的网络交换机故障。这个方法是可扩展的。它使团队能够在系统性问题在玩家中造成广泛故障之前进行发现,并与硬件合作伙伴合作,更换故障机器。这是主动的。通过共享匿名的、选择加入的指标,玩家帮助推动这些洞察,明白单一的坏服务器可以在数百场比赛中被准确定位和修复。
实时监控管道在指标突破阈值的瞬间触发通知,伴随一个独特的服务器标识符,让工程师找到并诊断确切的机器,而无需关联时间戳。这意味着不再需要人工日志深入排查。
随着修复速度的加快,慢速服务器和网络问题通过简单的迭代和改进过程应被限制为边际案例,使比赛随着时间的推移变得更加清晰和响应灵敏。
慢动作服务器
慢动作服务器仍然会(并且将会)继续发生。
当服务器的CPU无法完成其20赫兹的模拟周期(每个tick 50毫秒)时,它开始落后,导致整个比赛停滞,因为系统等待物理、动画和状态复制赶上。那种延迟是痛苦的。
Respawn积极去除表现不佳的硬件——受过热、超频处理器或故障组件影响的机器——以维护一个始终达到性能目标的硬件群体。未来的更新旨在减少这些事件。实时警报和预测分析将在影响游戏体验之前捕捉性能下降,因此慢动作比赛成为罕见的例外,而非每周的挫折。
WiFi - 延迟最大的敌人
抖动和延迟的波动可能很难捉摸。虽然Wi-Fi用户可能会看到不可预测的延迟波动,但即使是有线玩家在服务器进程引入延迟时也可能受到影响,直到现在,工程师必须在测试设备上重现条件,以识别瓶颈。
这一变化得益于RPROF分析。通过捕获每个服务器任务的详细日志——弹道计算、网络I/O和物理模拟——RPROF文件准确显示哪些操作在占用CPU周期,以便开发者在性能下降之前优化新功能。就像X光一样。它帮助团队从代码的每个角落削减延迟,确保新传说、武器和能力的到来不会伴随意外的减速。
不过,并非所有游戏都有机会克服WiFi,因为像VR这样的硬件设计时就考虑到了WiFi的使用。如果你是VR开发者,请务必阅读Edgegap关于如何减少多人VR游戏和XR项目中的延迟的指南。
数据包丢失
数据包丢失并不总是开发者的错。
互联网流量通过多个ISP和对等点,数据包消失时——无论是在您家庭网络中、主干提供商之间,还是在数据中心链接中——都会扰乱输入和更新的流动,使所有人保持同步。
追踪问题需要大量的工作,如Respawn团队所强调的。团队收集来自玩家的网络追踪和来自数据中心的探测,然后与第三方提供商谈判,以修复薄弱的对等链接或拥挤的路由器。
幸运的是,有像Edgegap这样的游戏服务器托管编排服务可以为您处理“管道”。通过协同调动多人游戏的游戏服务器到全球615多个位置(全球最大、首个区域无关的网络),覆盖17多个提供商。平均提供超过58%的延迟减少,并且提高公平性28%。
虽然Respawn可以负担DevOps、工程师和销售经理与提供商谈判,但得益于与电子艺界的关系,现在并不是所有工作室都有这种能力。
延迟
调和不同的延迟是门艺术。《APEX Legends》的延迟补偿系统会回放每一发射击的世界状态,以便合并高延迟和低延迟玩家在射击时看到的内容,以一种将“胡说”均匀分散的方式来判断击中,而不是偏向低延迟用户。没有解决方案是完美的。延迟达到300毫秒的玩家可能在掩体后被击中,就像低延迟玩家有时在延迟扭曲他们的视图时感到不公平的脆弱,但该系统确保这些奇异性随着时间的推移能够平衡。 这是一种有意识的选择。这意味着农村或国际玩家不会被只优先考虑最快连接的网络代码所抛弃。
回滚
射击有时仍然不会被注册。无论是由于预测错误、物理引擎的怪癖,还是瞬态网络不同步,您可能会看到血液和声音效果在本地显示,而服务器上却没有任何伤害。这令人痛苦。
Respawn正在建立自动化检测工具,以标记击中框和轨迹的差异,同时依靠玩家提交的剪辑来发现只在实时比赛中出现的错误。反馈循环很重要。当您附带性能指标报告未命中的时候,加速了识别和修复所有人根本问题的过程。
如果您考虑添加回滚,请务必阅读我们专门文章中的更多信息。
Tickrate和优化
Tickrate是一种平衡行为,将20赫兹增加到60赫兹可能将输入延迟从大约五帧减少到三帧,但也会使带宽使用量(即网络Egress)从大约60 kB/s增加到180 kB/s,并需要更多的CPU资源来模拟和复制完整的世界状态。
这种额外的成本并不微不足道。
APEX Legends的基于快照的模型会在每个tick保存完整的游戏状态,支持全球能力和丰富的互动,这些互动如果受到更高的tickrate限制会受到影响。边际收益似乎很小。团队认为这两帧的改善并不能抵消完整仿真和对多样化且全球玩家基础的更低网络需求的好处。
---
这篇文章基于并引用了萨米·杜克在电子艺界官方博客上发表的原文。所有原内容的权利均归其各自所有者。
书写者
Edgegap团队
