了解Edgegap的工作原理

了解Edgegap的工作原理

/

Unity 對局配對 SDK

Unity 對局配對 SDK

部署至 Edgegap

已发布

已发布

已发布

最近一次准确性审核

最近一次准确性审核

最近一次准确性审核

Unity 對局配對 SDK:如何使用 Edgegap 为您的 Unity 多人游戏添加對局配對

Unity 對局配對 SDK:如何使用 Edgegap 为您的 Unity 多人游戏添加對局配對

本指南向您展示如何为已在 Edgegap 专用游戏服务器上运行的 Unity 多人游戏添加对局配对:玩家选择寻找比赛,根据您的规则进行分组,并连接到 Edgegap 在他们附近启动的服务器。

一旦您的游戏服务器容器化,Edgegap 只需通过一个简单的 API 调用即可将其按需部署到全球 615+ 个边缘云位置,并完全按使用量计费:无需租用、配置整台服务器,也无需在比赛间隔期间保持其运行。对于需要预留容量的持久服务器,Edgegap 提供了Private Fleets。Edgegap 的對局配对建立在此基础之上,并且是可选的。

Edgegap 的配对器是一项托管服务:无需编写或运行后端。它适用于任何网络代码。只有将玩家连接到所分配服务器的那行代码取决于您的网络代码。

本指南涵盖:

  1. 为您的游戏准备一个正常工作的 Edgegap 应用版本

  2. 将您的编码智能体连接到 Edgegap(可选)

  3. 安装 Edgegap 的 Unity SDK

  4. 将配对客户端添加到您的游戏中

  5. 创建您的配对器

  6. 选择您的配对规则

  7. 使用两名玩家进行测试

您可以通过两种方式进行操作,也可以结合使用:

  • 使用编码智能体。将 Claude Code、Cursor 或其他智能体连接到 Edgegap MCP 服务器及其智能体技能。智能体会添加配对客户端和适用于您网络代码的代码,生成配对器配置并检查结果。您只需在 Unity 和 Edgegap 仪表板中进行点击操作,并进行游玩测试。

  • 手动操作。从 SDK 现成的示例开始,以下每个步骤也可以在没有智能体的情况下完成。

在此,我们使用 Mirror 的 Tanks 示例。任何 Unity 网络代码的运作方式都是相同的。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

无需信用卡。免费版包含部署真实游戏服务器所需的资源。

1. 开始之前

  • 一个免费的 Edgegap 账户。请验证您的电子邮件。测试无需信用卡。

  • 游戏服务器的一个可用的 Edgegap 应用版本:即您至少部署并加入过一次的服务器。對局配對会在每场比赛中部署所请求的版本,因此它需要一个功能完备的容器化游戏服务器来实现端到端运行。如果您还没有,请参阅我们的指南:

  • 您的服务器会在比赛结束时自动停止,因此您只需在玩家游玩时付费。以上指南均涵盖了此内容。

  • 对于代理路径:从 Dashboard → User Settings → Tokens 获取 Edgegap API 令牌。该令牌适用于整个组织,因此请像对待密码一样妥善保管:切勿将其放入您的项目、游戏客户端或聊天中。

Git:Unity 需要在您的 PATH 中配置 Git 客户端(2.14.0 或更高版本),以便从 Git URL 安装软件包,例如 Edgegap SDK。macOS 通常已自带该工具(Xcode Command Line Tools);在 Windows 上,请安装 Git。

2. 将您的代码代理连接到 Edgegap

如果您全部采用手动操作,请跳过此步骤。

Edgegap MCP 服务器允许您的智能体在您的账户上创建应用程序和版本、部署服务器、读取日志并生成撮合系统配置。智能体技能为其提供了经过测试的 Unity 撮合客户端、您的网络代码以及已知隐患提示。

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 的 Unity SDK

以下是我们关于 Edgegap 适用于 Unity 的對局配對 SDK 的视频教程,使用 Mirror 的 Tanks 示例,从安装演示到两名玩家配对成功:

Edgegap 的 Unity SDK 是匹配功能包。它与构建和部署服务器的插件是分开的。

使用您的智能体:

“加载 edgegap-unity skill 并在该项目中安装 Edgegap Unity SDK,版本为 3.5.5 或更高版本。”

使用 FishNet 还是 PurrNet?在此步骤和下一步中,请让您的智能体改为加载 edgegap-fishnet 或 edgegap-purrnet。

手动操作:

  1. 在 Unity 中,选择 Window → Package Management → Package Manager,点击 +,然后选择 Add package from git URL,粘贴 https://github.com/edgegap/edgegap-unity-sdk.git 并点击 Add。

  2. 在 SDK 的 Samples 选项卡中,导入 Matchmaking - Simple Example。您只需要这一个。

