
本指南向您展示如何在 Edgegap 的专用游戏服务器上托管使用 Netcode for GameObjects (NGO)(Unity 自己的网络代码)构建的游戏,然后添加匹配功能,以便玩家能够自动分组并连接到离他们较近的服务器。
一旦您的游戏服务器完成容器化,Edgegap 只需通过一个简单的 API 调用即可将其按需部署到全球 615 多个边缘云节点,并且完全按使用量计费:无需租用、配置整台服务器,也无需在比赛间隔期间保持其运行。对于需要预留容量的持久性服务器,Edgegap 提供了专用队列 (Private Fleets)。Edgegap 的匹配基于此构建,并且是可选的。
本指南涵盖:
准备 Unity、您的 Edgegap 账户和容器化工具
将您的编码智能体连接到 Edgegap(可选)
让您的 NGO 游戏做好用于专用服务器的准备
构建并容器化您的游戏服务器
部署测试服务器并进行连接
添加匹配功能(可选)
通过两名玩家测试完整流程
您可以通过两种方式进行操作,也可以结合使用:
使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体负责编辑您的项目、构建并容器化服务器、进行部署并编写匹配代码。您只需负责在 Unity 和 Edgegap 仪表板中进行点击操作以及测试游玩。
手动操作。以下每个步骤在没有智能体的情况下也同样适用。
在构建和容器化服务器方面,Edgegap 的 Unity 自动化游戏服务器构建工具插件是可选的。它可以通过 Unity 编辑器中的按钮构建服务器、对其进行容器化并将其部署到云端,这是首次让您的服务器上线的快捷方式(步骤 4,选项 A)。
在此,我们使用 Unity 的 Boss Room 示例,这是一款基于 NGO 构建的合作游戏。开箱即用的 Boss Room 采用主机/客户端模式运行:一名玩家作为主机,其他玩家通过 Unity 的会话加入。标有 Boss Room 的步骤涵盖了针对该示例的特定内容。任何 NGO 项目的工作方式都是相同的。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
安装了 Linux 构建模块的 Unity 引擎。 Edgegap 推荐使用 LTS 版本。
从 Unity Hub 添加以下模块:Linux Build Support (Mono)、Linux Build Support (IL2CPP) 以及 Linux Dedicated Server Build Support。添加后请重启 Unity。
Boss Room:使用 Unity 6.0 LTS,即该示例所构建的版本。Unity 尚未针对 Unity 6.3 LTS 或更高版本更新 Boss Room,因此较新的版本可能会导致其无法正常工作。您自己的 NGO 项目可以使用任意 LTS 版本。
Boss Room:还需安装 Git LFS,并在克隆之前运行
git lfs install。若没有它,示例的美术资源将无法下载,项目打开后会是空的。
正在运行的容器化工具。我们推荐在构建时安装并运行 Docker Desktop。
其他容器工具也可以与 Edgegap 配合使用,但本指南仅涵盖 Docker。
对于 Agent 路径:需要一个 Edgegap API 令牌,可从 控制面板 → 用户设置 → 令牌 (Tokens) 获取。该令牌适用于整个组织,因此请像对待密码一样对待它:切勿将其放入项目、游戏客户端或聊天中。
Git:Unity 需要在 PATH 中配置 Git 客户端(2.14.0 或更高版本),以便从 Git URL 安装软件包(例如 Edgegap 插件)。macOS 通常已经内置了一个(Xcode 命令行工具);在 Windows 上,请安装 Git。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体在您的账户上创建应用和版本、部署服务器、读取日志并生成撮合系统(matchmaker)配置。智能体技能为其提供了经过测试的 Unity 工作流、C# 模板(包括 NGO 适配器)、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. 为您的非政府组织(NGO)服务器准备专用托管
在 Edgegap 上,没有玩家作为主机来主持比赛。游戏由无界面的专用服务器(headless dedicated server)掌控,因此该专用服务器必须自行启动、监听固定端口,并在比赛结束时自行停止。
使用您的智能体:
“加载 edgegap-unity skill,并使此 Netcode for GameObjects 项目适配专用服务器:服务器构建以无界面模式在 0.0.0.0 上调用 StartServer,在客户端连接时生成玩家,从服务器路径中移除 Relay 和 Lobby 调用,并在比赛结束时服务器自动停止。添加 Edgegap 服务器生命周期以及包含 NGO 适配器的配对客户端脚本。然后检查它在一个服务器和一个客户端的本地环境中仍能正常运行。”
手动操作,在您的项目中:
在服务器构建中,调用
NetworkManager.StartServer(),切勿调用StartHost()。服务器路径上的任何内容都不应等待菜单或按钮操作。保留 Unity Transport 的端口(默认为 7777/UDP),并让服务器监听所有接口:
SetConnectionData("0.0.0.0", port, "0.0.0.0")。在客户端连接时生成玩家(Network Manager 的 Player Prefab,或
OnClientConnectedCallback),而不是为主机生成本地玩家。从服务器路径中移除 Unity Relay、Lobby 或会话(session)调用。保留直接 IP 连接用于测试。
确保包含 Network Manager 的场景已在 Build Settings 中启用。只有启用的场景才会被构建。
在服务器上设置
Application.targetFrameRate(30 到 60),否则无界面构建会使一个 CPU 核心以 100% 的占用率空转运行。
Boss Room
基础示例通过 Unity 的会话及其自身的 ConnectionManager 启动主机,因此无法直接作为专用服务器运行。有两种接入方式:
使用您的智能体转换基础示例。使用 Git LFS 克隆 Unity 的 Boss Room,然后使用上述提示词并添加:“通过 Boss Room 的 ConnectionManager(其 IP 连接方法)路由服务器启动和客户端连接,而不是直接调用 NetworkManager。”
或者直接从 Edgegap 的 Boss Room 分支开始。它已经做好了适配专用服务器的准备:服务器调用
StartServer而不是StartHost,并且 MainMenu 场景中的EdgegapServerStarter会在0.0.0.0以及 Edgegap 传递给容器的端口上启动它。Edgegap 插件已包含在内。该分支还添加了一个调用 Unity UGS Matchmaker 的 Matchmake 按钮:若要保留 UGS Matchmaker 并让其在 Edgegap 上部署服务器,请遵循我们的 UGS Matchmaker 指南。本指南则使用 Edgegap 的配对器(步骤 6)。
首次打开时,该分支可能会在安全模式(Safe Mode)下启动。请通过 Window → Package Manager → Unity Registry 安装 Multiplayer Services,然后检查控制台(Console)是否显示无编译错误。
首先在本地测试:使用 Unity 的 Multiplayer Play Mode,一个编辑器(或构建)作为服务器,一个作为客户端。切勿将无法在 localhost 上运行的游戏进行容器化。
4. 构建并容器化您的服务器
Edgegap 会在容器内运行您的 Linux 服务器构建。您可以二选一,或结合两者使用:例如,首次部署使用插件,之后的所有构建都由您的 Agent 处理。
选项 A(可选):适用于 Unity 的 Edgegap 自动化游戏服务器构建工具插件。这是首次云端部署的最快方式,全程通过按钮操作。它使用 Docker 对您的服务器进行容器化。以下视频演示了在 Edgegap 的 Boss Room 分支上的这一流程。
在 Unity 中,选择 Window → Package Manager,点击 +,然后选择 Add package from git URL,并粘贴
https://github.com/edgegap/buildtool-unity-plugin.git。(Edgegap 的 Boss Room 分支已包含该插件。)打开 Tools → Edgegap Server Hosting,登录,并在 Connect your Edgegap Account 下粘贴提供的令牌。选择 Validate Token。
在 Build Settings 中检查您的场景。对于 Boss Room,Startup 排在第一位,接着是 MainMenu,然后是游戏场景。
选择 Build Server。构建产物将保存在
Builds/EdgegapServer/ServerBuild。在 Docker 运行的情况下,选择 Validate,然后选择 Containerize with Docker。可选操作:点击 Deploy Local Container 并连接客户端进行测试。
选择 Upload Image and Create App Version。在浏览器中,设置与您的传输协议相符的端口:7777、UDP,命名为
gameport。提交。
选项 B:让您的 Agent 执行。
“构建 Linux 专用服务器,使用适用于 linux/amd64 的 edgegap-unity Dockerfile 将其容器化,推送到带有新标签的 Edgegap Container Registry,然后创建端口为 7777 UDP 名为 gameport 的应用和应用版本。”
Agent 会要求您亲自运行 docker login registry.edgegap.com,并使用来自 Container Registry 页面 的用户名和令牌,从而避免这些凭据泄露在聊天中。请确保应用版本已设置镜像仓库凭据:缺少这些凭据会导致部署失败并提示“Unable to pull image from registry”。
每次构建都请使用新的镜像标签,切勿使用 latest。
以下是我们关于 Edgegap 的 Unity 插件的视频教程,该教程基于 Edgegap 的 Boss Room 分支版本:
5. 部署测试服务器并连接
在添加配对功能之前,先手动启动一台服务器,以验证镜像、端口和网络代码是否正常工作。以下任何一种方法均可:
从插件中:选择您的应用程序和版本,然后选择Deploy to Cloud(部署到云端)。
从控制台中:在 Edgegap 控制台中打开您的应用程序版本,选择Deploy(部署),挑选离您较近的地点,然后进行部署。
通过您的智能体(Agent):“在我附近部署我的最新 Edgegap 版本,等待它就绪,显示日志,并向我提供 IP 地址和外部端口。”
当部署状态为 Ready(就绪)时,复制其 Host IP(主机 IP)和 External Port(外部端口)。请使用 IP,而不是主机名:Unity Transport 需要 IP 地址。将它们设置为 Unity Transport 上的客户端连接数据,然后按 Play。Boss Room:选择 Join with IP(通过 IP 加入),并输入 IP 和外部端口。外部端口在每次部署时都会发生变化,因此请每次都重新查看。在处于“就绪”状态后,服务器可能需要最多一分钟才能接受玩家。
完成后停止部署(在插件中使用 Stop Last Deployment(停止上次部署),或指示您的智能体)。免费套餐一次只能运行一个部署,遗忘的测试服务器会阻碍配对。
在这里,您手动选择了地点并分发了地址。若要自动将玩家分组并在离他们较近的地方启动服务器,请添加配对器(matchmaker)。
6. 添加匹配功能
Edgegap 的撮合系统(matchmaker)是一项托管服务:玩家发送票证,它会根据您的规则(比赛规模、队伍、延迟、技术水平、模式)对玩家进行分组,在离他们较近的地点部署您的服务器,并将地址返回给每个客户端。
使用您的智能体(Agent):
“为我的应用版本生成 Edgegap matchmaker 配置:一支 2 到 4 人的队伍,并允许单人玩家在 20 秒后获取服务器,以便我单独测试。将其保存为 matchmaker-config.json。”
然后,在控制台中(此步骤没有 API):
打开 Matchmaker 并选择Create Matchmaker。
为其命名,上传
matchmaker-config.json,然后选择 Create and Start。当其状态为 ONLINE 时,复制 API URL 和 Auth Token。Auth Token 可以安全地随游戏客户端一同发布:它不会提供对您 Edgegap 账户的访问权限。
回到智能体:
“将 matchmaker 的 API URL 和 Auth Token 填入 EdgegapMatchmakingClient,将我的 Play 按钮关联到 FindMatch,然后重新构建并推送服务器,创建一个新的应用版本,并告诉我需要在 matchmaker 中更新什么。”
Boss Room:让智能体通过 Boss Room 的 ConnectionManager IP 连接来连接匹配到的玩家,这样示例的连接有效负载和角色选择功能仍然有效。在 Edgegap 的分支上,它可以替换 UGS 的 Matchmake 按钮或并排显示。
手动操作:请遵循我们文档中的 Unity 匹配指南。
发布新的服务器构建时,请更新 matchmaker 配置中的 application.version(停止、编辑、启动),否则比赛将继续部署旧版本。
7. 与两名玩家一起测试完整循环
请确保没有测试部署仍在运行。
运行两个客户端:Editor 加上一个构建版本,或者两个 Multiplayer Play Mode 玩家。
在两者中都选择 Find Match。状态会从 searching(搜索中)变为 match found(找到比赛),再到 host assigned(已分配主机),然后两个客户端都会连接到同一台服务器。
离开比赛。服务器会记录其正在停止,并且部署将从仪表板中消失。正是这种自动停止机制使您在无人游玩时账单保持为零。
在免费层级中,撮合器(matchmaker)在每次启动 3 小时后停止(可从仪表板重新启动),部署会在 60 分钟后停止,且一次只运行一个部署。
已经在使用 Unity Gaming Services?保留 UGS Matchmaker 并让其在 Edgegap 上部署您的服务器:请参阅我们的 UGS Matchmaker 指南。更倾向于玩家自行浏览大厅?请参阅 Server Browser for Unity。
准备上线?让您的智能体运行 edgegap-launch 技能的核对清单:版本发布、重启策略、最长持续时间、成本控制。
遇到问题?让您的智能体加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专属服务器上托管 Netcode for GameObjects 游戏(支持或不支持撮合匹配)的常见问题。
Netcode for GameObjects 是否支持专用服务器?
是的。针对 Linux 专用服务器进行构建,在服务器构建中调用 StartServer() 而不是 StartHost(),并在客户端连接时生成玩家。这样服务器就会以无外设(headless)模式运行,没有玩家进行托管。
Netcode for GameObjects 在 Edgegap 上使用哪个端口?
无论 Unity Transport 侦听什么,默认情况下都是通过 UDP 的 7777 端口。在名为 gameport 的 Edgegap 应用版本上设置相同的端口和协议。玩家连接到部署的 IP 以及 Edgegap 分配给它的外部端口。
Unity 的 Boss Room 示例可以在专用服务器(Dedicated Server)上运行吗?
并非开箱即用:它通过 Unity 的会话运行主机/客户端模式。具备 Edgegap 技能的编码代理可以对其进行转换,或者你也可以从 Edgegap 的 Boss Room 分支开始,该分支已经作为专用服务器运行。Boss Room 请使用 Unity 6.0 LTS。
我可以在保留 Unity UGS Matchmaker 的同时将其托管在 Edgegap 上吗?
是的。UGS Matchmaker 可以调用 Edgegap 的 API 为每场比赛部署专用服务器。我们的 UGS Matchmaker 指南对此进行了介绍。
托管一个 Netcode for GameObjects 游戏服务器需要多少费用?
测试是免费的,无需信用卡。之后,Edge Cloud 仅在服务器运行期间按每 vCPU 每分钟计费,因此在每场比赛结束时停止的服务器在比赛之间不产生任何费用。

