了解Edgegap的工作原理

了解Edgegap的工作原理

/

Godot Engine

/

Godot Engine

部署至 Edgegap

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

Godot Engine:如何为您的多人游戏集成和托管专用服务器,并添加對局配對功能

Godot Engine:如何为您的多人游戏集成和托管专用服务器,并添加對局配對功能

本指南向您展示如何在 Edgegap 的专用游戏服务器上托管使用 Godot Engine 构建的多人游戏,然后添加匹配功能,以便玩家能够自动分组并连接到离他们较近的服务器。

一旦您的游戏服务器完成容器化,Edgegap 即可通过简单的 API 调用将其按需部署到全球 615+ 个边缘云节点,并完全按使用量计费:无需租用、配置整台服务器,也不需要在比赛间隙保持其运行。对于需要预留容量的持久化服务器,Edgegap 提供 Private Fleets。Edgegap 的匹配构建在此基础之上,并且是可选的。

Godot 内置了多人游戏基础功能,足以将玩家连接到专用服务器并保持他们同步。快节奏或竞技类游戏通常会在其之上添加网络代码(例如 netfox)以实现预测、回滚和延迟补偿。第 3 步列出了 Godot 包含的内容以及您可能需要添加的内容。无论采用哪种方式,托管步骤都是相同的。

本指南涵盖:

  1. 准备 Godot、您的 Edgegap 账户和容器化工具

  2. 将您的编码智能体连接到 Edgegap(可选)

  3. 让您的 Godot 游戏准备好使用专用服务器

  4. 构建并容器化您的游戏服务器

  5. 部署测试服务器并连接到该服务器

  6. 添加匹配功能(可选)

  7. 与两名玩家一起测试完整循环

您可以通过两种方式进行操作,也可以结合使用:

  • 使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体负责编辑您的项目、构建并容器化服务器并进行部署。您负责在 Godot 和 Edgegap 控制面板中进行点击操作,并进行游戏测试。Edgegap 的技能通过其与引擎无关的服务器和容器指南涵盖了 Godot;针对 Godot 的专门技能尚未发布。

  • 手动操作。以下每个步骤在没有智能体的情况下也同样适用。

对于构建和容器化服务器,Edgegap 的 Godot 游戏服务器托管插件是可选的。它可以在 Godot 编辑器中直接构建服务器、将其容器化并部署到云端,这是首次看到服务器上线的最快方式(第 4 步,选项 A)。

第 4 步中的视频使用了 netfox 的示例游戏 Forest Brawl。任何作为专用服务器运行的 Godot 项目都可以采用相同的方式运作。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

分步指南

详细集成步骤

1. 开始之前

  • 一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。

  • Godot 4.3 或更高版本,包含一个可在本地以一个服务器和一个客户端运行的多人游戏。

  • 正在运行的容器化工具。我们建议使用 Docker Desktop,在构建时保持其已安装且正在运行。

    • 其他容器工具也可与 Edgegap 配合使用,但本指南仅涵盖 Docker。

  • 对于代理路径:需要来自控制面板 → 用户设置 → 令牌的 Edgegap API 令牌。它适用于整个组织,因此请像对待密码一样对待它:切勿将其放入您的项目、游戏客户端或聊天中。

2. 将您的代码代理连接到 Edgegap

如果您全程手动操作,请跳过此步骤。

Edgegap MCP 服务器允许您的 Agent 在您的账户上创建应用程序和版本、部署服务器、读取日志并生成撮合系统(matchmaker)配置及 Dockerfile。Agent 技能则为其提供了 Edgegap 的服务器设计规则、容器配置、本地测试例程以及已知问题规避指南。

Claude Code:安装 Edgegap 插件。它会同时添加 MCP 服务器和技能,并在安装过程中要求输入您的 API 令牌(存储在系统的凭据存储中):

运行 /plugin marketplace add edgegap/llm-agent-skills,然后运行 /plugin install edgegap@edgegap。重启会话。

仅需要 MCP 服务器而不需要插件?请改为在您自己的终端中运行此命令:claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user。请勿两项都执行,否则将会产生两个 edgegap 服务器。

Cursor、VS Code 及其他支持发送请求头的客户端:添加 https://mcp.edgegap.dev/mcp,并附带请求头 Authorization: token YOUR_EDGEGAP_API_TOKEN,然后使用 npx skills add edgegap/llm-agent-skills --skill "*" 安装技能。

