游戏开发之多人匹配系统设计

匹配需求

玩家可在不同玩法中进行匹配,匹配可分为俩种,组队匹配和单人匹配;

  • 单人匹配:玩家直接点击匹配,即可进行匹配倒计时;
  • 组队匹配:玩家创建队伍后,点击匹配,组队至多有三人;

流程:玩家提交匹配后,数据加入匹配池后,进入匹配计时界面,匹配成功后进入战斗(可能会匹配机器人);

设计思想

  • 将提交匹配和匹配逻辑拆分;(避免阻塞玩家匹配计时界面,匹配逻辑本身是一个耗时的过程)
  • 将匹配逻辑拆分成接口,可自定义实现多种方式,依据不同的玩法,指定具体的匹配逻辑;
  • 将匹配核心逻辑的具体执行定时封装成RunnableTask发送给线程池,线程池负责执行任务;
  • 可针对不同玩法,允许指定匹配核心逻辑是单线程执行匹配或多线程执行。

设计框图

img

设计类图

img

  • MatchActor: 负责接收匹配任务,通过指定的匹配逻辑加入具体的匹配池
  • MatchThreadActor: 匹配线程池管理器
  • ICommonMatchLogic: 通用匹配逻辑接口
  • Multi3V3RandomMatchLogic: 3v3随机匹配玩法的匹配逻辑具体实现
  • MatchData: 根据提交的MatchTask包装的MatchData, 主要对MatchTask添加了状态
  • MatchDataMap: 依据玩法设定的一次成功匹配的MatchData集合
  • SuccessWaitRemoveQueue:成功匹配等待移除的队列

游戏开发之多人匹配系统设计
http://example.com/2023/10/26/游戏开发之多人匹配系统设计/
作者
Whlok
发布于
2023年10月26日
许可协议