了解Edgegap的工作原理

了解Edgegap的工作原理

工作室如何减少跨平台游戏中的延迟

跨平台游戏(Cross-play)在多年前就已经不再是一个独特的竞争优势。如今,它更接近于一种基本预期,而且玩家一旦发现跨平台的大厅体验比同平台的大厅体验差,便能立刻察觉到。

早在 2021 年,Unity 就曾估算,超过 50% 的美国人玩过多人游戏,且这些玩家中有 87% 玩过跨平台游戏。这种需求早已存在。然而,在许多已发布的游戏中,其底层的网络基础设施并没有跟上步伐。

这类投诉极为普遍且具有诊断意义:即使玩家住在同一条街上,跨平台大厅的延迟也比同平台大厅更严重。这很少是网络代码(netcode)的问题,几乎总是路由问题。

为什么跨平台流量总是绕远路

许多工作室最开始会采用对等网络(P2P)模式,因为它的运营成本为零。没有服务器,没有中继,也没有按同时在线人数(CCU)计费的账单。对于运行在单一第一方网络上的同平台大厅来说,这种方式运作得相当不错。

但跨平台游戏会从两个方面让情况变得复杂。

首先是技术层面。NAT 穿透的成功率因你试图穿透的网络类型而异,且差异巨大。主机网络、移动端上的运营商级 NAT 以及家用路由器背后的个人电脑,其行为方式并不相同。在单一生态系统内表现良好的直接连接,一旦混合使用就会开始失效,因此你需要一条备用路径。

其次,备用路径通常是集中式的。一旦工作室增加了中继或专用服务器来处理 P2P 无法应对的连接,为了控制账单,这些服务器只会被部署在极少数的区域。通常只有三到四个地点,有时甚至更少。

所以玩家们实际遇到的场景是这样的:你使用的是 PlayStation,而住在你街对面的朋友使用的是 Xbox。你们之间的物理距离只有几百米。但你的数据包传输距离却是:每次更新都要往返于数个百公里之外的数据中心,且双向皆是如此。

网络代码没有问题。有问题的是路由。

为了精确解释一个行业内经常被含糊对待的概念:跨平台 P2P 并非不可行。Epic Online Services 和 Steam Datagram Relay 如今都在 PlayStation、Xbox 和 PC 之间承载着跨平台会话。限制因素在于特定功能的第一方认证要求,以及混合网络类型之间的穿透可靠性。这些是现实存在的限制,但它们并不等同于“PlayStation 无法与 Xbox 通信”。

中继、专用服务器以及它们各自真正解决的问题

有必要将三个经常被混淆使用的概念区分开来。

  • 对等网络(P2P)在客户端之间直接发送数据包。成本最低,连接时的延迟最低,没有权威状态,且在穿透失败时没有备用方案。

  • 中继(Relays)在客户端之间转发数据包而不对其进行检测。它们解决穿透问题并隐藏玩家的 IP。它们不运行游戏逻辑。

  • 专用服务器(Dedicated servers)运行模拟并拥有控制权。成本最高,反作弊效果最好,且是你在需要服务器做出决策时的唯一选择。

大多数跨平台游戏最终会结合使用这其中的几种方案。这是一种明智的结果,而非设计上的失败。我们关于权威服务器、中继和 P2P 的解析更深入地介绍了哪种方案更适合哪种游戏类型。

对延迟而言,重要的是中继和专用服务器都属于网络跳数(hop),而一个部署位置不佳的跳数,无论采用哪种方式都会给你带来相同的延迟代价。

中继解决的是距离问题,而非不兼容问题

有一个失败案例非常值得一提,因为它看起来像是一个网络问题,但实际上并不是。

某工作室用 Unreal 引擎发布了一款主机版游戏。一年后,一家联合开发合作伙伴将其移植到了移动端,由于日程紧张,该移植版最终采用了不同的网络协议栈。现在,这两个版本不再使用相同的有线协议进行通信。

没有任何中继可以解决这个问题。中继转发的是它从不解析的字节,因此如果主机客户端发出了一个移动端客户端无法解码的数据包,通过中继传输该数据包并不会改变任何结果。直接 P2P 也是同理。

有两种方法可以解决这个问题。要么让两个版本统一采用同一种有线协议(这是更干净利落的解决方案,也是在生产阶段值得争取的目标);要么你在服务器端运行一个组件,用于解析一种格式并输出另一种格式,这属于协议网关而非中继,即使它部署在相同的网络基础设施上且从外部看起来像一个中继。

在移植过程中彻底更换引擎的情况并不常见。但其较温和的版本却很常见。例如不同版本间使用不同的 Unreal 版本、为了适应移动端带宽预算而重写复制逻辑、为平台 SDK 更换传输层等。这些操作中的每一项都可能导致有线格式产生偏差,从而破坏互操作性,而且在生产阶段捕获这些问题要比在上线后容易得多。

更多部署地点才是降低延迟的关键杠杆

一旦流量必须通过某一个跳数进行路由,缩短路径的唯一结构性方法就是让该跳数更靠近玩家。

这看起来平淡无奇,但它决定了游戏的成败。数据压缩、tick 率调整和延迟补偿等手段都只能在边缘起到辅助作用,它们都无法战胜物理规律。跨越海洋的数据包在整场比赛的每一次 tick 中、在两个方向上都需要付出相应的延迟代价。如果您想了解更详细的论证,我们曾撰文探讨过为什么增加部署地点是解决延迟的唯一真正途径

许多中继和托管提供商宣传其拥有全球覆盖能力,但实际提供的部署地点只有 5 到 30 个。这足以让会话运行起来。但不足以让使用不同主机的两个邻国玩家保持在低延迟的范围内,而这恰恰是跨平台玩家抱怨最多的问题。

在实践中这呈现为什么样

Edgegap 在无区域限制的网络上,在全球 615 多个地点部署了游戏服务器和中继,这些服务器和中继是根据需求动态启动的,而非提前预留。服务器从冷启动到运行大约需要 3 秒,这使得按需部署成为了一种可行的方案,而不仅仅是一个美好的想法。

在不同工作室中测得的结果显示,平均延迟降低了 58%,低于 50 毫秒的延迟覆盖了 78% 的玩家群体。对于竞技类游戏而言,拉近匹配玩家之间的地理距离还将公平性提高了 28%,因为当数据中心靠近每个人时,因住在数据中心附近而带来的优势就会减弱。

这并不能完全排除服务中断的可能性。但它消除的是对单一区域的依赖,从而避免了某个数据中心出现状况时,导致你的整个玩家群体都受到影响。

跨平台游戏从来都不是导致游戏延迟的罪魁祸首。对其所需流量的集中化处理才是。

如果您正在评估如何路由您的跨平台流量,我们关于跨平台游戏的专用服务器的细分方案涵盖了“自建还是购买”的决策考量,您可以免费开始体验

书写者

Edgegap团队

更多关于这个主题的信息:
更多关于这个主题的信息:
更多关于这个主题的信息:

Get your Game Online Easily & in Minutes

立即开始集成!

轻松在线游戏
且在几分钟内