网易伏羲GDC分享:游戏中的智能匹配算法实践( 三 )


网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
以一个两阵营玩法(记为campA和campB)的匹配为例 , 玩家匹配可以看作是一个指派问题 。匹配模型对每个玩家i使用x_ij的决策变量 , 如果玩家i被分配到团队j , 则x_ij为1 , 否则为0 。
网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
我们将一种匹配结果表示为Ф_i , 那么匹配算法的目标就是找到使玩家总体验最大化的匹配结果Ф 。
那么如何找到这个最优匹配结果Ф呢?对于1v1竞技玩法 , 这个问题可以看作是在图中找到匹配(在图论中 , 无向图中的匹配 , 即独立边集是一组没有公共顶点的边) 。
此外 , 还有有很多研究和方案可以从图中找到各种不同的匹配 , 我们可以通过采用它们轻松地构建一个最优化的匹配系统 。
网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
而对于多v多玩法 , 组合的情况随着N和队列中等待玩家数的增长呈指数增长:
网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
那么此时我们可以考虑用一种启发式的算法 , 如先分房间再分队伍:
网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
或者利用强化学习框架学习挑选模型 , 对玩家进行综合排序和按匹配顺序输出:
网易伏羲GDC分享:游戏中的智能匹配算法实践
文章图片

文章图片
匹配服务的平台化建设
通常一个游戏中会涉及到多个匹配服务 , 而且各个接入我们匹配系统的游戏也希望能通过平台对匹配服务进行统一的运维和管理(以及资源利用的优化) , 因此我们采用微服务架构 , 模块功能解耦 , 搭建了通用的玩家匹配系统 , 提供适配多种玩法的、满足多优化目标情况下的最优玩家对阵组合策略 , 在兼顾游戏性、娱乐性的同时实现对战平衡 。
一个匹配服务的流程为:
下图为匹配系统功能展示:匹配算法负责准确分析玩家的游戏能力 , 保证游戏质量 , 控制恶意游戏行为 , 并在必要时分配机器人玩家 。此外 , 系统还提供综合分析和监控图表 , 供后期操作使用 。
【网易伏羲GDC分享:游戏中的智能匹配算法实践】我们在此也提供了基于匹配SaaS创建一个新的匹配服务的预估开发时长 , 以及系统每个组件的设置、更新间隔、训练迭代、测试和部署阶段的信息 。