概述
匹配服务根据特定规则集将多个玩家匹配到一场对战中。主要流程包括搜索玩家和在专用服务器上进行对战放置。支持单人和多人匹配。借助 PGOS SDK,开发者可以创建、查询和取消匹配请求。
1. 关键概念
- Matchmaking Ruleset(匹配规则集): 描述匹配规则和相关数据的 JSON 对象。匹配服务确保匹配的玩家满足规则集中描述的约束条件。每个规则集可以关联多个匹配配置。
- Matchmaking Configuration(匹配配置): 匹配规则集描述了匹配引擎如何输出一场匹配,而匹配配置包含了多个与流程相关的参数,以及匹配将被放置在何处的关键信息,支持两种放置目标:Placer 和本地 Placer。
2. 架构图
2.1 服务架构
游戏客户端通过 PGOS 客户端 SDK 访问匹配服务,存在两种交互方式:
- 使用 PGOS SDK 调用匹配接口。
- 当匹配请求状态发生变化时,接收由匹配服务推送的匹配通知。 匹配服务支持从玩家管理中获取玩家数据。PGOS DS SDK 帮助专用服务器在战斗生命周期内维护相关的战斗会话。
2.2 匹配流程
匹配服务负责从匹配请求池中选择合适的请求组成对战,然后根据玩家延迟将对战分配到合适的 DS 上。具体来说,匹配请求的处理流程如下:
- 准备阶段:(可选)当创建多人匹配请求时,请求中的所有玩家需要在指定时间内主动决定是否加入或拒绝该请求。
搜索阶段:请求被放入匹配请求池中,等待匹配引擎将其选入一个拟定对战中。
- 接受阶段:(可选)当开启
接受
选项时,拟定对战中的每个玩家都需要在指定时间内主动接受参与对战。当开启自动继续
选项时,如果有任何玩家拒绝了对战提议,其他所有的匹配请求将返回到搜索阶段。请注意,每当匹配请求进入搜索阶段时,搜索超时时间都会重置。 - 放置阶段:匹配服务会为每个拟定对战寻找合适的 DS。
3. 集成步骤
匹配功能与 DS 托管和管理服务配合使用。请按照以下步骤将 PGOS 的匹配功能集成到您的游戏中:
- 设置匹配配置的步骤
- 编写规则集以定义团队和查找玩家进行匹配的条件
- 创建 DS Placer 来放置由匹配生成的战斗会话
- 创建匹配配置并填写必填字段
- 将匹配集成到游戏客户端
- 准备工作
- 发起匹配请求
- 跟踪匹配请求状态
- 确认多人匹配请求
- 连接到战斗
- 集成游戏服务器
- 初始化游戏服务器进程
- 报告游戏服务器进程健康状态
- 处理战斗会话放置事件