客户
了解更多已接入 Edgegap 的客户案例
提供 31 个从其他平台迁移至 Edgegap 的工作室案例研究。

《以太之战 2》完美的全球发布
Aether Studios
了解Aether Studios是如何快速添加Edgegap并向他们的社区交付完美的启动和后启动服务的。
案例研究

克服因虚拟现实在竞技Multiplay中使用WiFi而引入的延迟
Halfbrick Studios
Discover how Halfbrick successfully launched & maintains a multiplayer-focused Early Access on META Quest's VR platform.
案例研究

MENA的社交应用添加了在线游戏
WOLF
了解这款在中东和北非地区广受欢迎的社交应用如何轻松地将 matchmaking 和多人游戏编排添加到 WOLF Qanawat。
案例研究

混合编排让开球策略随时应对任何流量做好准备
Birch Games
混合编排如何帮助 Birch Games 应对流量——将免流出费用的 Fleets 与无区域限制云相结合。
案例研究

7天血月
The Fun Pimps & iLLOGIKA
了解 Illogika 如何大幅降低服务器成本,并确保提供《七日杀 (7 Days to Die)》玩家所期望的在线体验。
案例研究

真实的在线战争需要终极的协调
Highwire Games
了解Highwire对性能的需求如何需要只有Edgegap才能提供的编排。
案例研究

