了解Edgegap的工作原理

了解Edgegap的工作原理

点对点

对等网络(P2P)将玩家直接连接在一起,之间没有专用服务器,通常由一名玩家的机器作为主机。强烈推荐这种方式,因为它完全免去主机托管成本。作为交换,主机会获得延迟优势。主机拥有游戏状态的决策权,并且主机退出时会结束比赛。

又称

p2p,P2P 网络

由

由

由

菲利普·科特

菲利普·科特

菲利普·科特

,

首席技术官

首席技术官

首席技术官

已发布

已发布

已发布

在多人游戏中,点对点(Peer-to-Peer)是什么意思?

在大多数发布该功能的游戏中,对等网络(peer-to-peer)意味着主机-客户端模式。在游戏过程中,某一个玩家的游戏会保存比赛状态并充当服务器,而其他所有人则连接到该玩家。引擎通常将此称为监听服务器(listen server)或主机模式。大厅或匹配服务可帮助玩家找到主机,但比赛一旦开始,流量就会在玩家的机器之间传输。

还有一小部分游戏完全没有主机:即确定性对等网络(deterministic peer-to-peer),有时也被称为真正的对等网络。每个对等方都运行完整的模拟并仅交换输入,可以是同步步骤(lockstep,即每个人都等待所有人的输入后才前进)或者带回滚(rollback,即当延迟的输入与预测不同时,每台机器会进行预测并重新模拟)。这是一种专业的设计,主要见于策略和格斗游戏中,而很少是一个团队在提到 P2P 时所指的意思。

无论哪种方式,服务器并没有消失。它的工作转移到了玩家的机器上:将玩家彼此连接、决定发生了什么、承载流量以及维持比赛进行。以下章节将逐一介绍这些工作。

玩家在没有服务器的情况下是如何连接的?

首要任务是让两台家用设备建立连接。大多数玩家都处在执行网络地址转换(NAT)的路由器之后,这会拦截未经内部请求的流量。对等端会向 STUN 服务器请求其公网地址,然后双方同时发送数据包,以在各自的路由器中开辟一条通道。这种技术被称为打洞(hole punching)。

该技术的失败率高到足以影响产品设计。严格的路由器设置和运营商级 NAT(在移动网络和某些家用宽带运营商中很常见)会使打洞技术失效,一些运营商甚至会直接屏蔽 STUN 流量以防范安全风险。平台运营商为此专门发布了故障排除指南:微软 Xbox 就提供了一个关于 NAT 错误和多人游戏修复方法的页面,引导玩家调整路由器设置。无法加入好友游戏的玩家不会怪罪他们的路由器,而是会怪罪游戏本身。

备用方案通常是中继服务器,用于在无法直接互通的对等端之间转发数据包。中继还可以隐藏玩家的 IP 地址。然而,一旦流量通过中继,服务器就再次充当了中间人,从而带来自身的成本、地域和延迟问题。轻量级专用服务器在网络中处于相同的位置,并且还可以保存比赛状态,而构建专用服务器通常比构建带有中继备用方案的打洞机制要简单得多。

点对点游戏安全吗?

谁拥有比赛状态,谁就能修改它。在“主机-客户端”架构中,主机可以编辑内存中的数值,通过短暂断开网络连接(使用拉格开关)使其他所有人画面冻结而自己继续行动,或者报告一个从未发生过的比赛结果。在“锁定步进(lockstep)”和“回滚(rollback)”游戏中,每个客户端的输入都被信任。除非有中继服务进行隐藏,否则同行节点还会得知彼此的 IP 地址,这使玩家面临拒绝服务(DoS)攻击。我们在对 P2P 隐藏成本的剖析中详细介绍了这些技术。

中继服务缩小了风险敞口,但并未将其完全消除。Highwire Games 的 Michal Buras 在为《费卢杰六日》(Six Days in Fallujah)评估方案时指出,使用常用的调试工具就可以以明文形式读取免费中继服务上的大厅数据,从而泄露其他玩家的私人信息(实时服务游戏峰会演讲,2024年9月)。

服务器判定(Server authority)才是消除这一风险的关键。拥有超过 4000 万次下载的手游《血腥混蛋》(Bloody Bastards)曾采用点对点(P2P)模式,并信任主机上报的比赛结果。其工作室称,当时作弊行为十分猖獗,同时还伴随着物理效果不同步和网络延迟不均的问题。Tibith 报告称,在迁移到小型无头判定服务器后,自 5.0.0 版本以来,还没有黑客成功作弊过(案例研究,Tibith Ltd,2026年)。

