浅析竞技游戏匹配机制-ELO算法

注:本文部分内容源自一位论坛大神,但具体的来源很抱歉笔者已经忘记,如侵即删。


0 前言

近年来,游戏行业飞速发展,大量不同类型的游戏涌入各个平台映入大众眼帘,而对于竞技类游戏而言,其游戏平衡的关键如何使博弈的双方玩家游戏水平接近,势均力敌的对手更能给予玩家紧张刺激的游戏快感。

传统的排位算法有几种,如 ELO 算法、ATP 排名等等,目前传统的排位算法为国际象棋中的排位算法-国际等积分系统(ELO-rate-system), 即 ELO 算法,该名字命名于创作者埃洛教授自身。即使已经过去多年,ELO 算法还是作为基本的思想,广泛应用在了不同种类的竞技游戏中,如MOBA 游戏《英雄联盟》、《DOTA2》等等。除此之外,许多体育竞技项目也依旧基于该算法进行排位。

1 一般胜率预测算法

对于一场竞技比赛,参赛选手分别为甲与乙,作下列假设:
1.两名选手表现实力有所波动,服从一定分布,设为𝑥与𝑦。
2.两名选手的表现实力相互独立。
3.𝑥与𝑦对应的密度函数为𝑔(𝑥)与ℎ(𝑦),密度函数为𝐺(𝑥)与𝐻(𝑦)。

根据上述假设,可以得到胜率概率计算公式𝑃{𝑥 > 𝑦},即:
在这里插入图片描述
同理有
在这里插入图片描述
以上是一般的胜率预测算法,通常情况下直接求解比较困难,因为比赛选手的表现实力所服从的分布需要大量数据支撑,为了简化计算,可以做出一些相关的特殊假设并加以实验。

2 添加特殊假设后的胜率预测算法

对一般的胜率算法,可以在原有基础上新增如下假设,化简运算:
1.比赛双方甲与乙的表现实力均服从同一分布𝐷,且只由期望𝜇与方差𝜎决定。
2.设分布函数为𝐹(𝑡; 𝜇, 𝜎),密度函数为𝑓(𝑡; 𝜇, 𝜎),且密度函数关于𝑡 = 𝜇对称。
3.设密度函数满足

在这里插入图片描述
则分布函数满足
在这里插入图片描述
通过新增的假设,可再次得到胜率计算公式如下
在这里插入图片描述
通过相关线性变换以及旋转和边际分布的意义,可以化简为在这里插入图片描述

3 基于不同分布的胜率预测算法

由2所得的最终胜率预测算法,可基于不同分布进行运算。根据数据统计,埃洛教授起初使用了正态分布作为比赛选手表现实力的分布。
此时可以得到基于正态分布的胜率预测算法如下:

在这里插入图片描述
然而,使用正态分布假设的效果并不佳,根据大量研究数据发现在国际象棋比赛中,Logistic 分布更贴近实际情况,因此使用了 Logistic 分布函数进行假设。
代入后化简得到基于 Logistic 分布的胜率预测算法如下:
在这里插入图片描述

4 最终的ELO算法

经过埃洛教授经验上的修改与简化,得到了最后的 ELO 算法
假设某场景中,玩家 A与玩家 B 进行一场竞技比赛,玩家 A 当前的排位分(即量化的实力水平)为𝑅𝐴,玩家 B 当前的排位分为𝑅𝐵,则玩家 A 的胜率预估由下式可得,玩家 B同理可得不做描述。
在这里插入图片描述
其中,𝑇为双方的分值间隔,对于相同的玩家水平差距,T 越大,则预估胜率越接近50%,在专业国际象棋赛事中,T 通常采用 400,在比赛结束后,可以设𝑆𝐴和𝑆𝐵为玩家的比赛得分,如下:
在这里插入图片描述
则比赛结束时玩家的排位分更新规则如下:
在这里插入图片描述
以上便是用于国际象棋比赛的 ELO 算法基本内容,所形成的排位分即 ELO 积分,其
始终处于动态的变化中,但随着玩家的比赛场次增加会逐渐收敛至与玩家实际水平的范
围内,但该算法应用于不同场合还需要根据实际情况进行相应的改进