22,000 条评价、4.8 颗星以及自动扩展的基础架构
Sinn Studios
一个由 Slack 提供支持的简单集成,如何让 Sinn Studio 的热门 VR 游戏快速上线并保持稳定运行。
案例研究

动态服务器编排
Under NDA - AAA Studio
了解世界上最大的AAA工作室之一如何通过边缘计算改善其对等多人游戏体验。
案例研究

对于 AAA 格斗游戏的近零延迟
AAA Studio - Under NDA
一个未宣布的项目如何实现了最低延迟,并改善了其1v1游戏中的公平性。
案例研究

Play Gods with Multiplayer Physics
Squido Studio
Learn how Squido uses Edgegap's highligh optimized game servers to deliver mind-bending & chaotic VR gameplay.
案例研究

全面托管的解决方案为独立游戏节省时间 多人VR恐怖游戏
Dirty Pearl Studios
了解Dirty Pearl Studios如何通过Edgegap的轻松集成和自动编排,以及其Nakama集成,节省了开发时间。
案例研究

即时全球服务器部署以促进协作式XR医学教育
AlensiaXR
AlensiaXR如何利用Edgegap为全球医学生提供低延迟、始终可用的共享解剖课程。
案例研究

守光人:具有专用服务器的 VR 社交合作游戏
Spectral Games
Spectral Games 如何在无需任何服务器经验的情况下,利用 Edgegap Matchmaking 和 Server Browser 为其 VR 社交大厅启动专用服务器。
案例研究