Claude Desktop:自定义连接器无法发送请求头,因此请改用本地服务器(Node 18+):{ "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }。首次使用时会要求输入令牌。

检查是否正常运行:

“列出我的 Edgegap 应用程序。”

返回空列表是正常的。如果出现有关令牌的错误,通常意味着请求头格式变成了 token token ...。

3. 为专属托管准备好你的 Godot 服务器

在 Edgegap 上,没有玩家作为主机主持对局。无头专属服务器(dedicated server)主导整场游戏,因此该专属服务器必须自行启动、监听固定端口,并在比赛结束时停止运行。

Godot 包含的内容,以及您可能需要添加的内容

Godot 4 的高级多人游戏功能负责基础通信架构。而商业网络代码在此之上增加的,正是玩家能够感知到的部分:在现实网络延迟下实现响应迅速的操作输入以及公平的命中判定。

Godot 4.3+ 内置功能

通常由网络代码或您自己编写的代码添加

网络传输:ENet (UDP)、WebSocket 和 WebRTC

客户端预测与服务器对齐调节(reconciliation),让您自身的移动感觉毫无延迟

RPC,支持可靠或不可靠传输

适用于快节奏游戏的回滚(Rollback)机制

节点管辖权(Node authority):谁控制什么

延迟补偿,依据射击者所见画面来判定命中

MultiplayerSpawner:在每个对等端(peer)上生成节点

服务器与客户端之间的共享 tick 及时间同步

MultiplayerSynchronizer:属性同步,包含更新间隔和针对每个玩家的可见性设置

插值缓冲区,使其他玩家在两次更新之间的移动更加平滑

专属服务器导出,无 GPU 的无头模式

按对象调整带宽,例如设置优先级和压缩数值

(Godot Engine 文档,最后审阅于 2026.10.16)

回合制、休闲类以及合作类游戏通常仅凭 Godot 内置的多人游戏功能即可发布。射击、格斗和竞速游戏通常需要右侧列出的功能:您可以自行构建,或使用诸如 netfox 之类的插件,该插件增加了时间同步、带对齐调节的预测、回滚和插值。對局配對不属于这两者中的任何一个;Edgegap 会在第 6 步中添加它。

使用您的 Agent:

“加载 edgegap-server-design 技能,并使该 Godot 项目具备专属服务器支持:一个能够在 0.0.0.0 的固定端口上自行启动、在客户端连接时生成玩家、限制其 tick 频率并在比赛结束时自行停止其 Edgegap 部署的无头服务器。请遵循 docs.edgegap.com/godot。然后在一个服务器和一个客户端的本地环境中验证其能否正常工作。”

手动操作:

  • 添加一个引导脚本,在服务器构建版本中(无头模式,或使用 --server 参数)通过 Godot 的多人游戏 API 启动服务器,并在固定端口上监听所有网络接口:默认使用 ENet 的 7777/UDP。Edgegap Godot 文档包含一个极简的引导脚本,以及一个适用于 Forest Brawl 的脚本。

  • 为每个连接的对等端生成玩家,而不是为主机玩家生成玩家。

  • 将游戏逻辑保留在服务器端(它是权威端),并保护仅限客户端运行的代码(摄像机、UI、输入、音频),以便无头服务器跳过执行这些代码。

  • 限制服务器的 tick 频率(项目设置 → 物理 → 通用 → 每秒物理 Tick 次数):快节奏射击游戏建议设置为 60,大多数动作游戏建议设置为 20 到 30。

  • 比赛结束时,让服务器停止其部署:向 Edgegap 注入的 ARBITRIUM_DELETE_URL 发送 DELETE 请求,并将 ARBITRIUM_DELETE_TOKEN 作为 Authorization 请求标头。

先在本地进行测试:在 127.0.0.1 上运行一个实例作为服务器,一个实例作为客户端。切勿将无法在 localhost 上运行的游戏进行容器化封装。

4. 构建并容器化您的服务器

Edgegap 会在容器内运行您的 Linux 服务器版本。您可以任选其一,也可以结合使用:例如,首次部署使用插件,之后每次构建使用您的智能体 (Agent)。

选项 A(可选):适用于 Godot 的 Edgegap 游戏服务器托管插件。这是直接在 Godot 编辑器中完成首次云端部署的最快方式。它使用 Docker 对您的服务器进行容器化。下方视频展示了该流程。

  1. 在 Godot 中,打开 AssetLib 标签页,搜索 Edgegap,然后点击下载 (Download) 和安装 (Install)。或者将插件从 GitHub 复制到项目的 addons 文件夹中。

  2. 在项目 → 项目设置 → 插件 (Project → Project Settings → Plugins) 下启用它。检查器 (Inspector) 旁边将出现一个 Edgegap 标签页。

  3. 选择获取令牌 (Get token),登录并将令牌粘贴到插件中。

  4. 验证导出模板,添加步骤 3 中的引导脚本,然后选择构建服务器 (Build server)。

  5. 在 Docker 运行的情况下,选择验证 Docker (Validate Docker),然后选择使用 Docker 容器化 (Containerize with Docker)。可选操作:部署本地容器 (Deploy local container) 并连接客户端进行测试。

  6. 选择上传镜像并创建应用版本 (Upload image and create App version)。在控制面板中,将端口设置为您服务器的端口:7777、UDP,命名为 gameport。提交。

选项 B:向您的智能体提问。

“加载 edgegap-containerize 技能。导出适用于 Linux 的 Godot 专用服务器,使用 edgegap_generate_dockerfile 生成 Dockerfile,针对 linux/amd64 构建镜像,使用新标签将其推送到我的 Edgegap 容器镜像仓库 (Container Registry),然后创建应用及应用版本,设置端口为 7777 UDP,命名为 gameport,重启策略设置为 Never。”

智能体会要求您自行运行 docker login registry.edgegap.com,并使用来自容器镜像仓库页面的用户名和令牌,从而避免这些凭据泄露在聊天中。请确保应用版本已配置镜像仓库凭据:如果未设置,部署将失败并提示“Unable to pull image from registry”。

每次构建请务必使用新的镜像标签,切勿使用 latest。

以下是我们针对 Godot 的 Edgegap 插件视频教程,使用了 netfox 的 Forest Brawl:

5. 部署测试服务器并连接

在添加匹配系统之前,请先手动启动一个服务器,以验证镜像、端口以及网络代码是否正常工作。以下任意方式均可:

  • 通过插件:选择您的应用程序和版本,然后选择部署到云端 (Deploy to Cloud)。

  • 通过控制面板:在 Edgegap 控制面板中打开您的应用程序版本,选择部署 (Deploy),挑选一个距离您较近的位置,然后进行部署。

  • 通过您的智能体 (Agent):“在离我近的地方部署我最新的 Edgegap 版本,等待它就绪,向我展示日志,并提供地址和外部端口。”

当部署状态变为就绪 (Ready) 时,复制其主机 (Host) 和外部端口 (External Port),将它们填入客户端的连接设置中,即可开始游戏。外部端口在每次部署时都会改变,因此每次都需要重新查看。服务器在就绪后可能最多需要一分钟才能开始接受玩家连接。如果出现故障,请在控制面板中查看部署的日志和指标:100% 的 CPU 使用率通常意味着 tick 率没有设置上限。

完成后请停止部署(可通过插件、控制面板或您的智能体完成)。免费套餐一次只能运行一个部署,遗忘的测试服务器会阻碍匹配系统的运行。

到目前为止,您已手动选择了位置并分发了地址。若要自动将玩家分组合并在他们附近启动服务器,请添加匹配器 (matchmaker)。

6. 添加匹配功能

Edgegap 的匹配器是一项托管服务:玩家发送票证,它会根据您的规则(比赛规模、队伍、延迟、技术水平、模式)将他们分组,并在他们附近部署您的服务器,然后将地址返回给每个客户端。

配合您的智能体:

“为我的应用版本生成一个 Edgegap 匹配器配置:一支 2 到 4 名玩家的队伍,并允许单个玩家在 20 秒后获取服务器,以便我可以单独测试。将其保存为 matchmaker-config.json。”

然后,在控制台中(此步骤没有 API):

  1. 打开 Matchmaker 并选择 Create Matchmaker。

  2. 为其命名,上传 matchmaker-config.json,然后选择 Create and Start。

  3. 当其状态为 ONLINE 时,复制 API URL 和 Auth Token。Auth Token 可以安全地随游戏客户端一同发布:它不会提供对您 Edgegap 账户的访问权限。

回到您的智能体:

“使用 HTTPRequest 编写一个 Godot 匹配客户端:使用匹配器 API URL 和 Auth Token 创建票证,对其进行轮询直到分配了服务器,然后连接到分配的主机和端口。将其连接到我的 Play 按钮,然后重新构建并推送服务器,创建一个新的应用版本并告诉我需要在匹配器中更新什么。”

Edgegap 的功能目前尚未自带 Godot 匹配客户端,因此智能体会根据匹配器的票证 API(几个 HTTP 调用)来编写它。

手动操作:请参考匹配文档。

浏览器(Web 导出)游戏:匹配器中不能包含延迟规则(浏览器无法发送延迟 ping),并且需要在 allowed_cors_origins 中列出提供构建版本服务的所有来源。

当您发布新的服务器构建版本时,请在匹配器配置中更新 application.version(停止、编辑、启动),否则比赛将继续部署旧的构建版本。

7. 与两名玩家一起测试完整循环

  1. 确保没有测试部署仍在运行。

  2. 运行两个客户端:两个导出的构建版本,或者编辑器加上一个构建版本。

  3. 在两端都选择寻找对局。两个客户端将分配到同一服务器并建立连接。

  4. 离开对局。服务器会自行停止部署,并从控制面板中消失。正是这种自动停止机制,确保了在无人游玩时您的账单费用为零。

在免费层级中,撮合系统每次启动 3 小时后会停止(可从控制面板重新启动),部署会在 60 分钟后停止,且一次只能运行一个部署。

后续步骤

后续步骤

正在使用 netfox?请查看 GitHub 上的 netfox,了解 Godot 中的预测、回滚和延迟补偿。匹配详情:匹配文档。

准备上线?让您的智能体运行 edgegap-launch 技能的核对清单:版本发布、重启策略、最长持续时间、成本控制。

遇到困难?让您的智能体加载 edgegap-troubleshoot,或者在 Edgegap Discord 上向我们的团队和其他工作室咨询。

常见问题

关于在 Edgegap 专用服务器上托管 Godot 多人游戏(无论是否包含匹配系统)的常见问题。

Godot 支持专用服务器吗?

是的。Godot 4 可以导出无需 GPU 的无头(headless)专用服务器,其高级多人游戏 API 可通过 ENet、WebSocket 或 WebRTC 运行该服务器。从引导脚本启动服务器,并在固定端口上监听所有接口。

Godot 内置的多人游戏功能足以满足我的游戏需求吗?

对于回合制、休闲和合作类游戏,通常是够用的:Godot 包含了传输、RPC、生成(spawning)和属性同步功能。而快节奏和竞技类游戏通常需要加入客户端预测、回滚、延迟补偿和插值等技术,这可以通过自行编写代码或使用如 netfox 之类的插件来实现。

Godot 服务器在 Edgegap 上使用哪个端口?

无论您的服务器监听什么端口:Edgegap 的 Godot 插件和文档针对 ENet 默认通过 UDP 使用 7777 端口。在您的 Edgegap 应用版本上设置相同的端口,命名为 gameport。玩家将连接到 Edgegap 分配给每次部署的外部端口。

托管 Godot 游戏需要 Edgegap 插件吗?

不。该插件是从 Godot 编辑器进行构建、容器化和部署的最快方式。连接到 Edgegap MCP 服务器的编码代理,或者您自己的 Docker 构建也同样适用。

托管一个 Godot 游戏服务器需要多少费用?

测试是免费的,无需信用卡。之后,Edge Cloud 仅在服务器运行期间按每 vCPU 每分钟计费,因此在每场比赛结束时停止的服务器在比赛之间不产生任何费用。

客户

了解更多已接入 Edgegap 的客户案例

提供 31 个从其他平台迁移至 Edgegap 的工作室案例研究。

他们选择 Edgegap 的关键原因

了解 Edgegap 自动化游戏服务器编排如何带来无缝的多人游戏体验。

费用

定价

定价

通过混合编排优化成本与性能

通过混合编排优化成本与性能

通过混合编排优化成本与性能

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

专属物理机集群 (裸金属)

预留容量

$0.0261

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

专属物理机集群 (裸金属)

预留容量

$0.0261

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

专属物理机集群 (裸金属)

预留容量

$0.0261

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

使用我们的预估计算器模拟您的用量 ->

使用我们的预估计算器模拟您的用量 ->

Edgegap 的功能与价格:边缘云与私有集群(Private Fleets)详细对比

Edgegap 的功能与价格:边缘云与私有集群(Private Fleets)详细对比

对比

免费试用

边缘云

Private Fleets

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

Private Fleets

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

Private Fleets

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。