了解Edgegap的工作原理

了解Edgegap的工作原理

/

PurrNet

/

PurrNet

部署至 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 了解所有可用选项。

PurrNet

x

Edgegap

得到 Mirror Networking 创建者的完全认可

PurrNet 的创作者

PurrNet 的创作者

“为您的多人游戏提供超快、可扩展、低延迟的托管服务。”

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

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

分步指南

详细集成步骤

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 服务器允许您的智能体在您的账户上创建应用和版本、部署服务器、读取日志并生成匹配系统(matchmaker)配置。智能体技能为其提供了经过测试的 PurrNet 工作流程、适配 PurrNet 的 C# 模板、Dockerfile 以及已知易错点指南。

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. 让您的 PurrNet 服务器准备好进行专用托管

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

使用您的智能体(Agent):

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

智能体的模板在游戏启动时会自动添加,因此您的场景和预制体不会改变,编辑器也会保留 PurrNet 的主机与克隆(host-and-clone)工作流。

手动配置 NetworkManager 和代码:

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

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

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

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

  • 对纯客户端代码(摄像机、UI、输入、音频)添加保护,以便无头服务器跳过执行这些代码。

  • 确保您的 PurrNet 场景已在 Build Settings 中启用。只有启用的场景才会被构建。

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

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

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

选项 A(可选):适用于 Unity 的 Edgegap 自动化游戏服务器构建工具插件。这是首次进行云端部署的最快方式,只需点击按钮即可完成。它使用 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 下。选择 Validate Token。

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

  4. 在 Docker 运行的情况下,选择 Validate,然后选择 Containerize with Docker。可选操作:Deploy Local Container 并将客户端连接到它。

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

选项 B:指示您的代理。

“构建 Linux 专用服务器,对其进行容器化,并使用 Edgegap Unity 插件(Tools → Edgegap Server Hosting)通过新的镜像标签进行推送,然后创建应用程序和应用程序版本,端口为 7777 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 网络代码?请参阅 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 Transport 默认在 UDP 上使用 5000 端口;Edgegap 的示例和 agent skill 将其设置为 7777。请在您的 Edgegap 应用版本中使用相同的端口(命名为 gameport),或者开启 Auto Setup Edgegap Server Port(agent skills 可能称之为 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.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 行

解锁

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