For the complete documentation index, see llms.txt. This page is also available as Markdown.

从 UGS 部署

如果你希望继续使用 Unity Matchmaker 并将服务器部署到 Edgegap,请参考本指南。

入门

本指南重点介绍将 Edgegap 服务器托管添加为托管提供商,前提是:

请参考 Unity 的 Matchmaking 文档 了解匹配相关主题。

请参见 从 Multiplay 迁移 用于比较并将 Multiplay 概念映射到 Edgegap 托管。

为服务器选择合适的位置,平均可将延迟降低最多 58%!

在本指南中,我们将介绍:

  • 构建和部署 EdgegapAllocator 用于你的 Matchmaker 的云脚本模块,

  • 获取玩家用于最佳服务器部署位置的公共 IP 地址,

  • 在 UGS 云脚本中实现 webhook 监听器并获取服务器分配信息。

Edgegap 分配器

首先, 下载托管提供商仓库 配合 EdgegapAllocator 源代码。

这是 我们的云脚本 用于启动新服务器,由 Unity matchmaker 在匹配组装完成后触发。这是一个获得 Unity 官方批准的集成。

所需密钥

首先,在 Unity Dashboard 下添加这些密钥: 管理 > 密钥:

  • EDGEGAP_API_TOKEN - 你的 Edgegap API 令牌。

Edgegap Dashboard.

所需代码更改

编辑 Project/EdgegapAllocator.cs 并更新这些常量:

替换为你在 应用列表.

替换为你想使用的 Edgegap 应用版本名称。

替换为你的 Edgegap 应用版本中将供玩家连接使用的端口名称。

部署该模块

请按照官方 Unity 指南,使用 CLI 或 Editor 部署你自定义的模块。

获取玩家 IP

为了按需为每场比赛提供最佳服务器位置,Edgegap 要求你在发起部署时提供玩家 IP 地址。虽然 Unity 不提供此功能,但你可以使用我们的 C# 代码片段,在游戏客户端中借助免费服务实现此功能 ipify:

预计每位玩家都通过其票据中的自定义数据提供其公共 IP 地址:

接收分配

可以使用标准的 Unity matchmaking 方法检索分配信息。

我们的示例将使用以下方式为你处理分配: Status API,限流为每秒 20 次请求.

这对大多数游戏已经足够。如果你预计并发在线人数超过 50,000,建议考虑其他方法。

替代分配方式

对于大规模全球发布,可使用一种更具扩展性的替代方案: Webhooks

一旦匹配完成,并且你的云脚本请求了新的部署,返回结果中还不会包含连接详情。相反,你会收到一种回执——部署 ID。

你的分配器函数需要将此部署 ID 与匹配到的玩家 ID 一起存储在 UGS 游戏数据中,这样你就可以稍后查找玩家并提供连接详情。

现在,你需要再创建一个云脚本函数 AssignmentProcessor ,并提供一个公开 URL。该 URL 必须作为 webhook_on_ready .

包含在你的 Allocator 部署请求中。一旦 Edgegap 部署了你的游戏服务器,它就会向你的新云脚本发送一个 webhook HTTP 事件,其中包含所有连接详情,例如 FQDN(URL)和供客户端连接的外部端口。你的 AssignmentProcessor 将需要查找部署 ID,并将连接详情与之一起存储。

当 FQDN 和外部端口被检索到后,你的游戏客户端必须轮询这些游戏数据并立即尝试连接。

最后更新于

这有帮助吗?