本指南将向您展示如何在 Edgegap 的专用游戏服务器上托管基于您自研引擎构建的多人游戏,或用任何语言(C++、C#、Go、Rust、Java 等)编写的游戏服务器,然后添加撮合配对功能,以便玩家自动分组并连接到离他们最近的服务器。
一旦您的游戏服务器容器化,Edgegap 只需一个简单的 API 调用即可将其按需部署到全球 615+ 个边缘云位置,并完全按使用量计费:无需租用、配置整台服务器,也无需在对局之间保持服务器运行。对于预留容量的持久服务器,Edgegap 提供了专用机群 (Private Fleets)。Edgegap 的對局配對构建在此之上,并且是可选的。
Edgegap 无需 SDK,也无需引擎插件。如果您的服务器可以在 Linux 容器中以无外设(headless)模式运行,它就能在 Edgegap 上运行:您推送镜像,Edgegap 会为每场比赛启动该镜像的副本并将地址分配给玩家。本页介绍了您的服务器为适配该模式需遵循的几项规则。
本指南涵盖:
准备您的服务器、Edgegap 账户和容器化工具
将您的编码智能体连接到 Edgegap(可选)
让您的服务器适配 Edgegap 的生命周期
对其进行容器化并创建应用版本
本地测试,然后部署测试服务器
添加撮合配对(可选)
通过两名玩家测试完整闭环
您可以通过两种方式进行,也可以将它们结合使用:
使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体将适配您的服务器、编写 Dockerfile、测试容器、进行部署并生成匹配器配置。您负责 Edgegap 仪表板、密钥管理和游戏测试。
手动操作。以下每个步骤在没有智能体的情况下也同样适用。
正在使用 Unity、Unreal Engine 或 Godot 构建?请改为从 Unity Engine、Unreal Engine 或 Godot Engine 开始。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
一个可在 Linux x86-64 上以无头模式运行的游戏服务器:无窗口、无 GPU、无输入提示,通过命令行标志或环境变量进行配置。两名玩家应能够在 localhost 上加入该服务器。
一个主导游戏逻辑的权威服务器。客户端发送输入;服务器决定位置、击中情况和得分。仅转发客户端声明内容的服务器只是一种昂贵的中继,并且很容易被作弊。
一个处于运行状态的容器化工具。我们推荐使用 Docker Desktop。
对于 Agent 路径:一个 Edgegap API 令牌,获取自 控制面板 → 用户设置 → 令牌。它是组织级别的,因此请像对待密码一样对待它:切勿将其放入您的服务器、游戏客户端、项目文件或聊天工具中。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的 Agent 在您的账户上创建应用和版本、部署服务器、读取日志并生成撮合系统(matchmaker)配置。Agent 的各项技能为其赋予了与引擎无关的规则:edgegap-server-design 用于生命周期,edgegap-containerize 用于镜像,edgegap-local-testing 用于在产生费用前进行测试。
Claude Code(在您自己的终端中运行,这样 Token 绝不会经过聊天窗口):
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"] } } }。首次使用时会要求输入 Token。
检查是否正常运行:
“列出我的 Edgegap 应用。”
返回空列表属于正常情况。关于 Token 的报错通常意味着请求头格式变成了 token token ...。
3. 让您的服务器适配 Edgegap 的生命周期
在 Edgegap 上,一次部署通常对应一场对局:它为一组玩家启动,并在他们的对局结束时停止。您的服务器需要遵循以下六条规则:
绑定在
0.0.0.0上的固定端口,例如 7777/UDP。Edgegap 会在每次部署时为玩家分配一个随机的外部端口,并将其映射到您的端口。绑定127.0.0.1或随机端口可以在您的本地机器上运行,但在 Edgegap 上将无法访问。从环境变量中读取配置。Edgegap 会将它们注入到每次部署中:
ARBITRIUM_REQUEST_ID(部署 ID;建议记录日志)、ARBITRIUM_PORT_GAMEPORT_INTERNAL和_EXTERNAL、ARBITRIUM_PUBLIC_IP,以及在匹配系统部署中的MM_MATCH_ID和MM_TICKET_IDS(匹配成功的对象)。您自己的设置则配置在应用版本或部署上。一旦开始接受玩家,向 stdout 记录一行清晰的日志,例如
READY port=7777。日志应输出至 stdout 和 stderr,绝不能仅写入文件。在对局结束时自动停止服务器,或者在无玩家连接约 30 秒后停止:使用请求头
Authorization: <ARBITRIUM_DELETE_TOKEN>向ARBITRIUM_DELETE_URL发送DELETE请求。处于空闲状态的服务器会持续计费,直至达到其最长运行时长。处理 SIGTERM 信号:将结果保存至后端,通知玩家,并在几秒钟内退出。
限制您的 tick 率或帧率。无上限运行的无头(headless)循环会耗尽整个 CPU 核心。20 到 30 Hz 适用于大多数动作游戏,60 Hz 适用于快节奏射击游戏。
您的服务器绝不会持有 Edgegap API 令牌:自动停止功能拥有自己独立的、按每次部署生成的令牌。
配合您的智能体使用:
“加载 edgegap-server-design 技能并让我的游戏服务器适配 Edgegap:在固定端口上绑定 0.0.0.0,读取 ARBITRIUM_ 和 MM_ 环境变量,在开始接受玩家时记录 READY 日志,在对局结束或无玩家连接 30 秒后通过 ARBITRIUM_DELETE_URL 自动停止,在收到 SIGTERM 时安全退出,并限制 tick 率。然后检查它是否仍可在两个本地客户端下正常运行。”
4. 将您的服务器容器化并创建应用版本
Edgegap 运行 linux/amd64 容器。请在 Docker 外部构建服务器,或者针对编译型语言在构建阶段进行构建,然后仅将服务器复制到精简镜像中:
将其作为容器的主进程启动,采用 exec 格式:
ENTRYPOINT ["./my-server"]。置于其前面的 Shell 脚本会吞掉 SIGTERM 信号;如果您需要使用 Shell 脚本,请以exec ./my-server "$@"结尾。针对 Edgegap 平台进行构建,即使在 Apple Silicon 上也是如此:
docker build --platform linux/amd64 -t registry.edgegap.com/<project>/<image>:<tag> .镜像中不得包含敏感信息,且绝不要在启动时打印环境变量:这会导致自停止令牌暴露在日志中。
推送到 Edgegap 容器镜像仓库:使用来自容器镜像仓库页面的用户名和令牌自行运行
docker login registry.edgegap.com,然后执行docker push。每次构建都请使用新标签,切勿使用latest。Docker Hub、GHCR、ECR、GCP 和 GitLab 镜像仓库也同样支持。
然后在控制面板中创建应用程序及其版本:设置您的镜像和标签、镜像仓库凭据(若缺少凭据,部署将失败并提示“Unable to pull image from registry”)、初始配置 1 vCPU 和 2 GB、端口及其协议命名为 gameport,重启策略设为从不 (Never)。
配合您的智能体使用:
“加载 edgegap-containerize 技能。为我的 linux/amd64 服务器编写一个多阶段构建 Dockerfile,使用新标签构建并推送它,然后创建 Edgegap 应用及应用版本,配置我的端口和协议,命名为 gameport,重启策略设为 never。”
5. 本地测试,然后部署到测试服务器
首先在本地进行,使用 Edgegap 会设置的环境变量:docker run --rm -p 7777:7777/udp -e ARBITRIUM_PORT_GAMEPORT_INTERNAL=7777 <image>:<tag>。将客户端连接到 127.0.0.1:7777,然后使用 docker stop 停止容器,并检查您的服务器是否正常退出。
然后在 Edgegap 上进行。从控制面板部署您的版本(点击 Deploy,选择一个离您较近的位置),或者让您的智能助手执行:“在离我较近的位置部署我最新的 Edgegap 版本,等待就绪,显示日志,并向我提供地址和外部端口。”
当部署状态为 Ready 时,将客户端连接到其主机 URL(或 IP)和外部端口。每次部署时外部端口都会发生变化。Ready 意味着容器已启动;您的服务器可能还需要几秒钟来加载,因此请让客户端重试最多一分钟。
完成后停止部署。免费层一次只能运行一个部署。
6. 添加匹配功能
Edgegap 的撮合系统(matchmaker)是一项托管服务:您的客户端发送一个票据(ticket),撮合系统会根据您的规则(比赛规模、队伍、延迟、技术水平、模式)对玩家进行分组,在离他们较近的位置部署您的服务器,并将服务器地址返回给每个客户端。无需链接任何库:它是一个 HTTP API。
编写配置:您的应用及版本、每场比赛的玩家人数,以及一条用于测试的规则(允许单人玩家在 30 秒后获得服务器)。您的智能助手可以生成它:“为我的应用版本生成一份 Edgegap 撮合配置:一支队伍 2 到 4 名玩家,单人玩家在 30 秒后获得服务器。”
在控制台中打开 Matchmaker,选择 Create Matchmaker,上传文件并选择 Create and Start。复制 API URL 和 Auth Token。Auth Token 可以安全地随游戏客户端一同发布。
在客户端中使用 API URL 和 Auth Token 创建一个票据,然后检查其状态,直至其从 SEARCHING 变为 MATCH_FOUND 再到 HOST_ASSIGNED,并获取服务器的地址和端口。进行连接。
您的服务器可以在 MM_TICKET_IDS 中找到匹配成功的玩家。完整的 API 请参阅撮合系统文档。
已经拥有自己的撮合系统或大厅服务?您的后端可以直接使用 Edgegap 的部署 API 自行启动服务器:有关该模式,请参阅 Nakama、PlayFab 或 Steam Lobbies。
7. 与两名玩家一起测试完整循环
确保没有测试部署仍在运行。
运行两个客户端并在两边都开始匹配。
两者都与同一服务器达到 HOST_ASSIGNED 状态,并建立连接。
离开比赛。服务器记录其正在停止的日志,并且部署会从仪表板中消失。正是这种自动停止机制使你在无人游玩时保持零费用。
在免费套餐中,匹配器在每次启动 3 小时后停止(可从仪表板重新启动),部署在 60 分钟后停止,且一次只运行一个部署。
服务器的生命周期必须长于单场对局(例如持久世界)?请参阅私有队列。
准备上线?让您的代理运行 edgegap-launch 技能的检查清单:版本发布、重启策略、最大持续时间、成本控制。
遇到困难?让您的代理加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室寻求帮助。
常见问题
关于在 Edgegap 专属服务器上托管自定义引擎游戏服务器的常见问题。
我可以在 Edgegap 上托管来自自研引擎的游戏服务器吗?
是的。任何在 Linux x86-64 容器中无头(headless)运行的服务器均可支持:C++、C#、Go、Rust、Java、Node.js 或任何其他语言。Edgegap 不需要 SDK 或插件;您推送镜像,Edgegap 就会为每场比赛运行一个副本。
我的游戏服务器在 Edgegap 上运行需要什么?
在固定端口上监听 0.0.0.0,从环境变量中读取其设置,将日志输出到 stdout,处理 SIGTERM,并在比赛结束时停止其自身的部署。Edgegap 会将一个随机的外部端口映射到您的端口供玩家使用。
使用 Edgegap 需要 Docker 吗?
Edgegap 运行容器镜像,因此您的服务器需要一个镜像。Docker 是构建它的常用方式,并且我们的智能体技能会为您编写 Dockerfile。任何能够构建 linux/amd64 镜像的工具都可以使用。
游戏服务器在 Edgegap 上是如何自行停止的?
它会向 ARBITRIUM_DELETE_URL 环境变量发送一个 DELETE 请求,并将 ARBITRIUM_DELETE_TOKEN 作为 Authorization 请求头。两者都会注入到每次部署中,因此服务器永远不需要您的 API 令牌。
我可以在 Edgegap 中使用自己的匹配系统(matchmaker)吗?
是的。您的后端可以通过 Edgegap 的部署 API 启动服务器,将每个服务器部署在靠近玩家的位置。或者使用 Edgegap 的托管匹配系统,这是一个您的客户端可以直接调用的 HTTP API。

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









