
本指南向您展示如何通过 Edgegap 的服务器浏览器(Server Browser),为已在 Edgegap 专用游戏服务器上运行的 Unity 多人游戏添加按需在线大厅:每位玩家预订一个席位并自动连接到就绪的服务器,无需任何人输入地址。
一旦您的游戏服务器容器化,Edgegap 只需通过一个简单的 API 调用即可将其部署到全球 615+ 个边缘云节点(按需部署),并完全按使用量计费:无需租用、配置整台服务器,也无需在比赛间隔期间保持其运行。对于预留容量的持久性服务器,Edgegap 提供专用舰队(Private Fleets)。Edgegap 的對局配對以此为基础构建,并且是可选的。
服务器浏览器是介于玩家和服务器之间的托管服务。游戏客户端通过它预订席位 (1)。每台服务器自行注册、报告其空闲席位,并通过心跳保持可见 (2)。然后玩家使用您的网络代码直接连接到服务器 (3)。扩缩容策略会启动服务器,以确保始终有可用容量 (4)。

本指南涵盖:
为您的游戏准备一个正常工作的 Edgegap 应用版本
将您的编程智能体连接到 Edgegap(可选)
安装 Edgegap 的 Unity SDK
添加集成代码
将脚本添加到您的场景中
创建您的服务器浏览器
使用扩缩容策略部署您的服务器
使用两名玩家进行测试
您可以通过两种方式进行操作,也可以结合使用:
使用编程智能体。任何 AI 编程助手都可以根据步骤 4 中的两个提示编写集成代码。连接到 Edgegap MCP 服务器后,它还可以构建、推送和部署您的服务器。您只需在 Unity 和 Edgegap 仪表板中进行点击操作,并进行试玩测试。
手动操作。下面的每个步骤也可以在没有智能体的情况下完成。
在此,我们使用 Mirror 的台球(Billiards)示例。任何 Unity 网络代码的运作方式都是相同的。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
游戏服务器的一个正常运行的 Edgegap 应用版本:即您至少部署并加入过一次的服务器。服务器浏览器(Server Browser)会部署并填充该服务器,因此它需要一个功能完备的容器化游戏服务器才能实现端到端运行。如果您目前还没有,请参考我们的指南:
上述指南中提到的 Edgegap 针对 Unity 的游戏服务器构建工具插件,用于在步骤 7 中重新构建您的服务器。
对于 Agent 路径:需要一个 Edgegap API 令牌,可从 控制面板 → 用户设置 → 令牌(Tokens) 获取。该令牌在组织范围内有效,因此请妥善保管,将其视为密码:切勿将其放入您的项目、游戏客户端或聊天中。
Git:Unity 需要在您的 PATH 环境变量中配置 Git 客户端(2.14.0 或更高版本),以通过 Git URL 安装程序包(如 Edgegap SDK)。macOS 通常已自带(Xcode 命令行工具);在 Windows 上,请安装 Git。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体在您的账户上创建应用和版本、部署服务器以及读取日志。Edgegap 的智能体技能尚未涵盖服务器浏览器(Server Browser),因此集成代码来自步骤 4 中的两个提示词;但这些技能仍然有助于构建和部署。
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 应用。”
您的应用及其版本应出现在列表中。
3. 安装 Edgegap 的 Unity SDK
服务器浏览器(Server Browser)是 Edgegap Unity SDK 的一部分,与用于构建和部署服务器的插件是相互独立的软件包。
在 Unity 中,选择 Window → Package Management → Package Manager,点击 +,然后选择 Add package from git URL,粘贴
https://github.com/edgegap/edgegap-unity-sdk.git并点击 Add。在 SDK 的 Samples 选项卡中,导入 Server Browser - Auto-Assign。它会添加两个脚本:一个用于预留席位并将服务器地址传递给游戏的客户端处理程序(client handler),以及一个用于在服务器浏览器中注册您的服务器并报告其空闲席位的服务器处理程序(server handler)。
该 SDK 几乎完成了所有工作。仅剩三个与网络代码相关的部分需要您自行处理:将玩家连接到所分配服务器的代码行、告知服务器哪个玩家加入的简短握手,以及在玩家离开时释放其席位。步骤 4 将添加这些内容。
4. 添加集成代码
适用于任何 AI 编码助手的两个提示词,用于为你的网络代码编写相应代码。下面的视频展示了它们在 Mirror 的台球(Billiards)示例上的应用效果。
提示词 1,审查你的项目(只读):
“只读模式,不更改代码。我正在 Unity 项目中集成 Edgegap Server Browser(自动分配功能):在运行时,它会为我的客户端提供一个预留服务器的地址(FQDN)和一个外部端口,并且我的服务器必须通过玩家 ID 确认每位玩家。请查找并告知我,需包含文件路径和行号:1) 启动客户端连接的方法,以及设置服务器地址和端口的具体字段,外加当前使用的传输层(transport);2) 我的网络代码如何从客户端向服务器发送自定义小消息并在服务器上为其注册处理器;3) 客户端完成连接时触发的事件,以及在客户端启动时该事件是否会被重置(以便我知道是否应在启动客户端之后再进行订阅);4) 玩家断开连接时在服务器上触发的事件,以及它如何识别该连接。请首先查看类似 NetworkManager 的类及其传输层。对照项目逐一确认。”
提示词 2,编写集成代码:
“根据上述审查结果,为 Edgegap Server Browser 自动分配集成进行三处更改,无需派生子类或替换现有网络代码的管理器。1) 在 Assets/Scripts/ 中创建一个独立的 MonoBehaviour EdgegapPlayerConnector(静态 Instance,DontDestroyOnLoad),并包含一个携带字符串类型 playerId 的小型网络消息。在服务器端,于 Start() 中注册其处理器:存储连接与 playerId 的映射关系,并调用 ServerBrowserServerHandler.Instance.OnPlayerJoined(playerId)。公开 SubscribeClientConnected() 方法,一旦客户端连接成功就发送 ServerBrowserClientHandler.Instance.LocalPlayerId,该方法可在客户端启动后安全调用。2) 在示例的 ServerBrowserClientHandler.cs 中,在运行时生成 LocalPlayerId(新的 GUID)并用于座位预留;座位预留完成后,将分配的 FQDN 设置为网络地址,将外部端口转换为当前传输层所需的类型并进行设置,启动客户端,然后调用 SubscribeClientConnected()。3) 在服务器端,订阅审查中确定的断开连接事件;查找断开连接所对应的 playerId,按照在 SDK 源码中查看到的函数签名调用 ServerBrowserServerHandler.Instance.OnPlayerAbandoned,并移除该记录项。做好缺失条目和缺失处理器的防御性保护。请返回完整的文件内容。”


