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

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 / 时间同步 | 交由开发者处理 |
|
客户端预测 + 服务器对齐(回滚) | 交由开发者处理 |
|
tick 之间的插值 | 交由开发者处理 |
|
延迟和丢包模拟 | 交由开发者处理 |
|
玩家建主的 NAT 穿透 | 不包含 |
|
简而言之,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 示例演示了完整流程:
在 Godot 4.3+ 上以无头模式运行游戏,并由服务器拥有所有游戏状态节点(由于客户端直接连接到服务器,因此不需要 noray)。
使用 Edgegap Godot 插件对服务器进行容器化,或者让编码 Agent 通过 Edgegap 的 MCP 服务器来完成。
部署测试服务器并连接两个客户端。
可选地,添加匹配功能,使两个点击“寻找比赛”的玩家进入同一台服务器。
Edgegap 的免费层级无需信用卡。创建免费账户,然后按照 netfox 指南操作,或加入 Edgegap Discord 进行提问。
—
netfox 由 Fox's Sake Studio 开发,并在 MIT 许可下发布。文档:foxssake.github.io/netfox。
书写者
雅库布·莫蒂尔(Jakub Motyl,产品)与加布里埃尔·帕朗(Gabriel Parent,总监)