5 相关改进

5.1 从1v1到NvN

本文在4中已诠释了 ELO 算法在 1v1 时的使用方式,但是随着网络游戏的发展,如今大部分游戏特别是 MOBA 类游戏基本模式均为友方 N 人与敌方 N 个人的 NvN 类型。
所以我们需要将 ELO 算法中的评分机制扩展至 N 个人的模式。

如4中所说 ELO 算法中最重要的部分是对实力的处理,若为 1v1 模式我们可简单采取此人的分数作为𝑅𝐴。但是涉及到 N 人时,我们需采取某种方式来评估整个队伍的实力,从而可以得出某一方获胜的概率。所以可以自然的想到利用某队的实力分数的均值作为该队的实力。
即: 设 1 号队伍有五人𝐴𝑖, 𝑖 ∈ {1,2,3,4,5},2 号五人𝐵𝑖, 𝑖 ∈ {1,2,3,4,5}
在这里插入图片描述
更新规则:
在这里插入图片描述
但若我们使用该种方法进行NvN的分数计算,该方法会解决不了高分选手特意与低分选手共同游戏来增加分值。因为这种做法会使高分选手较为轻松涨分。所以在该方法中的改进为对同一队中的某一选手,会根据其原始分值来调整 K 的取值,使高分玩家涨分幅度低于同一局中低分玩家的涨分幅度,以提高收敛速度,使游戏平衡性提高。

5.2 收敛速度的改进

不管是 1v1 模式还是 NvN 模式下的 ELO 评分机制,最终某位玩家的分值将会固定在
其真实实力所代表的分值的附近,并有所波动。整个的 ELO 评分系统即是将分数收敛至
该真实水平的过程
。为了使得玩家体验上升,需保证游戏中的平衡,能够快速将每
个玩家的实力分数固定到其应有的水平范围内(即提高收敛速度)具有重要意义
。否则玩家
双方会因实力差距过大而影响弱势玩家的游戏体验。除此之外,收敛速度越快越可有效
防止高分玩家假装为低分玩家上分、或是代练等不良行为

  • 定级赛机制

在英雄联盟,DOTA2 等游戏中会在玩家加入正式排位赛程的前 10 局比赛(即定级赛)中采取较大的 K 值。这种做法可以使得在该 10 局比赛中的排位分波动较大,使得玩家可以大致收敛至包含自己的水平的一个大区间中。然后再通过之后正式的对局,将分数收敛至真实水平。该方法将之后排位赛的收敛半径(即从某个值开始收敛至自己真实水平的范围)缩小,因此可以有效提升收敛的速度

在初始和之后的 K 值的选取会影响收敛的速度,我们可以通过不断的模态的模拟 K 的取值,通过观察收敛速度来选取合适的 K。在开始时设置较高的 K值可以更快地将玩家定位置符合自己实力的段位,而后降低 K 值则可以使玩家进一步细化定位。该法可以在初期大幅度提升 ELO 算法的收敛速度。

如在英雄联盟 S1-S3 的排位赛中初始 K 值较高为 100,后续将会逐步降至 25。除此之外,各类游戏中也常以分段的方式进行 K 值的划分,低段位的 K 值通常设置较高,而高段位 K 值通常设置较低,目的是为了便于低段位选手更快地提高排位分,而高段位选手则通过降低 K 值保证游戏的稳定性。

  • 连胜奖励机制

引入连胜奖励机制,较多的高级玩家喜欢开小号虐菜或是进行代练上分,若引入连胜阈值与连胜奖励,也可以在一定程度上提高 ELO 算法的收敛速度。

连胜奖励定义:当某位选手的连胜场数𝑁′超过一个固定值如𝑁 = 4,则该选手后续获胜时排位分均会额外增加𝑀分,失败则清除连胜场数。
在这里插入图片描述
其中𝑁与𝑀值的设定还需要根据游戏的数据反映情况以及游戏需求而定。

  • 段位继承机制

