了解Edgegap的工作原理

了解Edgegap的工作原理

/

喵喵网

喵喵网

部署至 Edgegap

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

PurrNet:如何为您的多人游戏集成与托管专用服务器,并添加對局配對

PurrNet:如何为您的多人游戏集成与托管专用服务器,并添加對局配對

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

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

本指南涵盖:

  1. 准备 Unity、PurrNet、您的 Edgegap 账户以及容器化工具

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

  3. 让您的 PurrNet 游戏做好用于专用服务器的准备

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

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

  6. 添加撮合配对(可选)

  7. 与两名玩家一起测试完整流程

您可以通过两种方式进行,也可以将它们混合使用:

  • 使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体会编辑您的项目、构建并容器化服务器、部署服务器并编写撮合配对代码。您只需负责在 Unity 和 Edgegap 控制面板中进行点击操作并进行游戏测试。

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

对于构建和容器化服务器,Edgegap 的 Unity 自动游戏服务器构建工具插件是可选的。PurrNet 会通过其自带的包窗口为您安装。它只需在 Unity 编辑器中点击按钮即可构建服务器、对其容器化并部署到云端,这是首次看到服务器上线的快捷方式(步骤 4,选项 A)。

在这里,我们使用 PurrNet 的 Incremental 示例,这是一个小型资源收集游戏。Edgegap 的智能体技能在我们对其的分支代码上端到端运行。任何 PurrNet 项目的工作方式都相同。使用其他网络代码?请查看 Unity Engine 了解所有可用选项。

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

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

1. 开始之前

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

  • 已安装 Linux 构建模块的 Unity Engine。 Edgegap 建议使用 LTS 版本。

    • 从 Unity Hub 添加以下模块:Linux Build Support (Mono)、Linux Build Support (IL2CPP) 和 Linux Dedicated Server Build Support。添加后请重启 Unity。

    • 我们使用的是 Unity 6.3 LTS。最新的非 LTS 版本可能会导致网络代码包损坏,因此对于任何要发布的项目,请务必使用 LTS 版本。

  • 您的项目中的 PurrNet,并带有一个可在本地作为主机和客户端运行的场景。请参阅 PurrNet 的文档。

  • 正在运行的容器化工具。 我们推荐使用 Docker Desktop,并在构建期间保持安装并运行状态。

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

  • 对于 Agent 路径:需要一个 Edgegap API 令牌,可从 控制台 → 用户设置 → 令牌 获取。它是组织范围通用的,因此请将其视同密码:切勿将其放入您的项目、游戏客户端或聊天中。

Git: Unity 需要 PATH 中包含 Git 客户端(2.14.0 或更高版本)才能通过 Git URL 安装软件包,例如 PurrNet 的 Edgegap 集成。macOS 通常已预装(Xcode 命令行工具);在 Windows 上,请安装 Git。

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

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

Edgegap MCP 服务器允许您的 Agent 在您的账户上创建应用程序和版本、部署服务器、读取日志并生成撮合系统配置。该 Agent 技能为其提供了经过测试的 PurrNet 工作流程、支持 PurrNet 的 C# 模板、Dockerfile 以及已知注意事项。

Claude Code(在您自己的终端中运行,这样 Token 就绝不会经过聊天传递):

claude mcp add --transport http edgegap https://mcp.edgegap.dev/mcp -H "Authorization: token YOUR_EDGEGAP_API_TOKEN" --scope user

然后安装技能:/plugin marketplace add edgegap/edgegap-agent-skills,接着运行 /plugin install edgegap@edgegap。重启会话。

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

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

检查是否正常运行:

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

列表为空是正常的。如果出现关于 Token 的错误,通常意味着请求头被写成了 token token ...。

3. 让您的 PurrNet 服务器准备好进行专用托管

在 Edgegap 上,没有任何玩家主持比赛。由无头专用服务器控制游戏,因此专用服务器必须自行启动、监听固定端口,并在比赛结束时停止。

使用您的智能体:

“加载 edgegap-purrnet 技能并使此 PurrNet 项目支持专用服务器:服务器构建在 0.0.0.0:5000 上以无头模式启动服务器,客户端连接到它们在运行时获取的地址,服务器端逻辑不依赖于主机,并且服务器在比赛结束时自行停止。添加 Edgegap 引导程序、服务器生命周期和匹配客户端。然后检查它在本地使用一个服务器和两个客户端时仍能正常工作。”