点对点连接可以容纳多少名玩家?

在全网状网络(Full Mesh)中,每个对等体(Peer)都与其他所有对等体连接。4 名玩家需要 6 个连接,8 名需要 28 个,16 名则需要 120 个。每名玩家都需要通过家庭网络连接将自己的更新发送给其他所有玩家,而家庭网络的上传带宽通常是瓶颈所在。

主机-客户端(Host-client)架构通过将所有内容经由主机进行路由来避免网状连接。这把所有的负载都转移到了一名玩家身上:他们的上传带宽支撑着整场比赛,其硬件在运行游戏模拟的同时还要渲染自己的游戏。比赛的体验完全取决于被分配到最差主机玩家的情况。

然后主机离开了。如果没有主机迁移功能,比赛对所有人来说就结束了。而如果有了该功能,另一个对等体就必须在游戏过程中接管比赛状态,且游戏中的每项功能都必须在交接中幸存下来。在同一次演讲中,Highwire Games 估计,为了支持主机迁移而对《费卢杰六日》(Six Days in Fallujah)进行重构,需要额外增加一名开发人员和一名测试人员,每月成本约为 15,000 美元。

这是点对点(P2P)连接中很少被纳入“它是免费的”这一计算公式的部分。确实没有托管费用账单。但却有员工时间成本、因连接失败产生的支持工单,以及因比赛提前结束而流失的玩家。

来自我们的赞助商(其实就是我们自己!)的寄语

当其中一名玩家就住在数据中心旁边时,比赛就是不公平的。Edgegap 的边缘云可按需利用多达 615 个以上的分布式节点,根据每场比赛中所有玩家的连接位置来部署服务器,而不是固定在某个区域。在 Edgegap 的 1v1 研究中,这让对手之间的公平性差距缩小了 28%。

peer-to-peer 什么时候是正确的选择?

对于彼此信任的玩家之间的小型会话(例如与朋友联机合作、游戏原型,以及作弊行为只会破坏单场比赛而非排名或经济系统的游戏),点对点(P2P)连接仍然是一个合理的选择。多年来,采用回滚(Rollback)机制的格斗游戏一直使用这种方式发布。

对于商业游戏而言,问题在于那些永远不会出现在发票上的成本:连接失败、因房主退出而导致的比赛丢失,以及随着玩家基数的增长而增加的作弊风险。即使在延迟方面,点对点也并没有看起来那么有优势。在2020年对一款1v1主机游戏的122,000场点对点比赛进行的分析中,将每场比赛通过两名玩家之间最佳位置的服务器进行路由,使得70%的比赛的平均往返时间降低了23%(详见 1v1 报告)。最直接的路线并不总是最短的路线。

此外,如今这一选择也不像过去那样具有决定性。像 Photon Fusion 这样的网络框架可以让同一个游戏由玩家担任房主、通过云中继运行,或者在专用服务器上运行。因此,最初采用点对点连接的团队可以转向服务器,而无需重写其网络代码。Photon 的官方文档也将 Edgegap 列为了 Fusion 专用服务器的托管服务商之一。

Edgegap 的观点(仅代表个人意见,姑且听之即可!)

免费托管,以其他方式付费

点对点(P2P)是唯一一种由玩家买单的架构。您不会收到账单,但取而代之的是,玩家无法加入好友的游戏、因房主掉线而导致比赛终止,以及一个无人信任的排行榜。

这可能是一笔划算的交易。对于好友间的联机合作,通常确实如此。但对于一款需要对玩家进行排名、出售道具或匹配陌生人的商业游戏来说,通常并非如此,而且添加中继服务器只能解决服务器所承担的四项工作中的第一项。

在做出选择之前,请明确在您的设计中,每项工作由谁来做:谁来连接玩家、谁来判定发生了什么、谁的带宽承载了比赛,以及有人离开时会发生什么。每一个写着“玩家”的答案,都代表着您转移了一笔成本,而不是消除了它。

-

-

-

菲利普·科特

菲利普·科特

菲利普·科特

,

首席技术官

首席技术官

首席技术官

常见问题

什么是 P2P 游戏?有哪些游戏使用点对点技术?

对等网络(peer-to-peer)与客户端-服务器(client-server)架构之间有什么区别?

什么是 P2P 服务器?

Unity、Unreal 和 Godot 是否支持点对点连接?

带有中继的对等连接还是对等连接吗?

Get your Game Online Easily & in Minutes

立即开始集成!

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