了解Edgegap的工作原理

了解Edgegap的工作原理

netfox 与 Edgegap:面向 Godot 多人游戏的专用服务器托管

已发布

已发布

已发布

Edgegap 和 netfox 的标志并排展示:紫色渐变背景上的 Edgegap 白色六边形标志,以及白色背景上的 netfox 橙色几何狐狸标志,标志着专为 Godot 打造的网络代码 netfox 与 Edgegap 专属服务器托管达成合作伙伴关系。

Edgegap 现已成为 netfox 的官方托管选项,netfox 是由 Fox’s Sake Studio 构建的 Godot 引擎开源网络代码插件。使用 netfox 的 Godot 开发者可以借助分步集成指南,在 Edgegap 的专属服务器编排上部署其游戏的权威服务器,并可选择集成匹配系统。

netfox 文档现已将 Edgegap 列为其托管选项之一,同时列出的还有 Fox's Sake Studio 自家的 noray 和 nohub 服务。

“Edgegap 真正吸引我的是,该平台几乎涵盖了运行在线体验所需的一切功能,而且价格非常合理。” Tamás Gálffy,Fox’s Sake Studio 联合创始人兼 netfox 创作者

Godot 开箱即用的功能

Godot 4 已经具备了专属服务器的基础功能。从 Godot 4.0 开始,任何 Godot 二进制文件都可以使用 --headless 参数运行,因此不再需要像 Godot 3.x 那样单独构建服务器版本。导出为专用服务器模式还可以从服务器的 PCK 文件中剥离纹理和材质,从而保持服务器构建体积极小。

在网络方面,Godot 的高级多人游戏 API 为开发者提供了 ENet 连接、RPC、节点权威、用于复制生成节点的 MultiplayerSpawner,以及用于保持属性同步的 MultiplayerSynchronizer。

这涵盖了状态发送。但这并不涵盖该状态在真实网络连接下的表现体验。

netfox 带来的补充

netfox 补充了快节奏在线游戏赖以隐藏网络延迟的技术。其中对专属服务器最重要的包括:

  • 一致的网络时间:在服务器和客户端之间同步共享的 tick 循环(NetworkTime),确保每台机器模拟相同的时刻。

  • 客户端预测与服务器对齐:RollbackSynchronizer 节点允许玩家的输入即时响应,同时服务器保持权威性,在预测错误时进行回滚和纠正。

  • 平滑运动:TickInterpolator 在网络 tick 之间进行插值,使运动在低 tickrate 下不会出现卡顿。

  • 恶劣网络环境测试:NetworkSimulator(位于 netfox.extras 中)可添加人工延迟和丢包以进行本地测试,全部在 Godot 编辑器内完成。它是一个单独的项目设置,仅影响你的游戏,而不像 clumsy 或 tc netem 那样会作用于所有本地网络流量。该插件还提供了现成的构建块,例如输入类和网络武器。

  • 玩家自建主机的连通性:netfox.noray 插件处理 NAT 穿透以及中继回退,适用于允许玩家自建主机的游戏。

功能

Godot 4.3+(内置)

结合 netfox

无头服务器,专属服务器导出

支持

支持(使用 Godot 内置功能)

RPC、生成、属性同步

支持

支持(基于 Godot 构建)

共享网络 tick / 时间同步

交由开发者处理

NetworkTime

客户端预测 + 服务器对齐(回滚)

交由开发者处理

RollbackSynchronizer

tick 之间的插值

交由开发者处理

TickInterpolator

延迟和丢包模拟

交由开发者处理

NetworkSimulator

玩家建主的 NAT 穿透

不包含

netfox.noray

简而言之,Godot 提供了传输和复制功能。netfox 在其之上提供了延迟隐藏层。有关回滚机制为何至关重要的背景信息,请参阅 Edgegap 关于用于缓解延迟的回滚网络代码的指南。

Edgegap 的定位与优势

netfox 的预测和对齐需要一个权威服务器。Edgegap 负责运行该服务器。

Edgegap 跨越 615+ 个地点按需部署容器化游戏服务器,使每场比赛都靠近其玩家。更低的往返时间意味着 netfox 需要调和的纠正更少,对玩家而言即表现为更少的位置瞬移(rubber-banding)。这也意味着服务器在每次回滚时需要重新模拟的 tick 更少,从而减少每场对局的 CPU 占用,并可能降低托管费用。使用 Edgegap 的工作室测得平均延迟降低了 58%。从冷启动部署一台服务器的中位时间为 2 秒。

在 Edge Cloud 上,计费采用按用量收费模式,因此在比赛之间无需为闲置服务器付费。需要预留算力的工作室可以使用 Private Fleets,这是 Edgegap 的预留裸金属层级,提供免出站流量费用的托管,在流量激增时可自动爆发扩展至 Edge Cloud。

还可以加入 Edgegap 的匹配系统,以对玩家进行分组并为每场对局启动服务器。

如何开始

netfox 集成指南使用 netfox 自己的 Forest Brawl 示例演示了完整流程:

  1. 在 Godot 4.3+ 上以无头模式运行游戏,并由服务器拥有所有游戏状态节点(由于客户端直接连接到服务器,因此不需要 noray)。

  2. 使用 Edgegap Godot 插件对服务器进行容器化,或者让编码 Agent 通过 Edgegap 的 MCP 服务器来完成。

  3. 部署测试服务器并连接两个客户端。

  4. 可选地,添加匹配功能,使两个点击“寻找比赛”的玩家进入同一台服务器。

Edgegap 的免费层级无需信用卡。创建免费账户,然后按照 netfox 指南操作,或加入 Edgegap Discord 进行提问。

—

netfox 由 Fox's Sake Studio 开发,并在 MIT 许可下发布。文档:foxssake.github.io/netfox。

书写者

雅库布·莫蒂尔(Jakub Motyl,产品)与加布里埃尔·帕朗(Gabriel Parent,总监)

Get your Game Online Easily & in Minutes

立即开始集成!

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