审查过程能为你发现网络代码中的特殊机制。例如在 Mirror 中,客户端连接事件会在客户端启动时被重置,因此连接器要在启动客户端之后才进行订阅。如果不释放座位,就会造成座位泄漏,服务器最终会报告无空余座位。
以下是我们使用 Mirror 的台球示例制作的 Edgegap Unity 服务器浏览器视频教程:
5. 将脚本添加到您的场景中
在 Unity 中,脚本挂载到游戏对象上才会生效。在您的游戏场景中,选择 GameObject → Create Empty 三次:
Edgegap Player Connector:添加助手创建的连接器脚本。
Server Browser Server Handler:添加 Server Browser Server Handler 组件。
Server Browser Client Handler:添加 Server Browser Client Handler 组件。
暂时将处理程序的字段留空:它们将在步骤 6 中填充。
6. 创建您的服务器浏览器
在 Edgegap 控制面板中,打开服务器浏览器(Server Browser)并创建一个,例如命名为
quickstart,使用 Simple Example 配置。启动它并等待其上线。在免费层级中,每次启动后它会在共享测试集群上运行 3 小时,这对于测试来说足够了。
打开其详细信息并复制 API URL、服务器令牌(server token)和客户端令牌(client token)。
在 Unity 中,将 API URL 和服务器令牌粘贴到服务器处理器中,并将相同的 API URL 和客户端令牌粘贴到客户端处理器中。调换令牌会导致连接错误。保存场景。
服务器令牌可以在您的服务器浏览器上执行所有操作,因此它只能存在于运行在 Edgegap 上的服务器中,绝不能出现在玩家的设备上。将其粘贴到组件中是为了保持本次测试的简单性;在生产环境中,请将其设置为应用程序版本中的变量,这会覆盖检视面板(Inspector)的值,并使其远离您的项目。客户端令牌仅用于预留席位和读取状态。

