
如何为派对多人游戏添加匹配功能
Edgegap的匹配系统是一个完全管理的、无限可定制的匹配系统,能够在全球范围内最佳地分组玩家——在开发您的派对多人游戏期间使用此系统是免费的。
它也是我们所知的唯一具有基于延迟的匹配规则的匹配系统,为您的游戏提供理想的在线多人体验,无论使用何种引擎(Unity、Unreal等)或游戏服务(EOS、UGS、PlayFab、Heroic Labs Nakama、Braincloud等)。
由于我们的匹配系统是基于参数的,因此无需编写代码。因此,集成非常简单,如果需要,我们的入门指南会在每一步指导您。
当您的游戏上线时,由于我们的匹配系统是完全管理的,您无需处理基础设施、错误、停机、可扩展性或数据库管理。我们为您处理所有这些事情。将您的DevOps工作量减少到几乎为零。
如何将对局配对集成到您的派对多人游戏中
-> 此文章基于 對局配對文档。如果您遇到问题或差异,请确保参阅 原始指南,因为它们更经常更新。
以下示例将帮助您测试核心對局配對玩家流程,具体包括:
有五个步骤将我们的配对集成到您的游戏中:
第一步是创建账户并使用我们的派对游戏示例。Voilà,您(技术上)已经完成了一半!您只需在游戏中集成配对器(见步骤5)。
现在,您不应盲目跟随在互联网上找到的JSON示例,因此强烈建议将上述规则调整为您的回合制游戏。步骤2(“探索配置”)是我们的“如何阅读”教程,其中介绍了每个對局配對规则功能的职责(“探索配置”)。
步骤3(“审查实例详细信息”)涵盖了您的个人和具体配对,以确保它已部署并适合您的游戏设计。
步骤4,如其名称所示(“4. 测试票API”),主要是关于测试您的对局配对请求能否被配对者接收,称为玩家票。
步骤5(“在您的游戏中集成对局配对”)重点介绍如何在您的引擎项目中集成配对。
如果您遇到疑难问题,我们的深层 学习中心 提供了更多疑难解答提示。
1. 设置免费层
注册您的免费Edgegap账户,并导航到 对局配对仪表板页面。
从那里开始,首先点击 创建对局配对 ,然后输入:
为您的配对器命名——仅供您自己参考,例如
quickstart-dev,然后,将以下简单示例作为JSON配置上传到您的派对游戏中:
(温馨提醒请确保更改应用程序名称和版本,以匹配您的 应用程序和版本!)
如果没有出现验证错误,请点击 创建并启动 并等待过程完成。这将导致新的免费集群启动,带有您的简单示例配对。
您现在可以继续进行下一步。
2. 探索配置
独特的多人派对游戏规则
专为派对游戏,您可以定义多个 對局配對档案 ,用于特定游戏模式的规则和设置:
让玩家提供他们的地图偏好并选择适合所有人的地图,
让玩家选择特定的游戏难度以适应每个人的技能水平,
限制玩家级别的差异,以将玩家与相似游戏进度的玩家匹配,
以队伍加入 为预组的大厅或填满团队而不超出团队规模,
允许更高的延迟,更快匹配,但偏向于更优细的玩家偏好,
使用不同的 🏷️ 应用版本 在允许更多玩家时分配更多的CPU或内存。
从理想条件开始, 扩展限制 以确保快速匹配:
随时间推移放宽延迟限制以找到更多玩家,
慢慢减少团队规模以减少玩家需求,从而更快开始游戏,
可选地,您可以让服务器用AI队友填补空缺位置,
慢慢增加允许的玩家级别差异以寻找更多玩家,
如果找不到队友,单独启动游戏并使用 后备 在以后添加玩家。
语义化版本控制
随着我们发布对局配对的更新,每个新版本使用 语义化版本控制 通过解释格式 major.minor.patch来清晰地传达变化的影响:
主版本包括重大改变并需进行集成审查,次版本包括相当大的向后兼容改进,修补版本包括错误修正和小改进。
有些 部署可能会导致错误。我们会尝试通过在没有客户确认的情况下最多重新尝试部署max_deployment_retry_count次自动解决此问题。
为了确保意外客户端崩溃或遗弃的票不会拖延并占用您的配对资源,票将在 票过期期间被取消,导致其状态更改为 已取消,然后在 票删除期间后永久删除。
我们的对局配对逻辑的核心在于 對局配對档案 中配置。每个档案都是一个完全独立的对局队列,指向 应用版本 具有预定义的CPU和内存(RAM)资源需求。
對局配對规则 在初始规则集中定义,如果玩家要被组成一组,则必须满足这些规则,每个规则由三个属性定义:
选的名字,例如 -
匹配大小,规则类型,也称为操作符,例如 -
玩家数,最后是操作员属性,例如
团队数量或团队规模。
玩家数量规则
这是一个特别的规则,用于定义需要匹配多少玩家来启动分配:
团队数量指团队数量,1个团队可以用于合作或自由对战模式,团队规模指 每个团队的玩家数量。
我们的简单示例展示了一个有2名玩家的合作游戏。
请注意,“玩家数量”规则在您的初始配置规则中是必要的并且只能定义一次。
延迟规则
使用此规则为所有玩家提供可能最低的延迟。一旦客户端测量并提交他们的对每个可用信标的往返时间(ping),Gen2将仅考虑在特定范围的 差异 ping值中的匹配,以便于 Ping信标。这提供了一个将您的玩家分裂成不同地区的“软”解决方案,尤其是对于人口较少的地区,提高了匹配速度。使用 最大延迟来防止与距离很远的玩家匹配。
您现在可以继续进行下一步。
我们的示例 信标 规则在 "差异": 50, "最大延迟": 200 的情况下:
Alice和Bob会匹配,因为北京被舍弃了(>200),其余的在 | A-B | < 50 以内:
Alice {蒙特利尔: 12.3, 纽瓦克: 45.6, 达拉斯: 59.9, 北京: 264.4}; 和
Bob {蒙特利尔: 27.3, 纽瓦克: 32.4, 达拉斯: 23.1, 北京: 252.2}。
Charlie和Dave不会匹配,因为 Dallas 信标的 | C-D | > 50:
Alice {蒙特利尔: 5.7 纽瓦克: 44.2, 达拉斯: 59.5, 北京: 263.2}; 和
Bob {蒙特利尔: 57.8, 纽瓦克: 32.0, 达拉斯: 24.2, 北京: 272.3}。
请注意,“延迟规则”在您的初始配置规则中只能定义一次。
3. 审查实例详情
在初始化后在我们的仪表板上审查新配对器的详细信息:

