本指南向您展示如何保留 Heroic Labs 的 Nakama 用于您的账户、社交功能和匹配,并为每场比赛启动一个 Edgegap 专用游戏服务器:当 Nakama 的匹配系统将玩家分组时,Nakama 会在他们附近部署一个服务器,并将服务器地址发送给每位玩家。
一旦您的游戏服务器完成容器化,只需一次简单的 API 调用,Edgegap 即可将其按需部署到全球 615+ 个边缘云节点,并完全按使用量计费:无需租用整台服务器、提前配置或在比赛间隙保持其运行。对于预留容量的持久服务器,Edgegap 提供了专用队列 (Private Fleets)。
Nakama 和 Edgegap 通过 Edgegap 的 Nakama Fleet Manager 插件进行连接,这是与 Heroic Labs 共同维护的经过验证的集成。它在您的 Nakama 服务器内部运行,因此您的 Edgegap API 令牌始终保留在后端,绝不会传递给游戏客户端。
本指南涵盖:
准备一个可用的 Edgegap 应用版本和 Nakama 服务器
将您的代码智能体 (coding agent) 连接到 Edgegap(可选)
将 Edgegap Fleet Manager 添加到 Nakama
对其进行配置
向 Nakama 报告游戏服务器的状态
当 Nakama 的匹配系统找到对局时启动服务器
使用两名玩家进行测试
您可以通过两种方式进行操作,也可以将它们混合使用:
使用代码智能体。 将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其 agent skills。智能体负责编写 Nakama 模块和游戏服务器调用,并检查您的应用版本及部署。您只需处理 Nakama 和 Edgegap 控制面板、密钥以及试玩测试。
手动操作。 以下每个步骤在没有智能体的情况下也同样适用。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
一个可正常运行的 Edgegap 应用版本的游戏服务器:即您已成功部署并至少加入过一次的服务器。Nakama 会为每场比赛部署该版本,因此它需要一个功能完备的容器化游戏服务器来实现端到端运行。如果您目前还没有,请参考我们的指南:Unity Engine、Unreal Engine、Godot Engine 或 Custom Engine。请记下其应用名称、版本名称和端口名称(通常为
gameport)。一个 Nakama 服务器,您可以向其添加 Go 运行时模块:可通过 Docker 自托管,或在 Heroic Cloud 上托管。
一个 Edgegap API 令牌,可从 控制面板 → 用户设置 → 令牌 获取。它仅用于您的 Nakama 服务器配置。该令牌适用于整个组织,因此切勿将其放入您的游戏客户端、游戏服务器、项目文件或聊天中。
2. 将您的代码代理连接到 Edgegap
如果您全部手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体检查您的应用和版本、部署测试服务器并查看您账户上的日志。edgegap-deployments-api 智能体技能为它提供了用于启动 Edgegap 服务器的后端已测试规则,包括 Nakama。
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 Fleet Manager 添加到 Nakama
该插件实现了 Nakama 的队列管理器(Fleet Manager):Nakama 向其请求服务器,它会在 Edgegap 上部署一台服务器并在 Nakama 的存储中进行跟踪。
自托管 Nakama:使用 go get github.com/edgegap/nakama-edgegap 将 Go 软件包添加到您的运行时模块中,然后在模块的 InitModule 中注册它:
fleetmanager.NewEdgegapFleetManager(ctx, logger, db, nk, initializer),然后initializer.RegisterFleetManager(efm)。initializer.RegisterAfterAuthenticateCustom(fleetmanager.OnAuthenticateUpdateCustom):在每位玩家登录时存储其公网 IP,以便 Edgegap 能够将服务器放置在整个群体附近。initializer.RegisterMatchmakerMatched(...):用于第 6 步的回调。
对于本地测试,该代码仓库包含一个 docker-compose.yml 和 Dockerfile:docker compose up --build -d。
Heroic Cloud:从 nakama-edgegap 代码仓库(或包含您自己模块代码的派生仓库)创建一个构建器(Builder)。
配合您的智能体:
“加载 edgegap-deployments-api 技能。将 github.com/edgegap/nakama-edgegap 添加到我的 Nakama Go 模块中:注册 Edgegap 队列管理器、用于存储玩家 IP 的认证后钩子,以及一个撮合匹配成功的回调,用于为匹配的用户创建 Edgegap 实例并通知他们。从环境变量读取所有配置设置。”
4. 配置车队管理器
在您的 Nakama 服务器上设置这些环境变量(在 Heroic Cloud 上,位于您的实例配置中):
EDGEGAP_API_URL:https://api.edgegap.comEDGEGAP_API_TOKEN:您的 API 令牌,包含其token前缀。请将其保存在您的机密存储中。EDGEGAP_APPLICATION:您的 Edgegap 应用程序名称。INITIAL_EDGEGAP_VERSION:要部署的应用版本,在您设置另一个版本之前一直使用。EDGEGAP_PORT_NAME:玩家连接的端口,通常为gameport。NAKAMA_ACCESS_URL:Nakama 服务器的公开https://地址,游戏服务器会对其进行回调。
可选配置:EDGEGAP_POLLING_INTERVAL(默认 15 分钟)、NAKAMA_CLEANUP_INTERVAL(1 分钟)和 NAKAMA_RESERVATION_MAX_DURATION(30 秒)。在生产环境中保持这两个后台工作进程处于开启状态。
发布新的服务器版本而无需重启 Nakama:使用您的 Nakama HTTP 密钥调用服务器对服务器 RPC update_edgegap_version,附带 {"version": "..."}。它会先检查 Edgegap 上是否存在该版本。游戏客户端无法调用它。
5. 向 Nakama 上报游戏服务器状态
Nakama 会跟踪它启动的每个服务器:它是否就绪、谁已连接以及剩余多少空位。您的游戏服务器会通过插件注入到每个部署中的三个环境变量来告知它这些信息:
NAKAMA_INSTANCE_EVENT_URL:服务器接受玩家后发送READY,无法开始比赛时发送ERROR,比赛结束时发送STOP。收到STOP时,Nakama 会停止 Edgegap 部署。NAKAMA_CONNECTION_EVENT_URL:发送已连接用户 ID 的完整列表,大约每 5 秒批量发送一次。NAKAMA_INSTANCE_METADATA:Nakama 创建服务器时所使用的比赛详细信息,格式为 JSON。
Unity:Edgegap Server Nakama Plugin for Unity 会为您完成这些调用。其他引擎:从您的服务器代码中进行三次简短的 HTTP 调用。
使用您的智能体:
“在我的游戏服务器中,读取 NAKAMA_INSTANCE_EVENT_URL、NAKAMA_CONNECTION_EVENT_URL 和 NAKAMA_INSTANCE_METADATA。服务器开始监听后,随实例 ID 一同发送 READY;每 5 秒发送一次已连接的用户 ID;并在比赛结束时发送 STOP。”
6. 当 Nakama 找到匹配时启动服务器
玩家像往常一样从您的游戏客户端加入 Nakama 的匹配系统(使用 Nakama 客户端 SDK 中的
AddMatchmaker)。当 Nakama 将他们分组时,您的匹配成功回调会收集匹配的用户 ID,并带上匹配规模和这些用户调用 Fleet Manager 的
Create。Fleet Manager 会在玩家附近部署您的应用版本,并等待服务器返回
READY。每位玩家都会收到一条主题为
connection-info的 Nakama 通知,其中包含:IpAddress、DnsName、Port和InstanceId。客户端将连接到该地址和端口。如果服务器无法启动,玩家则会收到create-timeout或create-failed:此时将他们重新放回队列中。
想让玩家加入已经在运行的服务器吗?该插件还提供了 RPC 示例:instance_list(例如,至少有一个空位的服务器)和 instance_join。在生产环境中请使用 Nakama 的匹配器,而这些示例可用于测试或服务器浏览器。
7. 双人测试
确保没有测试部署仍在运行:免费层每次仅运行一个部署。
让两个客户端登录 Nakama 并同时加入撮合系统。
在 Edgegap 控制面板中,您的版本部署将出现在您附近的位置。
两个客户端都接收到
connection-info并连接到同一台服务器。结束比赛:服务器发送
STOP,Nakama 停止该部署,并且它会从控制面板中消失。
如果玩家获得了地址但无法连接,这是服务器的问题,而不是 Nakama:请从控制面板手动部署您的版本并直接加入。
准备上线?让您的代理运行 edgegap-launch 技能清单:版本发布、重启策略、最长持续时间、成本控制。还没有后端?Edgegap 托管的匹配系统无需代码即可运行。
遇到问题?让您的代理加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专属服务器上托管 Nakama 对战的常见问题。
Nakama 可以启动专属游戏服务器吗?
是的。Nakama 的 Fleet Manager 允许它为每场比赛请求一台服务器。Edgegap 的 Nakama 插件实现了这一功能:当 Nakama 的匹配系统将玩家分组时,它会在玩家附近部署一台 Edgegap 服务器,并将地址发送给每位玩家。
Edgegap Nakama 插件可以在 Heroic Cloud 上运行吗?
是的。从 nakama-edgegap 仓库或包含您自己模块代码的复刻(fork)中创建一个 Builder,并在您的实例上设置该插件的环境变量。它也可以在带有 Docker 的自托管 Nakama 上运行。
我的 Edgegap API 令牌应该配置在 Nakama 的什么位置?
仅在 Nakama 服务器的配置中作为 EDGEGAP_API_TOKEN。游戏客户端和游戏服务器绝不持有它:游戏服务器通过插件注入的回调 URL 向 Nakama 报告其状态。
玩家如何从 Nakama 获取服务器地址?
服务器准备就绪后,Nakama 会向每位匹配的玩家发送一条包含服务器 IP 地址、主机名、端口和实例 ID 的连接信息通知。客户端直接连接至该服务器。
哪些游戏引擎支持与 Nakama 和 Edgegap 配合使用?
任何服务器在 Linux 容器中运行的引擎:Unity、Unreal Engine、Godot 或您自己的自研引擎。Edgegap 的 Unity 插件会代您进行服务器端的 Nakama 调用;其他引擎则只需进行三个轻量级 HTTP 调用即可。

客户
了解更多已接入 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 自动化游戏服务器编排如何带来无缝的多人游戏体验。