智能体的模板会在游戏启动时自动添加,因此您的场景和预制件无需更改,并且编辑器仍保留 PurrNet 的主机和克隆工作流程。

手动方式,在您的 NetworkManager 和代码中:

  • 启动标志。PurrNet 的启动服务器标志 (Start Server Flags) 和启动客户端标志 (Start Client Flags) 会自动启动服务器和客户端。为服务器构建保留服务器标志;如果客户端连接到仅在运行时获知的地址,请移除客户端构建标志。

  • UDP 传输:PurrNet 的默认端口是 5000/UDP。自动设置 Edgegap 服务器端口 (Auto Setup Edgegap Server Port) 选项(智能体技能可能将其称为适配 Edgegap (Adapt To Edgegap))会根据 Edgegap 部署设置服务器端口,因此应用版本可以使用其他端口。

  • 设置服务器状态的 [ObserversRpc]:添加 runLocally: true。若不添加,该方法永远不会在专用服务器上运行(专用服务器没有本地客户端):在 Incremental 示例中,服务器根本不会生成任何资源。

  • 为每个连接的客户端生成玩家(PurrNet 的 PlayerSpawner),而不是为主机生成。

  • 保护仅限客户端的代码(摄像机、UI、输入、音频),以便无头服务器跳过它。

  • 确保在“构建设置”(Build Settings) 中启用了您的 PurrNet 场景。只有启用的场景才会被构建。

首先在本地进行测试:一个构建作为服务器,两个客户端连接到 127.0.0.1:5000。不仅要检查客户端是否连接,还要检查服务器的世界是否存在(生成的对象、分数)。

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

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

选项 A(可选):Edgegap 适用于 Unity 的自动化游戏服务器构建工具插件。这是完成首次云端部署最快的方式,全程只需点击按钮。它使用 Docker 对您的服务器进行容器化。下方的视频演示了这一流程。

  1. 在 Unity 中,打开 Tools → PurrNet → PurrNet Packages。如果 Core 旁边显示有更新,请选择 Update All。在 Integrations 下,选择 Edgegap,然后点击 Install Release。PurrNet 将安装 Edgegap 的插件。

  2. 打开 Tools → Edgegap Server Hosting,登录,并在 Connect your Edgegap Account 下粘贴提供给您的令牌(Token)。选择 Validate Token。

  3. 选择 Build Server。构建产物将保存在 Builds/EdgegapServer/ServerBuild 中。

  4. 在 Docker 运行的情况下,选择 Validate,然后选择 Containerize with Docker。可根据需要选择 Deploy Local Container 并将客户端连接到该容器。

  5. 选择 Upload Image and Create App Version。在浏览器中,将端口设置为 5000,协议为 UDP,名称为 gameport。提交。

选项 B:指示您的智能体。

“构建 Linux 专用服务器,使用 edgegap-purrnet Dockerfile 针对 linux/amd64 进行容器化,使用新标签推送到我的 Edgegap 容器镜像仓库(Container Registry),然后创建应用和应用版本,端口为 5000 UDP,命名为 gameport。”

智能体会要求您自行运行 docker login registry.edgegap.com,并使用来自容器镜像仓库页面的用户名和令牌,以确保这些凭据不会出现在聊天记录中。请确保应用版本已设置镜像仓库凭据:如果没有凭据,部署将失败并提示“无法从镜像仓库拉取镜像”(Unable to pull image from registry)。

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

以下是我们关于 Edgegap 插件与 PurrNet 配合使用的视频教程,使用的是 PurrNet 的 Incremental 示例:

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

在添加玩家匹配之前,先手动启动一个服务器,以验证镜像、端口和您的网络代码是否正常工作。以下任何一种方式均可:

  • 通过插件:选择您的应用和版本,然后选择 Deploy to Cloud。

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

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

当部署状态变为 Ready 时,复制其 Host URL 和 External Port,并将它们设置为客户端 UDP 传输(或在智能体的连接面板中)上的地址和端口,然后连接两个客户端。外部端口在每次部署时都会发生变化,因此每次都需要查看。服务器在状态变为 Ready 后,可能需要最多一分钟才能开始接收玩家。