SDK 会测量每位玩家到 Edgegap 信标的 ping 值,创建匹配票证,并等待分配服务器。它特意留下了一个空白:将玩家连接到该服务器的代码行,因为这取决于您的网络代码(netcode)。步骤 4 将填补这一空白。

4. 将匹配客户端添加到您的游戏中

使用您的智能体:

“将 edgegap-unity 撮合客户端和服务器生命周期脚本添加到我的网络场景中,为我的 netcode 填入 netcode 适配器,并将我的 Play 按钮关联到 FindMatch。撮合器 URL 和令牌暂时留空。”

该智能体会添加一个可立即使用的 Find Match 面板、针对仍在启动中的服务器的连接重试机制,以及在对局结束时停止对应服务器的代码。如果您的服务器镜像发生更改,它会重新构建镜像并创建新的应用版本。

手动操作,可通过适用于任何 AI 编码助手的两个提示词,或使用您自己的代码完成:

提示词 1,审查您的项目(只读):

“只读,不修改代码。我的 Unity 项目使用了一个 netcode 框架,我现在正在添加 Edgegap 撮合功能,该功能将在运行时为我的客户端提供服务器地址(FQDN)和外部端口。请查找并告诉我:1) 启动客户端连接到服务器的方法、所在文件和行号,以及触发它的条件;2) 在连接前设置服务器地址和端口的位置:确切的属性或字段名称、正在使用的 transport,以及文件和行号。不要修改任何内容。”

提示词 2,添加连接:

“在 Edgegap 示例 MatchmakingClientHandler.cs 中,找到票证状态为 HOST_ASSIGNED 时运行的代码块。该代码块目前仅记录分配信息。请将其替换为通过我的 netcode 连接到所分配服务器的代码:将分配的 FQDN 设置为网络地址,将 gameport 的外部端口转换为我的 transport 所期望的类型并设置在 transport 上,然后启动客户端。请使用上一步中查找到的内容。”

然后,在您的游戏场景中,选择 GameObject → Create Empty,将其命名为 對局配對,并添加 Matchmaking Client Handler 组件。暂时将 Base URL 和 Auth Token 留空:它们将在步骤 5 中提供。

使用 Mirror 时,连接会将 NetworkManager.singleton.networkAddress 设置为 FQDN,在活动 transport 上设置端口,并调用 StartClient()。其他 netcode 对这三项操作有各自的命名。

5. 创建您的撮合器

  1. 在控制面板中,打开 Matchmaker,选择创建 Matchmaker 并为其命名,例如 mygame-dev。

  2. 选择一个配置:

    • 最快方式:在配置列表中选择简单示例(包含内容):一支由两名玩家组成的队伍,按延迟分组。它会自动填入您最新的应用程序和版本:请检查它们是否为您所需的内容。

    • 使用您的智能体:“为我的应用版本生成 Edgegap 匹配器配置:一支包含 2 到 4 名玩家的队伍,并在 30 秒后允许单个玩家获取服务器,以便我可以单独测试。将其保存为 matchmaker-config.json。”然后上传该文件。

  3. 选择创建并启动。对于测试,出现服务器镜像未缓存的警告是没有问题的:选择继续。等待几分钟让匹配器启动,在其地址响应之前最多可能还需要 5 分钟。

  4. 当其状态为 ONLINE 时,将 API URL 和 Auth Token 复制到您的匹配组件中(Base URL 和 Auth Token),或者将它们提供给您的智能体。

Auth Token 仅授予对您的匹配器的访问权限,无法访问您账户上的其他任何内容,因此在游戏客户端中使用是安全的。在生产环境中,许多工作室会要求玩家先登录到自己的后端来创建票证,以便在匹配之前检查身份和封禁状态。

6. 选择您的匹配规则

使用您的第一个配置运行步骤 7 测试,然后根据您的游戏量身定制规则。每条规则根据一个要素对玩家进行分组:

  • 比赛规模:队伍数量以及每队的玩家数量。

  • 延迟:玩家 ping Edgegap 的信标,并与距离他们较近的玩家分组。然后 Edgegap 会在该群组附近启动服务器。

  • 技能、模式、地图或区域:数值范围或玩家必须共有的值。

  • 扩展规则:在等待一段时间后放宽规则,例如在 30 秒后接受更少的玩家,这样就不会有人无休止地等待。

需要记住的两条规则:

  • 除比赛规模外,每条规则都需要在每个玩家的票证中具有同名的匹配值。缺少或多余的值将被拒绝(HTTP 400)。在添加规则时通知您的代理,它会同时更新两端。

  • WebGL 游戏:浏览器无法 ping 信标,因此请省略延迟规则,并在 allowed_cors_origins 下列出托管您游戏的网站。请使用 SDK 3.5.5 或更高版本。

