
本指南向您展示如何在 Edgegap 的专用游戏服务器上托管使用 Unity 构建的多人游戏(无论您使用哪种网络代码),然后添加撮合系统,以便自动将玩家分组并连接到距离他们最近的服务器。
一旦您的游戏服务器完成容器化,Edgegap 只需通过简单的 API 调用即可将其按需部署到全球 615+ 个边缘云节点,并完全按用量计费:无需租用、配置整台服务器,也无需在比赛间隙保持其运行。对于需要预留容量的持久服务器,Edgegap 提供了专用队列(Private Fleets)。Edgegap 的對局配對以此为基础构建,且是可选的。
Unity 本身无法自动处理游戏的网络通信:您需要一个网络代码库。幸运的是,Edgegap 已针对所有主流网络库提供了集成:Netcode for GameObjects、Mirror、Fish-Networking、Photon Fusion 2 以及 PurrNet。本页面介绍了所有 Unity 项目的通用内容;各个网络代码的专属页面则介绍了其具体细节。
本指南涵盖以下内容:
准备 Unity、网络代码、Edgegap 账户以及容器化工具
将编程智能体连接到 Edgegap(可选)
让游戏为专用服务器做好准备(无论使用哪种网络代码)
构建并容器化游戏服务器
部署测试服务器并与之建立连接
添加撮合功能(可选)
使用两名玩家测试完整闭环
您可以通过两种方式进行操作,也可以将它们结合使用:
使用编程智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体会编辑您的项目、构建并容器化服务器、完成部署并编写撮合代码。您只需在 Unity 和 Edgegap 控制面板中进行点击操作,并进行游玩测试即可。
手动操作。以下每个步骤在不使用智能体的情况下同样适用。
关于构建和容器化服务器,Edgegap 的 Unity 自动化游戏服务器构建工具插件是可选的。它可以通过 Unity 编辑器中的按钮构建服务器、将其容器化并部署到云端,这是首次查看服务器上线的极快途径(步骤 4,选项 A)。
步骤 4 中的视频在 Unity 6.3 LTS 上使用了 Mirror 的 Tanks 示例。任何作为专用服务器运行的 Unity 项目的工作方式都与此相同。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
已安装 Linux 构建模块的 Unity 引擎。Edgegap 建议使用 LTS 版本。
从 Unity Hub 添加以下模块:Linux Build Support (Mono)、Linux Build Support (IL2CPP) 以及 Linux Dedicated Server Build Support。添加后请重启 Unity。
我们使用的是 Unity 6.3 LTS。最新的非 LTS 版本可能会破坏网络代码包,因此对于您要发布的任何内容,请坚持使用 LTS。
在 Windows 上,首次针对 Linux 构建时,Unity 6 可能还会请求 Linux 工具链包(
com.unity.toolchain.win-x86_64-linux)。安装 Git 客户端(2.14.0 或更高版本)并将其添加到您的 PATH 环境变量中。Unity 需要通过它从 Git URL 安装软件包,例如 Edgegap 插件。
可在 localhost 上运行的网络代码。两名玩家应该能够加入并进行游戏,其中一个实例作为服务器。还没有网络代码?Unity 自带的 Netcode for GameObjects 是一个不错的默认选择;对于浏览器 (WebGL) 游戏,请使用 Mirror。
一个正在运行的容器化工具。我们建议使用 Docker Desktop,并在构建时保持安装和运行状态。
其他容器工具也可与 Edgegap 配合使用,但本指南仅涵盖 Docker。
针对 Agent 路径:需要一个 Edgegap API 令牌,可从仪表板 → 用户设置 → 令牌获取。该令牌适用于整个组织,因此请像对待密码一样对待它:切勿将其放入您的项目、游戏客户端或聊天中。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的 Agent 在您的账户上创建应用和版本、部署服务器、读取日志并生成匹配器配置。Agent 技能为其提供了经过测试的 Unity 工作流、C# 模板、网络代码适配器、Dockerfile 以及已知的避坑指南。
Claude Code(在您自己的终端中运行,这样令牌就绝不会通过聊天传递):
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 Desktop:自定义连接器无法发送标头,因此请改用本地服务器(Node 18+):{ "mcpServers": { "edgegap": { "command": "npx", "args": ["-y", "@edgegap/mcp"] } } }。首次使用时会要求输入令牌。
检查是否正常运行:
“列出我的 Edgegap 应用。”
返回空列表是正常的。关于令牌的错误通常意味着标头被错误写成了 token token ...。
3. 让您的游戏做好专用托管准备
在 Edgegap 上,没有玩家担任比赛的主机(Host)。无头专用服务器(headless dedicated server)掌管游戏,因此专用服务器必须自行启动、监听固定端口,并在比赛结束时停止。
找到您的网络代码(netcode)。每种都有其专属的 Edgegap 集成,包含各自的设置、端口和示例:
Netcode for GameObjects,Unity 自带的网络代码:Unity Transport,默认使用 7777/UDP。
Mirror:KCP Transport,7777/UDP。WebGL 使用 SimpleWebTransport。
Fish-Networking:Tugboat,7770/UDP。WebGL 使用 Bayou。
Photon Fusion 2:专用服务器模式,端口和协议参见其指南。
PurrNet:端口和协议参见其指南。
使用您的智能体(Agent):
“加载 edgegap-unity skill,使该项目针对其网络代码做好专用服务器准备:服务器构建在 0.0.0.0 和固定端口上以无头模式启动服务器,客户端连接时生成玩家,并在比赛结束时自动停止服务器。使用正确的网络代码适配器添加 Edgegap 服务器生命周期和配对客户端脚本。然后测试在一台服务器和一个客户端的情况下本地仍可正常运行。”
该 skill 拥有针对 Netcode for GameObjects 和 Mirror 的经过测试的适配器,并将 FishNet 项目发送到其 edgegap-fishnet skill。对于其他网络代码,智能体会根据库的文档编写适配器。
手动配置,无论使用哪种网络代码:
在服务器构建中,仅启动服务器(Server),绝不启动主机(Host)。服务器路径上的任何内容都不应等待菜单或按钮。
监听所有接口(
0.0.0.0)上的固定端口:即上述列表中传输层的默认端口。在客户端连接时生成玩家,而不是为主机生成本地玩家。
从服务器路径中移除 relay、lobby 或 join-code 调用。保留用于测试的直接 IP 连接。
确保在 Build Settings 中启用了包含网络管理器的场景。只有启用的场景才会被构建。
在服务器上设置
Application.targetFrameRate(30 到 60),否则无头构建会使单个 CPU 核心占用率达到 100%。
先在本地进行测试:使用 Unity 的 Multiplayer Play Mode,让一个编辑器(或构建)作为服务器,另一个作为客户端。不要容器化在 localhost 上无法正常运行的游戏。
4. 构建并容器化您的服务器
Edgegap 会在容器内运行您的 Linux 服务器构建版本。您可以使用任一选项,或两者结合使用:例如,首次部署使用插件,之后的每次构建使用您的智能体(Agent)。
选项 A(可选):适用于 Unity 的 Edgegap 自动化游戏服务器构建工具插件。这是首次进行云端部署的最快方式,只需点击按钮即可完成。它使用 Docker 对您的服务器进行容器化。以下视频演示了这一流程。
在 Unity 中,选择Window → Package Manager,点击 +,然后选择 Add package from git URL,并粘贴
https://github.com/edgegap/edgegap-unity-plugin.git。打开 Tools → Edgegap Server Hosting,登录,并在 Connect your Edgegap Account 下粘贴系统提供的令牌(Token)。选择 Validate Token。
选择 Build Server。构建产物将存放在
Builds/EdgegapServer/ServerBuild中。在 Docker 运行的情况下,选择 Validate,然后选择 Containerize with Docker。可选择性执行 Deploy Local Container 并连接客户端进行测试。
选择 Upload Image and Create App Version。在浏览器中,将端口设置为您网络代码(netcode)的端口和协议(步骤 3),命名为
gameport。插件会预填名为“Game Port”的 7770/UDP:如果您的传输协议不同,请修改这两项。提交。
选项 B:指示您的智能体(Agent)。
“构建 Linux 专属服务器(dedicated server),使用适用于 linux/amd64 的 edgegap-unity Dockerfile 将其容器化,使用新标签(tag)将其推送到我的 Edgegap 容器镜像仓库(Container Registry),然后使用我网络代码的端口和协议创建应用和应用版本,命名为 gameport。”
智能体会要求您自行运行 docker login registry.edgegap.com,并使用来自Container Registry 页面的用户名和令牌,以确保这些凭据不会出现在聊天记录中。请确保应用版本已配置该镜像仓库凭据:如果未配置,部署将失败并提示“Unable to pull image from registry”。
每次构建都请使用新的镜像标签,切勿使用 latest。
这是我们在 Unity 6.3 LTS 上结合 Mirror 的 Tanks 示例演示的 Edgegap Unity 插件视频教程:
5. 部署测试服务器并连接
在添加撮合机制之前,请手动启动一个服务器,以验证镜像、端口以及网络代码是否正常运行。以下任一方式均可:
通过插件:选择您的应用和版本,然后选择Deploy to Cloud(部署到云端)。
通过控制面板:在 Edgegap 控制面板中打开您的应用版本,选择Deploy(部署),选择离您较近的地理位置,然后进行部署。
通过您的智能体(Agent):“在我附近部署最新的 Edgegap 版本,等待就绪,显示日志,并将地址和外部端口提供给我。”
当部署状态为 Ready(就绪)时,复制其 Host URL(或 Host IP)以及 External Port(外部端口),填入客户端的连接设置中,然后点击运行。某些传输层协议(例如 Unity Transport)需要使用 IP 而非主机名;浏览器(WebGL)客户端则使用 wss:// 连接到主机名。外部端口在每次部署时都会发生改变,因此请每次都重新读取。服务器在就绪后可能最多需要一分钟才能开始接受玩家连接。
完成后请停止该部署(可在插件中点击 Stop Last Deployment(停止上次部署),或让您的智能体操作)。免费版同时仅运行一个部署,遗忘的测试服务器会阻碍撮合机制的运行。
在这里,您手动选择了位置并分发了地址。若要自动为玩家分组并在他们附近启动服务器,请添加撮合器(Matchmaker)。
6. 添加匹配功能
Edgegap 的撮合系统(matchmaker)是一项托管服务:玩家发送票证,它会根据您的规则(比赛规模、队伍、延迟、技术水平、模式)对玩家进行分组,在离他们较近的位置部署您的服务器,并将地址返回给每个客户端。
使用您的智能体:
“为我的应用版本生成一个 Edgegap matchmaker 配置:一个队伍包含 2 到 4 名玩家,并允许单人玩家在 30 秒后获得服务器,以便我单独测试。将其保存为 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 中更新什么。”
手动操作:请参考我们文档中的 Unity 对局配对指南。
浏览器 (WebGL) 游戏:matchmaker 中不能有延迟规则(浏览器无法发送延迟 ping),并且需要在 allowed_cors_origins 中列出提供您构建版本服务的所有来源源站。
当您发布新的服务器构建版本时,请在 matchmaker 配置中更新 application.version(停止、编辑、启动),否则对局将继续部署旧的构建版本。
7. 与两名玩家一起测试完整循环
请确保没有测试部署仍在运行。
运行两个客户端:Editor 加上一个构建版本,或者两个 Multiplayer Play Mode 玩家。
在两者中都选择 Find Match。状态会从 searching(搜索中)变为 match found(找到比赛),再到 host assigned(已分配主机),然后两个客户端都会连接到同一台服务器。
离开比赛。服务器会记录其正在停止,并且部署将从仪表板中消失。正是这种自动停止机制使您在无人游玩时账单保持为零。
在免费层级中,撮合器(matchmaker)在每次启动 3 小时后停止(可从仪表板重新启动),部署会在 60 分钟后停止,且一次只运行一个部署。
针对浏览器进行开发?请参阅 网页游戏 (Unity)。更偏好玩家自主浏览的大厅模式?请参阅 Unity 服务器浏览器。已经在使用 Unity Gaming Services?请参阅 我们的 UGS Matchmaker 指南。
准备上线?让您的智能体运行 edgegap-launch 技能的检查清单:版本发布、重启策略、最大运行时间、成本控制。
遇到问题?让您的智能体加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专属服务器上托管 Unity 多人游戏的常见问题,无论您使用哪种网络代码均适用。
Unity 可以运行专用服务器吗?
是的。为 Linux 专用服务器目标构建您的游戏,这是一种没有图形或玩家的无头构建。然后,您的网络代码会将其作为服务器启动,Edgegap 在容器中运行它,每场比赛一个容器。
开发 Unity 专属服务器时,我应该使用哪种网络代码方案?
Netcode for GameObjects 是 Unity 官方自带的方案,非常适合作为桌面端和移动端的默认选择。Mirror 的 WebGL 路径则经过了 Edgegap 撮合机制的端到端验证。Fish-Networking、Photon Fusion 2 和 PurrNet 同样可用,并且各自都附有 Edgegap 集成指南。
托管 Unity 游戏需要 Edgegap 插件吗?
不。该插件是从 Unity Editor 进行构建、容器化和部署的最快方式。连接到 Edgegap MCP 服务器的编码代理,或者您自己的 Docker 构建也同样可行。
哪个 Unity 版本支持 Edgegap?
任何包含 Linux Dedicated Server 构建模块的较新版本均可。Edgegap 推荐使用 LTS 版本;本指南使用 Unity 6.3 LTS。同时安装一个 Git 客户端,以便通过 Git URL 添加软件包。
托管一个 Unity 游戏服务器需要多少钱?
测试是免费的,无需信用卡。之后,Edge Cloud 仅在服务器运行期间按每 vCPU 每分钟计费,因此在每场比赛结束时停止的服务器在比赛之间不产生任何费用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

台球大师巡回赛Max
RETA Games
Case Study

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

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.
Case Study

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