完成后停止部署(在插件中使用 Stop Last Deployment,或告知您的智能体)。免费层级一次只能运行一个部署,遗忘关闭的测试服务器将阻止玩家匹配。

在这里,您手动选择了位置并分发了地址。要自动对玩家进行分组并在他们附近启动服务器,请添加匹配器。

6. 添加匹配功能

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

使用您的智能体:

“为我的应用版本生成 Edgegap 匹配器配置:一支包含 2 到 4 名玩家的队伍。将其另存为 matchmaker-config.json。”

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

  1. 打开 Matchmaker 并选择 Create Matchmaker。

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

  3. 当状态变为 ONLINE 时,复制 API URL 和 Auth Token。Auth Token 可以安全地包含在您的游戏客户端中:它不会授予对您 Edgegap 账户的访问权限。

返回到您的智能体:

“使用此 API URL 和 Auth Token 在 EdgegapSettings 中开启 Edgegap 匹配器,在连接面板中显示 Find Match(或将我自己的 Play 按钮连接到 FindMatch),然后重新构建并推送服务器,创建一个新的应用版本并告诉我需要在匹配器中更新什么。”

手动操作:请遵循我们文档中的 Unity 匹配指南。

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

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

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

  2. 运行两个客户端版本(或编辑器加一个 ParrelSync 克隆)。

  3. 在两者中都选择寻找比赛 (Find Match)。状态将从正在搜索变为找到比赛再到已连接,两者都在同一台服务器上。用两名玩家进行测试:单独一个票据可能会等待很长时间。

  4. 离开比赛。服务器记录其正在停止,部署随后从控制面板中消失。正是这种自动停止机制确保了在无人游玩时您的账单金额为零。

在免费层中,匹配器在每次启动 3 小时后停止(可从控制面板重新启动),部署在 60 分钟后停止,并且一次只能运行一个部署。

后续步骤

后续步骤

正在使用其他 Unity 网络代码(netcode)?请参阅 Unity Engine。更喜欢供玩家浏览的大厅?请参阅 Server Browser for Unity。

准备上线?让您的代理运行 edgegap-launch 技能清单:版本发布、重启策略、最长持续时间、成本控制。对于竞技类游戏,请收紧 PurrNet 的网络规则,以便在服务器上运行游戏核心逻辑。

遇到问题?让您的代理加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队以及其他工作室咨询。

常见问题

关于在 Edgegap 专属服务器上托管 PurrNet 游戏(无论是否使用匹配功能)的常见问题。

PurrNet 是否支持专用服务器?

是的。针对 Linux 专用服务器进行构建,并通过 PurrNet 的启动服务器标志(Start Server Flags)或脚本让服务器自行启动。依赖主机的代码(例如设置服务器状态的 [ObserversRpc] 方法)需要设置 runLocally: true 才能在专用服务器上运行。

PurrNet 在 Edgegap 上使用哪个端口?

PurrNet 的 UDP 传输层在 UDP 上默认使用端口 5000。请在您的 Edgegap 应用版本上设置相同的端口,命名为 gameport,或者开启“自动设置 Edgegap 服务器端口”(代理技能中可能称为“适应 Edgegap / Adapt To Edgegap”)以直接采用部署中的端口。玩家将连接到 Edgegap 为每个部署分配的外部端口。

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

不。PurrNet 会通过其包窗口进行安装,这是直接在 Unity 编辑器中进行构建、容器化和部署的最快方式。连接到 Edgegap MCP 服务器的编码智能体,或者您自己的 Docker 构建版本也可以。

为什么我的 PurrNet 游戏可以在主机模式下运行,却不能在专用服务器上运行?

专用服务器没有本地客户端,因此 [ObserversRpc] 方法仅在客户端上运行。如果要设置服务器状态(例如随机种子或生成的对象),请添加 runLocally: true。还要检查玩家是否为远程客户端生成,而不是为主机生成。

托管一个 PurrNet 游戏服务器需要多少钱?

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

客户

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

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

他们选择 Edgegap 的关键原因

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

费用

定价

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

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

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

边缘云

按需

$0.00115

/ vCPU

/ 分钟

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

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

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

只需添加信用卡。

边缘云

按需

$0.00115

/ vCPU

/ 分钟

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

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

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

只需添加信用卡。

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

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

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

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

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

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

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

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

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

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

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

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

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

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

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

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

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

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

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

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