在生产环境中,许多工作室会让玩家首先登录他们自己的玩家服务,由该服务为玩家预留席位。
7. 使用弹性伸缩策略部署您的服务器
您的服务器现在会读取服务器浏览器(Server Browser)的 URL 和令牌,因此需要一个新的应用版本:早期版本不包含这些内容。
使用 Edgegap 插件构建、容器化并上传您的服务器,完全按照服务器指南中的说明操作(或选择从源码构建 (Build from source) 一次性运行这三项)。使用您的智能体:“构建 Linux 服务器,使用新标签推送它,并使用相同的端口创建一个新的应用版本。”
在您的服务器浏览器上,创建一个名为
on-demand的扩缩容策略 (scaling policy):将最小活动实例数 (Minimum Active Instances) 设置为1,选择您的应用程序和新版本,并将专用主机 (Private Hosts) 留空以便部署到 Edgegap 的云端。将其保存为激活状态。一分钟内,该策略就会部署您的服务器。其日志显示它正在向服务器浏览器注册、报告健康状态,并显示有空闲席位可被发现。您的按需大厅现已上线。
至少保持一个活动实例可确保始终有一台服务器在运行,随时供玩家加入。测试完成后请记得它仍在运行:停用该策略即可将其停止。
8. 双人测试
使用 Unity 的 Multiplayer Play Mode 或编辑器加构建版本运行两个玩家。
点击 Play。每个玩家预留一个席位,获取服务器地址并连接,服务器确认每个玩家并占用一个席位。
两个玩家进入同一个云服务器,各自的操作都会同步到对方的窗口中。

新分配的服务器可能还需要稍等片刻才能启动完成,因此对于生产环境,请添加连接重试机制:尝试几次,每次间隔数秒。
让玩家自行选择。除自动分配外,玩家还可以按地区、空位、游戏模式或服务器报告的任何元数据搜索和浏览服务器,并选择其一。扩缩容策略还可以使备用服务器保持温启动状态以供启动使用,或者通过添加主机 ID 将服务器固定到专属机队。
比起玩家选择,更倾向于严格的规则?请参阅 Unity 對局配對 SDK。在 Unreal Engine 上,服务器浏览器通过 Betide Studios 的 Edgegap 集成套件运行。
遇到困难?请在 Edgegap Discord 上向我们的团队和其他工作室寻求帮助。
常见问题
关于在 Unity 多人游戏中添加 Edgegap 服务器浏览器的常见问题。
在多人游戏中,什么是服务器浏览器?
玩家可以加入的实时游戏服务器列表,包含其空余席位以及区域或游戏模式等设置。Edgegap 的服务器浏览器是一项托管服务:服务器注册并上报其席位,玩家预留席位并进行连接,弹性伸缩策略则根据需要启动服务器。
我应该使用服务器浏览器还是快速匹配?
当玩家需要自行选择服务器或直接加入正在运行的大厅时,请使用服务器浏览器;当需要根据你的规则(例如技术水平或队伍平衡)来决定谁与谁一起游戏时,请使用匹配系统。Edgegap 同时提供这两种功能,并且它们可以协同工作:匹配系统启动服务器,服务器浏览器则负责填满这些服务器。
Edgegap 的 Server Browser 是否支持 Mirror、Netcode for GameObjects 和 Fish-Networking?
是的。服务器浏览器不依赖于您的网络代码。只有三个部分发生变化:连接到分配的地址和端口、将玩家 ID 发送到服务器,以及在玩家离开时释放席位。
服务器令牌和客户端令牌之间有什么区别?
服务器令牌可以使用所有服务器浏览器(Server Browser)方法,并且仅应放置在您的游戏服务器中,理想情况下作为应用程序版本变量。客户端令牌仅用于预订席位和读取状态,适用于游戏客户端或您的玩家服务。两者都不是您的 Edgegap API 令牌。
Edgegap 的服务器浏览器费用是多少?
测试是免费的,在共享集群上运行,每次启动后可运行 3 小时。您的扩缩容策略部署的服务器在其运行期间按每 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 自动化游戏服务器编排如何带来无缝的多人游戏体验。