状态 表示服务健康度,可以是在线、离线或错误。
标识符 帮助 Edgegap 员工在您需要故障排除帮助时快速找到您的配对器。
启动时间 可用于追踪最后更新时间。
大小 对应我们的一种 定价层。
API URL 将被游戏客户端和游戏服务器用于与Gen2通信。
Swagger URL 是我们提供用于探索API架构的方便的openAPI规范GUI。
授权令牌 是游戏客户端和游戏服务器用于身份验证的唯一秘密令牌。
要使用API测试您的新配对器,您将需要 Swagger URL、API URL 和授权令牌。
您现在可以继续进行下一步。
4. 测试票API
首先,打开您的 Swagger URL 以在swagger GUI中查看您的openAPI架构
点击“Matchmaker”标题下的 /...swagger.json URL 以打开原始的JSON架构:

将此页面保存为驱动器上的文件(CTRL/CMD+S)。
打开您的 Postman应用 并登录您的免费账户。
从上一步导入您的 swagger.json 文件:
保持 Postman 集合 选中,
选择 查看导入设置 并将设置 参数生成 更改为 示例。
确认导入,这将在左侧的集合列表中,生成一个新的标题为对局配对的合集。

查看更多操作,打开选项卡 授权 并选择:
授权类型 - API 密钥,
密钥 - “授权”
值 - 在此处插入您的 AuthToken 值,
添加到 - 标头。
按下(CTRL/CMD+S)或保存图标来保存更改。在您的Postman选项卡中的橙色点应消失。
在您的对局配对集合中,选择 tickets 和 创建对局配对票,打开一个新选项卡。
选择选项卡 正文 以预览您的 玩家票请求:
注意 player_ip 设置为 null - 这将导致自动添加到请求中的IP地址(请参见 服务器到服务器集成以了解替代方案),
profile指的是您的 对局配对档案,属性包括为您的配对规则设置的值,在这种情况下为延迟规则,规则
玩家数是唯一不需要在玩家票中任何属性的规则。
注意:确保参考样本的 Swagger的导入配置。
点击 发送 并查看对您的玩家票请求的响应:
id是您的唯一对局配对票ID,保存此信息以便稍后查看您的票,profile确认对局配对档案的选择,group_id是分配给每张票的唯一组ID,单个玩家表示为一个1人组,参见 组队加入 以与您的朋友或大厅进行配对,
player_ip是玩家的已解析公共IP地址,无论使用何种识别方法,assignment设置为null,表示票尚未匹配或分配服务器,created_at提供有关何时为游戏UI创建的玩家票的信息,状态指示票的当前状态,所有票从搜寻中开始(请参见 对局配对过程 以了解详细信息)。
通过再次按下 发送 创建第二张票,以便我们的两个玩家匹配并启动服务器。
在您的对局配对集合中选择 {ticketId} 和 阅读对局配对票。
输入上一步的响应中的票ID并点击 发送。

