
本指南将向您展示如何为 Unreal Engine 多人游戏添加专用游戏服务器并托管在 Edgegap 上,然后添加匹配功能,以便玩家自动分组并连接到离他们较近的服务器。
一旦您的游戏服务器容器化,Edgegap 即可通过简单的 API 调用将其按需部署到全球 615 多个边缘云位置,并完全按使用量计费:无需租用、预配整个服务器,也无需在对局之间保持服务器运行。对于需要预留容量的持久服务器,Edgegap 提供了 Private Fleets。Edgegap 的對局配對以此为基础构建,且是可选的。
Unreal 的复制机制本身就是以服务器为权威的,因此专用服务器是天然的选择:没有玩家作为主机,不会拥有延迟优势,也不会因有玩家退出而导致比赛结束。
本指南涵盖:
准备 Unreal、您的 Edgegap 账户和 Docker
将您的编码智能体连接到 Edgegap(可选)
为专用服务器准备您的 Unreal 项目
构建并容器化您的游戏服务器
部署测试服务器并进行连接
添加匹配(可选)
使用两名玩家测试完整流程
我们建议使用 Edgegap 的 Docker Extension 进行构建,以节省时间和资源。 Unreal 只能通过源码构建的引擎来构建专用服务器。传统方法意味着需要下载并编译引擎(首次需要 1 到 3 小时),安装 Linux 交叉编译工具链并打包服务器(首次约需一小时)。而 Docker Extension 则可以在 Windows、macOS 或 Linux 上,直接通过启动器安装的 Unreal 在 Docker 内部构建您的 Linux 服务器。这两种方法均在第 4 步中介绍。
您可以通过两种方式进行,也可以将它们结合使用:
使用编码智能体。 将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP server 及其 agent skills。智能体将编辑您的项目和配置,添加匹配和服务器关闭代码,部署您的服务器并设置匹配。您只需在 Docker Extension 中点击 Build,操作 Edgegap 控制面板,然后进行试玩测试。跳过引擎源码构建还可以为您的智能体节省数小时的构建监控时间以及随之产生的 token 消耗。
手动操作。 以下每个步骤在没有智能体的情况下也同样适用。
在这里,我们使用 Epic 的多人示例游戏 Lyra。任何 Unreal 多人项目的运作方式都是相同的。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮箱。测试无需信用卡。
Unreal Engine 5,从 Epic Games 启动器安装。仅在使用传统方法(步骤 4,选项 B)时,才需要从源代码构建引擎。
一个 C++ 项目。纯蓝图项目首先需要一个 C++ 模块:在编辑器中,选择工具 → 新建 C++ 类 → 无(空类)。您的蓝图将保持正常工作,无需更改。
Docker Desktop 和 Edgegap 的 Docker 扩展。安装并启动 Docker Desktop,然后从 Docker 的扩展市场安装 Edgegap Docker 扩展。
访问 GitHub 上的 Unreal Engine 的权限。该扩展会从 Epic 的 GitHub 组织下载所需内容:
在您的 Epic 账户中的应用和账户下将您的 Epic Games 账户关联至 GitHub,然后接受邮件邀请以加入 GitHub 上的 @EpicGames 组织。
生成一个 GitHub 个人访问令牌(经典),并勾选 read:packages 作用域权限。
对于 Agent 路径:需要一个 Edgegap API 令牌,可从仪表板 → 用户设置 → 令牌获取。该令牌适用于整个组织,因此请像对待密码一样妥善保管:切勿将其放入您的项目、游戏客户端或聊天中。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的 Agent 在您的账户上创建应用程序和版本、部署服务器、读取日志并生成匹配器配置。edgegap-unreal Agent 技能为其提供了经过测试的 Unreal 工作流、用于匹配和服务器关闭的 C++ 即插即用文件,以及已知踩坑点说明。
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. 让您的 Unreal 项目准备好支持专用服务器
在 Edgegap 上,没有玩家会作为比赛的主机。无头专属服务器(dedicated server)掌管着整场游戏,因此它必须能够自行启动、打开游戏地图、监听固定端口,并在比赛结束时停止运行。
使用您的智能体:
"加载 edgegap-unreal 技能并使该项目支持专属服务器。我将使用 Edgegap 的 Docker 扩展来构建 Linux 服务器,因此跳过引擎源码构建、Linux 工具链和 RunUAT 打包。添加 Server 目标,设置 ServerDefaultMap 以及需要烘焙(cook)的地图,从 docs.edgegap.com/unreal-engine 添加 DefaultEngine.ini 配置,并复制 EdgegapMatchmakerSubsystem 和 EdgegapServerSubsystem 文件(目前暂时禁用匹配功能)。检查编辑器目标是否仍能正常编译。"
该技能的默认设置为传统的源码构建。告知智能体您将使用 Docker 扩展进行构建,可以防止其启动源码构建流程。
手动操作:
服务器地图。在项目设置 → 地图与模式(Project Settings → Maps & Modes)中,将服务器默认地图(Server Default Map)设置为服务器打开的地图,并确保它在要烘焙的地图列表中。
引擎设置。从 Edgegap Unreal 文档中复制
DefaultEngine.ini代码片段到Config/DefaultEngine.ini的末尾,并将其最后一行(DefaultServerTarget)替换为您的服务器目标名称。这会禁用客户端与服务器构建版本之间的 Unreal 版本检查,并为同步复制设置 IpNetDriver。然后重启编辑器。服务器目标。如果
Source/<PROJECT>Server.Target.cs不存在,请复制<PROJECT>Editor.Target.cs,将副本重命名为<PROJECT>Server.Target.cs,并将其中所有的 "Editor" 替换为 "Server"。然后添加文档中的服务器构建默认配置,这样可以在发行版本(shipping builds)中保留日志。监听服务器(Listen-server)习惯。专属服务器取代了房主玩家。对于假定服务器上存在本地玩家的代码(如 HUD、音频、
GetFirstPlayerController()),请使用IsRunningDedicatedServer()进行条件保护,并从菜单中移除“主持游戏”(Host game)。比赛结束时停止。使用 Docker 扩展构建时,在比赛结束时于服务器上调用
FGenericPlatformMisc::RequestExit,部署即可停止。
Lyra
Lyra 已经自带了 LyraServer.Target.cs:向其中添加构建默认配置。在地图与模式(Maps & Modes)中,将服务器默认地图(Server Default Map)设置为 ShooterGym,并在代码片段中设置 DefaultServerTarget=LyraServer。
4. 构建并容器化您的服务器
Edgegap 在容器中运行您的 Linux 服务器构建版本。我们建议选择“方案 A”:它能为您节省首次构建的数小时时间,并随之节省代理的 Token。
方案 A(推荐):Edgegap 的 Docker 扩展插件。无需引擎源码构建,无需 Linux 工具链,适用于任何操作系统。下方视频演示了使用 Lyra 的这一流程。
在 Docker Desktop 中打开 Edgegap 扩展插件。输入您的项目名称和 Edgegap 令牌(如果您没有,请选择 Get Quick Start Token),然后选择 Validate Token。
选择 Unreal Engine,然后点击 Browse 浏览至您的项目文件夹并选择 Create Project。该扩展插件会自动填入您的引擎版本。
输入第 1 步中的 GitHub 用户名和个人访问令牌(Personal Access Token)。
选择 Validate Configuration。所有三项检查都必须显示为绿色。
保留默认的 Dockerfile、镜像名称和标签,然后选择 Build Project。
本地测试:选择新标签,点击 Start Local Server,然后在 Unreal 中运行客户端(新编辑器窗口 (PIE)),并在其控制台中输入
open 127.0.0.1:7777。确认运行正常后停止本地服务器。选择 Upload Image。在浏览器中创建应用程序,保留默认资源配置,并将端口设置为 7777、UDP,命名为
gameport。提交。
稍后需要重新构建?再次选择 Build Project 并使用新标签,然后选择 Upload Image。
方案 B:传统方法,从引擎源码构建。如果您的工作室已经在维护源码构建版本,请使用此方案。
您需要准备:来自 Epic 官方 GitHub 的引擎源码(如第 1 步所述已关联)、包含 C++ 游戏工作负载的 Visual Studio 2022、与您的引擎版本匹配的 Linux 交叉编译工具链,以及 Docker Desktop。
时间规划:下载引擎需要 20 到 60 分钟,构建需要 1 到 3 小时,打包第一个 Linux 服务器大约需要 1 小时。后续构建仅需几分钟。
通过您的代理操作:
“加载 edgegap-unreal skill 并按照从引擎源码构建的流程进行操作:构建引擎,打包 Linux 服务器,使用该 skill 针对 linux/amd64 的 Dockerfile 将其容器化,使用新标签推送到我的 Edgegap Container Registry,然后创建应用程序及应用程序版本,端口设置为 7777 UDP,命名为 gameport。”
代理会要求您自行运行 docker login registry.edgegap.com,并使用来自容器注册表(Container Registry)页面的用户名和令牌,从而避免这些凭据出现在对话中。请确保应用程序版本已设置注册表凭据:如果没有凭据,部署将会失败并提示“Unable to pull image from registry”。
每次构建请务必使用新的镜像标签,切勿使用 latest。
以下是我们使用 Lyra 针对 Unreal Engine 的 Edgegap Docker Extension 视频教程:
5. 部署测试服务器并连接
在添加配对功能之前,请手动启动一个服务器,以验证镜像、端口以及网络代码是否正常工作。以下任一方式均可:
通过 Docker 扩展:在 Edgegap Application Version 下,选择您刚刚创建的版本,然后选择 Deploy to Cloud。
通过控制面板:在 Edgegap 控制面板中打开您的应用程序版本,选择 Deploy,挑选一个离您较近的地点并进行部署。
通过您的代理:“在离我较近的地点部署我的最新 Edgegap 版本,等待部署就绪,向我展示日志,并提供地址和外部端口。”
当部署状态显示为 Ready 时,复制其 Host 和 External Port。在 Unreal 中运行客户端,并在控制台中输入 open <host>:<external port>。外部端口在每次部署时都会发生变化,因此请每次都重新查看。服务器在状态变为 Ready 后,可能需要最多一分钟的时间才能开始接受玩家接入。
完成后停止部署(可通过扩展、控制面板或您的代理)。免费套餐一次只能运行一个部署,遗忘的测试服务器会阻止配对的进行。
在此步骤中,您自行选择了位置并分发了地址。若要自动将玩家编组并在离他们较近的位置启动服务器,请添加配对系统。
6. 添加匹配功能
Edgegap 的撮合系统(matchmaker)是一项托管服务:玩家发送票证,系统根据您的规则(比赛规模、队伍、延迟、技术水平、模式)将他们分组,在他们附近部署您的服务器,并将地址返回给每个客户端。
使用您的智能体:
“根据 edgegap-unreal 延迟模板为我的应用版本生成 Edgegap matchmaker 配置:一支 2 到 4 人的队伍、一条延迟规则,并允许单独一名玩家在 10 秒后获取服务器,以便我自己进行测试。将其保存为 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 开启 EdgegapMatchmakerSubsystem,配置文件设为 casual,开启信标延迟(beacon latencies)。请先检查 URL 和令牌的响应。”
撮合代码仅在客户端运行,因此步骤 4 中的服务器镜像不会改变。玩家会看到一个 Find Match 浮层,蓝图也可以从子系统中调用 Find Match、Cancel Match 和 On Status Changed 以用于您自己的菜单。在公开代码仓库中,请将真实的 URL 和令牌保存在 Config/UserGame.ini 中,Git 会忽略该文件,而 Unreal 仍会将其打包。
手动操作:请遵循撮合文档,或参阅對局配對 for Unreal Engine。
当您发布新的服务器版本时,请在 matchmaker 配置中更新 application.version(停止、编辑、启动),否则比赛将继续部署旧版本。
7. 与两名玩家一起测试完整循环
请确保没有正在运行的测试部署。
并排运行两个客户端,例如
UnrealEditor.exe <your .uproject> -game -windowed -ResX=960 -ResY=540 -WinX=0 -log,第二个客户端加上-WinX=970。请先单独启动一个客户端:首次启动需要编译着色器,耗时几分钟。在 10 秒内在两个客户端中均选择查找比赛(Find Match)。状态会从正在搜索变为找到比赛,随后两个客户端将加入同一个服务器。
关闭两个客户端。大约一分钟后,服务器将停止其自身的部署,并从控制面板中消失。这种自动停止机制可以在无人玩游戏时将您的账单保持为零。
在免费套餐中,撮合系统会在每次启动 3 小时后停止(可从控制面板重新启动),部署会在 60 分钟后停止,且一次只能运行一个部署。
准备上线?让您的智能体运行 edgegap-launch 技能的检查清单:版本推出、重启策略、最长持续时间、成本控制。使用 Epic Online Services 进行大厅管理?请参阅 Epic Online Services。
遇到问题?让您的智能体加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专用服务器上托管 Unreal Engine 游戏(无论是否包含匹配功能)的常见问题。
我需要从源码编译 Unreal Engine 才能用于专用服务器吗?
使用 Edgegap 的 Docker 扩展则无需如此。它可以直接基于通过启动程序安装的 Unreal 在 Docker 内部构建您的 Linux 服务器,从而节省数小时的引擎编译时间。若没有它,Unreal 则需要从源码构建的引擎来构建 Server 目标。
我可以在 Windows 或 macOS 上构建 Linux 专用服务器吗?
是的。Edgegap 的 Docker 扩展程序可在 Windows、macOS 或 Linux 上的 Docker 内部构建 Linux 服务器,无需安装 Linux 交叉编译工具链。
Unreal 专属服务器在 Edgegap 上使用哪个端口?
Unreal 的 IpNetDriver 默认通过 UDP 在 7777 端口进行监听。请在您的 Edgegap 应用程序版本上设置相同的端口和协议,并将其命名为 gameport。玩家将连接到 Edgegap 为每次部署分配的外部端口。
我可以在纯蓝图的 Unreal 项目中添加匹配功能吗?
是的。添加一个空的 C++ 类以创建一个 C++ 模块,然后添加 Edgegap 的匹配子系统。您的蓝图(Blueprints)调用 Find Match,并从该子系统监听其状态。
托管一个 Unreal Engine 游戏服务器需要多少费用?
测试是免费的,无需信用卡。之后,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 自动化游戏服务器编排如何带来无缝的多人游戏体验。