全球范围内快速可靠的部署,适用于PvPvE挑战者Gravebound
Crater Studios
Edgegap 的调度和配对如何帮助 Crater Studios 使他们能够将重心从基础设施转移到游戏玩法上。
案例研究

快速扩展网络元宇宙
Hiber
了解Hiber如何通过Edgegap消除服务器容量规划中的猜测。
案例研究

高硬件要求和自定义游戏服务器池
Alderon Games
了解Alderon Games如何瞬间利用全球多个供应商的自定义游戏服务器池来支持其热门MMO。
案例研究

独立开发者的简单集成
WhaleFood Games
阅读关于WhaleFood Games如何使用Edgegap解决其网络代码问题的文章。
案例研究

推动东南亚首款电子竞技游戏的尖端技术。
Anantarupa Studios
了解Edgegap如何通过一个无缝解决方案简化复杂基础设施和尖端技术,从而改变东南亚的游戏格局。
案例研究

一次打击。全球抵达。
Triple Hill Interactive
Triple Hill Interactive如何利用Edgegap的编排来提供低延迟,并提高在每毫秒都至关重要的游戏类型中的公平性。
案例研究

快节奏团队大逃杀...带着枪的动物毛绒玩具!
SANDYFLOOR
了解一家韩国独立工作室是如何将其多人游戏发布到全球的。
案例研究