查看您的玩家票的更新分配:
状态首先更改为
已找到匹配,同时将assignment设置为null,以表示玩家已匹配并正在分配服务器,

再次点击 发送来检查您的票,并查看您的玩家票的更新分配:
状态更改为
已分配主机,assignment包含分配服务器的详细信息。
注意每个部署都用所有票ID和档案标记以增加可追踪性。

尝试从您的游戏客户端连接到分配的服务器。
一旦您验证能够顺利连接到您的部署并完成测试,停止您的部署以为下一个构建释放您的账户中的容量。
您现在可以继续进行下一步。
5. 在您的游戏中集成对局配对
Edgegap的对局配对集成:
在 游戏客户端 中,我们推荐在整个对局配对过程 中通过游戏内UI为玩家提供票状态更新,以获得最佳的玩家体验。参考:
Edgegap - Unity Gen2 对局配对 SDK,
导入简单示例 并根据您的需求进行定制,
Betide Studio - Unreal Engine Edgegap 集成套件,
下载示例项目 并根据您的需求进行定制。
在 游戏客户端 中,确保您能处理不可重试的错误:
HTTP 404 未找到- 票已被删除,HTTP 500 内部服务器错误- 临时服务中断。
在 游戏服务器 中,处理玩家偏好和初始服务器上下文。不需要API集成:
阅读 注入的环境变量(Gen2) 以检索初始玩家的对局配对数据。
阅读 注入的环境变量(应用版本) 以了解版本特定的参数、设置(玩家容量)和机密。
阅读 注入的环境变量(部署) 以了解部署信息,例如IP地址、位置或更多。
一旦玩家连接,游戏服务器和游戏客户端 启动加载场景以执行同步步骤(例如选择和加载地图/场景/关卡)。我们推荐完整的3D场景、类似大厅的社交UI或带进度条的加载屏幕,以显示初始化进度。
一旦 游戏客户端 完全加载,玩家会加载/旅行到主游戏场景。
可选择地,游戏服务器 可以创建和管理 后备 和玩家容量(添加或替换离开的玩家)。
没有玩家加入比赛,
所有玩家都已离开比赛,
比赛正确结束。
恭喜,您已完成Edgegap的对局配对的集成!如果您想了解更多,请在我们的学习中心中阅读所有内容。
书写者
Edgegap团队








