本指南向您展示如何在 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 引擎、Unreal Engine 或 Godot 引擎开始。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
一个可在 Linux x86-64 上以无头模式运行的游戏服务器:无窗口、无 GPU、无输入提示,通过命令行标志或环境变量进行配置。两名玩家应能够在 localhost 上加入该服务器。
一个主导游戏逻辑的权威服务器。客户端发送输入;服务器决定位置、击中情况和得分。仅转发客户端声明内容的服务器只是一种昂贵的中继,并且很容易被作弊。
一个处于运行状态的容器化工具。我们推荐使用 Docker Desktop。
对于 Agent 路径:一个 Edgegap API 令牌,获取自 控制面板 → 用户设置 → 令牌。它是组织级别的,因此请像对待密码一样对待它:切勿将其放入您的服务器、游戏客户端、项目文件或聊天工具中。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体在您的账户上创建应用和版本、部署服务器、读取日志并生成撮合系统配置。智能体技能为其提供了与引擎无关的规则:用于生命周期的 edgegap-server-design、用于镜像的 edgegap-containerize,以及在您花钱之前的 edgegap-local-testing。
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. 让您的服务器适配 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 的匹配器是一项托管服务:您的客户端发送票证(ticket),匹配器根据您的规则(比赛规模、队伍、延迟、技术水平、模式)将玩家分组,在他们附近部署您的服务器,并将服务器地址返回给每个客户端。无需链接任何库:它是一个 HTTP API。
编写配置:您的应用程序及版本、每场比赛的玩家人数,以及一条让单人玩家在测试时等待 20 秒后即可获得服务器的规则。您的智能体(Agent)可以生成该配置:“为我的应用版本生成 Edgegap 匹配器配置:一支 2 到 4 名玩家的队伍,单人玩家在 20 秒后获得服务器。”
在控制面板中,打开 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 大厅。
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并向他们的社区交付完美的启动和后启动服务的。
案例研究

克服因虚拟现实在竞技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 自动化游戏服务器编排如何带来无缝的多人游戏体验。