移动端赛马游戏凭借即时、高效能的服务器走向全球
Mirai Labs
看 Mirai Labs 如何通过即时服务器部署和细分 vCPU 来运行 Pegaxy Blaze 的全球多人竞速游戏,从而将单个玩家的成本保持在极低水平。
案例研究

服务器管理与分发
Matrioshka Games
阅读关于Matrioshka Games如何在资源有限的情况下发布早期访问的战斗 Royale。
案例研究

听我的信号,释放地狱!
TyGames
探索独立工作室TyGames如何让玩家沉浸在第三人称角斗士战斗的多人游戏中。
案例研究

瞬时全球编排
Soliton Interactive
探索Soliton Interactive如何做到了不可能……首次推出可多人玩的版本!
案例研究

竞技游戏具有服务器端物理引擎,确保理想的低于50毫秒的延迟
NS7
了解为什么仅有Edgegap能够使独立工作室通过服务器端物理和权限实现其AAA质量的免费游戏体育玩法愿景。
案例研究

iGaming的区域部署
X1 Contra 1
X1 Contra 1 通过经济高效的托管和区域部署,为其巴西玩家提供实时 PvP 休闲游戏,确保数据和法律合规。
案例研究

仅在玩家游玩时付费:经济实惠的多人游戏基础设施
Meltdown Interactive
Edgegap 如何帮助独立开发商 Meltdown Interactive Media 在无需复杂方案的情况下,以高性价比解决扩缩容和匹配问题,从而让他们能够专注于游戏开发。
案例研究

同一个 Edgegap 平台,三种截然不同的网络配置
Warped Games
了解 Warped Games 如何在同一个 Edgegap 部署 API 和同一个容器管线上运行社交中心、实时合作以及回合制合作。
案例研究

台球大师巡回赛Max
RETA Games
案例研究

韩国的Web3 POP提取射击游戏走向全球,即刻启程
NDUS Entertainment
XOCIETY 如何轻松地添加 Edgegap 编排并集成自定义 matchmaking,与 Edgegap Ping Beacons 一起优化延迟。
案例研究

Multiplayer in Every Dimension
Arcadia.tv
Discover how Arcadia.tv uses Edgegap's edge network to deliver an innovative, team and location-based athletic VR sport.
案例研究

F2P 移动格斗游戏利用即时(Just-In-Time)服务器降低基础设施成本
Game Changers Worldwide
Game Changer Worldwide 如何在全球移动端托管 Rumble Rush 的实时 3v3 PvP 游戏。
案例研究
他们选择 Edgegap 的关键原因
了解 Edgegap 自动化游戏服务器编排如何带来无缝的多人游戏体验。









