本指南向您展示如何保留 PlayFab 用于玩家账户和匹配队列,并为每场比赛启动一个 Edgegap 专用游戏服务器:当 PlayFab 找到比赛时,Cloud Script 会在玩家附近部署一台服务器,该服务器会将其地址分发给每位玩家。
一旦您的游戏服务器容器化,Edgegap 只需通过简单的 API 调用即可将其(按需)部署到全球 615+ 个边缘云节点,并且完全按使用量计费:无需租用、预配整个服务器,也无需在比赛间隔期间保持其运行。对于需要预留容量的持久服务器,Edgegap 提供了 Private Fleets。
PlayFab 负责玩家分组;Edgegap 负责托管比赛。启动服务器的调用在 PlayFab 端的 PlayFab Cloud Script 中运行,因为这需要您的 Edgegap API 令牌,而该令牌绝不能放入游戏客户端中。
本指南涵盖:
准备一个可用的 Edgegap 应用版本和一个 PlayFab Title
将您的编码智能体连接到 Edgegap(可选)
设置 PlayFab 匹配队列
添加用于部署服务器的 Cloud Script
将服务器地址分发给玩家
从游戏客户端进行玩家匹配
使用两名玩家进行测试
您可以通过两种方式进行操作,也可以结合使用:
使用编码智能体。 将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器 及其 智能体技能 (agent skills)。智能体负责编写 Cloud Script 以及客户端和服务端代码,并检查您的应用版本和部署情况。您只需管理 PlayFab 和 Edgegap 控制台、密钥并进行游玩测试。
手动操作。 以下所有步骤在没有智能体的情况下也同样适用。
1. 开始之前
一个免费的 Edgegap 账户。请验证您的电子邮件。测试无需信用卡。
一个运行正常的 Edgegap 应用版本的游戏服务器:即您已成功部署并至少加入过一次的服务器。PlayFab 会为每场比赛启动该版本,因此需要一个功能完备的容器化游戏服务器来实现端到端运行。如果您目前还没有,请参考我们的指南:Unity Engine、Unreal Engine、Godot Engine 或 Custom Engine。记下其应用程序名称、版本名称和端口名称(通常为
gameport)。一个包含對局配對功能的 PlayFab Title,以及对其 Game Manager 的访问权限(Title ID 和 Title Secret Key)。
一个 Edgegap API 令牌,可从 控制面板 → 用户设置 → 令牌 获取。它仅用于您的 Cloud Script 配置。该令牌适用于整个组织,因此切勿将其放入您的游戏客户端、游戏服务器、项目文件或聊天中。
可选:Edgegap 的 PlayFab 示例,这是一个包含以下客户端、服务器和 Cloud Script 代码的 Unity 项目(2021.3,FishNet 3)。
2. 将您的代码代理连接到 Edgegap
如果您全程手动操作,请跳过此步骤。
Edgegap MCP 服务器允许您的智能体检查应用和版本、部署测试服务器并读取您账户上的日志。edgegap-deployments-api 智能体技能为其提供了用于启动 Edgegap 服务器的后端经过测试的规则,包括 PlayFab Cloud Script。
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. 设置 PlayFab 匹配队列
在 PlayFab 的 Game Manager 中,打开 Multiplayer → 對局配對并创建一个队列,或者复用您现有的队列。对于初次测试,一条匹配任意两名玩家的规则就足够了。
在 Players 下创建两个测试玩家(例如使用自定义 ID),以便两个客户端可以登录。
您的比赛规则保留在 PlayFab 中。只有在 PlayFab 找到比赛后,Edgegap 才会启动服务器。
4. 添加用于部署服务器的 Cloud Script
函数。在 Automation 中,部署一个带有处理程序的 Cloud Script 修订版本,例如 StartEdgegapDeployment,该处理程序将:
从 match-found 事件中读取
MatchId和QueueName。使用
multiplayer.GetMatch获取比赛成员,并使用server.GetPlayerProfile(ShowLocations: true) 获取每位玩家的位置。调用
POST https://api.edgegap.com/v2/deployments,请求头为Authorization: token <your API token>,请求体包含您的application和version、作为users的玩家信息(包含纬度和经度的"user_type": "geo_coordinates")、带有比赛 ID 的标签,以及作为environment_variables的比赛详情:PLAYFAB_MATCH_ID和PLAYFAB_MATCH_PLAYERS_ID_LIST(以逗号分隔的玩家 ID 列表)。
Edgegap 会为整个组挑选延迟最低的最佳位置,并返回带有 request_id 的 202 响应。将其与比赛 ID 一起记录。
规则。在 Automation → Rules 中添加一条规则:事件类型为 playfab.matchmaking.match_found,操作为 Execute Entity Cloud Script,函数为 StartEdgegapDeployment。
使用您的智能体:
“加载 edgegap-deployments-api 技能,并为 playfab.matchmaking.match_found 事件编写一个 PlayFab Cloud Script 处理程序 StartEdgegapDeployment:获取比赛成员及其位置,使用 geo_coordinates 通过 POST /v2/deployments 部署我的 Edgegap 应用版本,为其标记比赛 ID,将比赛 ID 和玩家 ID 作为环境变量传递,并记录 request_id。”
切勿泄露令牌:Cloud Script 在 PlayFab 的服务器上运行,而不是在游戏中,因此令牌永远不会落入玩家手中。请将其存储在游戏的内部配置中,而不是脚本源代码中,更不可存在于客户端代码中。
5. 将服务器地址提供给玩家
服务器通过 PlayFab 玩家数据(Player Data)告知每位玩家应连接到何处:
启动时,服务器会读取
ARBITRIUM_PUBLIC_IP和ARBITRIUM_PORT_GAMEPORT_EXTERNAL(由 Edgegap 注入)以及PLAYFAB_MATCH_PLAYERS_ID_LIST。对于每位玩家,它会使用 PlayFab 的
Server/UpdateUserData将ip:port写入该玩家的 Player Data 中,并将比赛 ID 用作键(key)。比赛结束时,服务器会停止其自身的部署:它携带
ARBITRIUM_DELETE_TOKEN调用 Edgegap 为每次部署提供的ARBITRIUM_DELETE_URL。
Server/UpdateUserData 需要你的 PlayFab Title 密钥(Secret Key)。如果你的服务器持有该密钥,请在应用版本上将其作为隐藏环境变量传递(is_hidden: true),切勿放入镜像中,也切勿记录到日志里。对于正式发布版本,更受限、更安全的选择是让服务器调用 PlayFab 函数来代其写入地址。
6. 从游戏客户端匹配玩家
客户端将玩家登录到 PlayFab(示例使用
LoginWithCustomID;请使用您游戏的登录方式)。它会在您的队列中创建一个撮合票证(
CreateMatchmakingTicket,例如将GiveUpAfterSeconds设为 90),并通过GetMatchmakingTicket对其进行检查,直到状态变为Matched。然后,它每隔几秒读取一次其玩家数据(
GetUserData)中的比赛 ID 密钥,直到服务器写入其地址。它会连接到该 IP 和端口。服务器在启动后可能需要长达一分钟的时间才能开始接受玩家,因此请重试连接一段时间。
连接成功后,它会从其玩家数据中删除该密钥(带有
KeysToRemove的UpdateUserData),这样旧地址就不会堆积。
7. 双人测试
确保没有测试部署仍在运行:免费层每次只能运行一个部署。
以两个测试玩家的身份登录两个客户端,并在两个客户端上都开始匹配。
当 PlayFab 将他们匹配在一起时,规则将运行您的 Cloud Script。在 Edgegap 控制台中,将出现一个标记有比赛 ID 的部署,位置在您附近。
两个客户端都会从其玩家数据中读取地址,并连接到同一台服务器。
结束比赛:服务器会自动停止并从控制台中消失。
没有部署任何内容?首先检查 PlayFab 中的 Cloud Script 日志。部署已启动但无人连接?这是服务器的问题:手动部署您的版本并直接加入。
准备上线?让您的代理运行 edgegap-launch 技能的检查清单:版本推出、重启策略、最大持续时间、成本控制。更倾向于免脚本的托管式配对系统?请参阅 Edgegap 的配对系统 (matchmaker)。
遇到问题?让您的代理加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。
常见问题
关于在 Edgegap 专属服务器上托管 PlayFab 对局的常见问题。
我可以在 Edgegap 服务器上使用 PlayFab 對局配對 吗?
是的。保留您的 PlayFab 队列和规则。当 PlayFab 找到匹配项时,由匹配成功事件触发的 Cloud Script 会在玩家附近部署一个 Edgegap 服务器,并且该服务器会将其地址写入每个玩家的 Player Data 中。
我还需要 PlayFab Multiplayer Servers 吗?
不。Edgegap 托管专用服务器。PlayFab 保留您的账户、玩家数据和匹配,并且 Edgegap 仅在找到匹配时才启动服务器,在其运行期间按分钟计费。
Edgegap 是如何为 PlayFab 对局选择服务器位置的?
来自每位玩家的位置信息,由 Cloud Script 从其 PlayFab 个人资料中读取并作为坐标发送。Edgegap 会为整个群体选择 ping 值最佳的位置。
我的 Edgegap API 令牌应该放在 PlayFab 的哪里?
仅存在于在 PlayFab 服务器上运行的 Cloud Script 配置中。游戏客户端和游戏服务器绝不会持有它。
玩家如何从 PlayFab 获取服务器地址?
游戏服务器将其 IP 和端口写入每位玩家比赛 ID 下的 PlayFab 玩家数据中。每个客户端读取该信息,进行连接,然后删除该条目。

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