每赛季开始将会有段位衰减,而段位继承机制也可加速玩家排位分的收敛过程。系统通常保留了玩家上赛季的数据,可基于这些数据得知玩家的大致水平,从而能够较为准确的给定一个 K 值,该方法同样能使 ELO 算法的收敛速度得到一定提升。
该方法还能提高游戏性,效果表现如下:
1.玩家重返低分段,给予了玩家提高的机会与动力,提高游戏留存。
2.即使排位分按一定比例衰减,但由于玩家实力依在与较高的 K 值设定依旧会稳定回到真实排位分,对 ELO 系统的稳定性影响较小。

5.2 匹配策略改进

即使有了改进后的ELO算法作为匹配机制的基础,但在同一时间段,能完美找到契合同水平的对手与队友是一件困难的事情,因此改进匹配时的机制也有利于游戏平衡的实现,基于各类游戏的体验评测与官方通告,主要的匹配策略大致围绕分差、时间以及其他附加因素。方法大致如下:

  • 增加位置匹配系统

在某些竞技游戏中,每位玩家在团队中通常担任不同的游戏角色,因此可以在匹配开始之前提前提供玩家位置选择机会,通常玩家所玩擅长的位置实力会较于其基础的排位分更高,因此该策略下双方团队的实际分差阈值在一定水平上会有所缩小,但该法会导致匹配时间的延长

  • 根据数据分析进行调节匹配

对于某些游戏玩家体量较大的游戏,如王者荣耀等,则会有专门的数据分析专员帮助分类预流失玩家、回流玩家、高活跃玩家,根据玩家的分类结果可以对这些玩家匹配规则上进行一定的改动,如预流失玩家则给予其 ELO 分更低的对手,提高其胜利概率,增加游戏体验,回流玩家统一给予其 ELO 分较低的对手,以挽留该玩家,高活跃玩家则给予其 ELO 分较低的队友和 ELO 较高的对手,作为他人体验的牺牲品,同时激起求胜欲。

6 优缺点

6.1 优点

1.有效衡量玩家的水平。ELO 所产生的分数直观的量化了玩家的水平。

2.缩短了匹配时间与创造高质量对局。因为匹配机制中会利用 ELO 积分相近的玩家进行匹配,所以会使得实力相近的玩家进行博弈,从而大大增加比赛的质量。

3.激励玩家进行竞争。积分与排名可以激发玩家的竞争心态,促使玩家提升实力,并最终为游戏的生态环境带来积极的影响。

4.ELO 算法为零和算法,即玩家总体分数不变,高分玩家的分数通常来自低分玩家。这使得玩家分数准确,高分低能的玩家较少。

6.2 缺点

1.ELO 算法初期的具有不准确性。ELO 算法在初始时,拥有较少的玩家信息,初始分数往往与真实水平偏差较大。所以需要大量数据才能收敛至真实水平,在该过程中玩家的体验可能会较差,因此提高收敛速度是改进 ELO 算法的关键。

2.ELO 算法对时间具有不敏感性,ELO 积分并不会随着时间的变化而变化。但在现实中某玩家若长时间没有比赛时,他的实力水平可能会上下浮动较多。此时 ELO 所产生的排位分可能无法反映玩家的真实水平,但通常游戏会根据其流失时间对 ELO 分进行衰减措施,以保证其回归时他人玩家的游戏体验。

3.ELO 算法对比赛无差异性。该缺点每一场比赛都视为同等重要的,但现实中往往比赛会有重要程度的区分的。但 ELO 算法无法在重要比赛中给予更多的权重。

4.由于 ELO 算法的零和效应,玩家达到自己水平的分数后难以通过努力提高分数,因此低水平玩家分数会维持在低分段,成就感低容易流失。此时可以根据玩家的行为增加一些附加分,以达到非零和效果。

  • 2
    点赞
  • 11
    收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页
评论

打赏作者

凡凡凡凡-

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值