有关合作、竞技、社交和自定义大厅游戏以及回填(玩家加入正在进行的比赛)的现成配置,请参阅配对文档。更改正在运行的配对器配置会重新加载该配置并清除等待中的票证。发布新的服务器版本时,请更新 application.version(停止、编辑、启动),否则比赛将继续部署旧版本。

7. 双人测试

  1. 确保没有测试部署仍在运行:免费层每次只运行一个部署,遗留的部署会阻止撮合。

  2. 运行两个客户端:两个多人游戏播放模式(Multiplayer Play Mode)玩家,或者编辑器加一个构建版本。

  3. 在两者中都选择查找比赛(Find Match)。状态会从正在搜索变为找到比赛,然后两名玩家都会连接到同一个新服务器,无需任何人输入地址。

  4. 离开比赛。服务器会停止其自身的部署,并从控制面板中消失。

仅当您的配置允许单个玩家获取服务器时(步骤 5 中的 30 秒扩展),单人测试才有效。在免费层上,撮合系统会在每次启动 3 小时后停止:请从控制面板重新启动它,其 URL 和令牌保持不变。

后续步骤

后续步骤

准备上线?让您的智能体运行 edgegap-launch 技能的检查清单,并在发布前选择生产环境匹配系统。更倾向于玩家可浏览的大厅?请参阅 Server Browser for Unity。已经在用 Unity Gaming Services 匹配系统?请参阅 UGS Matchmaker。

遇到困难?让您的智能体加载 edgegap-troubleshoot,或在 Edgegap Discord 上向我们的团队和其他工作室咨询。

常见问题

关于将 Edgegap 匹配系统添加到 Unity 多人游戏中的常见问题。

在 Unity 中进行玩家匹配需要我自己的后端吗?

不。Edgegap 的配对工具是一项托管服务:您的游戏客户端使用配对工具的 Auth Token 创建票证,然后 Edgegap 会为每场比赛启动一台服务器。希望在配对前进行登录、封禁或使用自己技能数据的工作室,也可以改为从其后端创建票证。

Edgegap 匹配系统是否适用于 Mirror、Netcode for GameObjects 和 Fish-Networking?

是的。匹配器和 Unity SDK 并不依赖于您的网络代码(netcode)。变化的只有将玩家连接到所分配服务器地址和端口的代码,每个网络代码仅需几行即可。

在游戏客户端中,匹配系统的身份验证令牌(Auth Token)是否安全?

是的。它仅允许客户端在该撮合器上创建和读取撮合票据。与绝不能放入客户端的 Edgegap API 令牌不同,它不会提供访问您 Edgegap 账户的权限。

我可以在 Unity WebGL 游戏中添加玩家匹配功能吗?

是的,使用 Edgegap 的 Unity SDK 3.5.5 或更高版本即可。浏览器无法对延迟信标执行 Ping 操作,因此 WebGL 配置文件没有延迟规则,并且配对系统会将您游戏的网址列在允许的 CORS 来源下。

Edgegap 匹配服务的费用是多少?

测试是免费的,在共享撮合系统上进行,该系统每次启动后 3 小时停止。对于已上线的游戏,您可以选择生产撮合系统,并且游戏服务器仅在运行时按每 vCPU 每分钟计费。

客户

了解更多已接入 Edgegap 的客户案例

提供 31 个从其他平台迁移至 Edgegap 的工作室案例研究。

他们选择 Edgegap 的关键原因

了解 Edgegap 自动化游戏服务器编排如何带来无缝的多人游戏体验。

费用

定价

通过混合编排优化成本与性能

通过混合编排优化成本与性能

通过混合编排优化成本与性能

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

边缘云

按需

$0.00115

/ vCPU

/ 分钟

按分钟计费,仅按实际使用量收费

只有在玩家在线玩游戏时才需付费。0 个活动服务器 = $0

在全球 615 多个边缘云节点中按实例部署游戏服务器。零承诺。

只需添加信用卡。

专属物理机集群 (裸金属)

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

专属物理机集群 (裸金属)

预留容量

$0.0282

/ vCPU

/ 小时

按月计费,始终开启

每个主机每月 $280(12个月标准价),或按月支付每月 $350

通过无出站流量费用的专用机队托管,优化您游戏服务器的成本效益。

持久在线,24/7全天候可用,您的工作室专属。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

您的账单因费率和使用量而异;这可能会根据游戏类型、玩家人数等因素而有所不同。

使用我们的预估计算器模拟您的用量 ->

使用我们的预估计算器模拟您的用量 ->

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

Eggegap 的功能和价格:Edge Cloud 与 Private Fleets 的详细对比

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。

对比

免费试用

边缘云

自有车队

功能特色

分析与监控

账单警报

点击展开

还有 28 行

解锁

在帐户中添加信用卡后,即可解锁各项功能。