从《王者荣耀》看对战匹配机制 Elo Rating System 在游戏中的运用

文/陈骁

不知道大家在玩游戏的时候,是不是都产生过这样的疑问:《王者荣耀》排位五连胜后遭遇九连跪,是不是游戏操控胜率?《英雄联盟》渡劫局总匹配神对手猪队友,是不是有意制裁我?《炉石传说》传说段位获胜,为什么排名不升反降?……这篇文章将说明游戏匹配和排名的原理,相信可以打消大家心中的困惑。仍在玩《王者荣耀》的同学们或许记得,《王者荣耀》在 S11 赛季调整过一次匹配机制,自那以后,王者大神的小号上分车不如以前那么稳了,时不时还会和其他车队撞车_(:з」∠)_这是因为,相比以往根据段位进行匹配的机制,新机制采用的算法能够在一定程度上更精准地反映玩家的真实水平,减少了高段位玩家开小号遨游低端鱼塘的情况。这种算法就是——Elo Rating System 。

那么,什么是 Elo Rating System ?Elo Rating System 在游戏中能起到什么样的作用?Elo Rating System 有哪些缺点?在实际应用中,应该如何处理?我们将围绕这几个问题展开说明。一、什么是 Elo Rating System ?Elo Rating System 是由匈牙利裔美国物理学家 Arpad Elo 创建的一个衡量各类对弈活动水平的评价方法,是当今对弈水平评估的公认的权威方法。被广泛用于国际象棋、围棋、足球、篮球等运动。网络游戏英雄联盟、魔兽世界内的竞技对战系统也采用此分级制度。第一次接触到Elo Rating System ,是在电影《社交网络》中。创办了Facebook 的 Mark Zuckerberg 和 Eduardo Saverin 在 Harvard 读大二时,一夜间搭建了网站 Facemash。这个网站每次会展示两张不同女生的照片,用户选择自己认为更好看的一张。每次选择后,便进入下一组女生照片的评选。最终, Facemash 将计算出全校女生的长相排名。这其中所用的算法,就是 Elo Rating System。

而设计之初,Elo Rating System 仅是一个国际象棋选手的排名系统。那么它究竟是如何实现对象的评价和排名的呢?让我们以游戏中的竞技玩法积分排名为例说明。Elo 会赋予每位玩家一个相同的初始积分,并进行以下计算:1. 根据积 分差计算双方获胜概率;2. 每位玩家根据对方积分和游戏结果所表现出的水平分;3. 得出游戏后的积分变化。计算公式:

EA:玩家 A 的胜率期望值EB:玩家 B 的胜率期望值(可以看出,EA+EB = 1 )RA:玩家 A 当前 积分RB:玩家 B 当前积分R'A:玩家 A 游戏 后积分K:常量系数,后 文会说明具体作用SA/SB:实际结果胜负分,胜 = 1 ,平 = 0.5,负= 0演算过程:假设两位当前积分为 RA = 1900 ,RB = 1500 的玩家相互竞技时, EA = 1/{1+10^[(1500-1900)/400]} ≈ 0.91EB = 1/{1+10^[(1900-1500)/400]} ≈ 0.09当 K = 32 时,假设玩家 A 胜出,SA = 1 ,SB = 0 ,则:R'A = 1900 + 32*(1-0.91) ≈ 1903 ,玩家 A 获得 3 分R'B = 1500 + 32*(0-0.09) ≈ 1497,玩家 B 失去 3 分分母中的 400:为什么是 400,而不是 100、200 或者 1000 呢?从积分差上看,这个值影响着对战双方的获胜期望。当双方积分差相同时,这个值越大,双方的获胜概率越接近。当这个值等于 400 时,若双方分差为 100, 积分较高的一方获胜期望约为 64%。简单地说,这个值等于 400,能够让多数玩家的积分保持标准正态分布,也 符合多数游戏“易于上手,难于精通”的设计规则。K 常量:不难看出 K 值越大,单次评价的积分变化幅度越大。那么 K 值的设定应该 遵循什么规则?一般而言,分段越 高,K 值越小。如此设 计,能够令玩家的积分 在前期快速 趋近其真实水平,同时避免少数的几场对局就改变顶尖玩家的排名。所以 K 值的选择取 决于,这个游戏需要以什么样的方式来统计选手的积分, 并根据玩家、玩家数量之类的参数微调。小结:从 Elo 的工作模式中我们可以得出以下几点:1. Elo 会给出玩家一场对局的获胜概率。Elo 积分相差越大,积分高的一方 获胜概率就越大;2. 每一场对局后,对阵双方都会进行一部分积分交换,胜者得分,败者失分;3. 如果两名玩家的积分相差很大,代表高分方获胜的概率极大,因此即便赢了也涨不了多少分,败方也掉不了多少分。但倘若被低分方爆出冷门,那高分方将失去大量分数。二、Elo Rating System 在游戏中的作用了解了 Elo 的工作模式,就不难得出它在游戏中的作用。衡量玩家实力Elo 积分直观地量化玩家水平的高低。缩短匹配时间对局匹配时,玩家的 Elo 积分可以作为匹配依据之一,只需要挑选与当前玩家积分相近的玩家即可,而不需要遍历当前所有玩家,缩短了匹配时间。创造高质量的公平对局为玩家匹配实力旗鼓相当的队友和对手,能够保护新手不被有经验的玩家血虐,同时让高端局中没有菜鸟,使玩家的游戏乐趣最大化。激励玩家竞争积分和排名为玩家提供荣誉感,满足玩家的虚荣心,激励玩家攀比、竞争、提升实力,并最终为游戏的生态环境和活跃带来积极影响。三、Elo Rating System 的缺点任何算法系统都有优缺点,Elo 也不例外。初期的盲目性Elo 积分在达到合理(趋近真实)水平之前需要一个过程。比如一个 2000 分的玩家玩小号,遇到的对手大概都是 1400 分水平,这时候 Elo 积分是不能准 确反映他的实力的。经过几局对战,这名玩家的积分会逐渐达到合理水平。这个过程就是 Elo 积分的收敛过程。对时间不敏感Elo 积分不会随着时间变化,当一位玩家很长时间没有游戏的时候,他的水平可能会上下浮动,但他的 Elo 积分并不会随之改变。尤其对于顶尖玩家而言,这时候的积分排名未必能反映玩家间真实的实力排名。四、Elo Rating System 的实际应用针对上述问题,在实际应用中有着不同的对策,目的都在于——缩短收敛过程弱化不良体验。

赛季制在游戏中采用赛季制,随赛季重置段位和排名。解决因 Elo 不随时间变化导致的个别玩家长期占据排行榜位置,引起其他玩家挫败感和消极情绪的问题。同时,随赛季投放版本内容,刺激玩家活跃和竞争。辅助定级

1. 定级赛:《英雄联盟》《守望先锋》引入了定级赛机制。在每个赛季初,通过数场定级赛的表现,决定玩家该赛季排位赛的初始段位,缩短了Elo积分的收敛期。

2. 段位继承:《王者荣耀》《绝地求生:刺激战场》每个赛季初重置段位时,会根据上赛季段位进行一定压缩并继承。同样缩短了收敛期,保证了赛季初的对局质量。

积分奖惩1. 勇者积分:《王者荣耀》在获胜加一星、失败减一星的基础规则外,增加了勇者积分规则。比赛结束后,无论胜负都会得到勇者积分。勇者积分=玩家无挂机行为奖励+连胜奖励+局内评分排名奖励+对手过强奖励+虽败犹荣奖励。通过勇者积分,可以加速积分的收敛过程,并起到鼓励玩家认真对待每一局游戏的效果。

2. 长时间不对局,扣减段位和积分:《王者荣耀》中进入最强王者段位后,系统会每隔7天进行一次检测,如果玩家在7天内没有排位赛行为,会被扣除1颗星。同理英雄荣耀战力:

这样的规则保证了段位和积分的时效性,也促进了玩家的持续活跃。为什么不用 Elo 积分代替段位?看到这里,可能有同学会问:那为什么不直接用 Elo 积分反映玩家水平呢?加入段位不是让机制更复杂,Elo 收敛更慢了吗?其实早些年,不论是主打《Dota》对战 的 11 平台,还是《英雄联盟》或者 《Dota2 》,使用的都是积分制。但后来,《英雄联盟》在 2012~2013 的 S3 赛 季中取消了排位分,改为段位制。《Dota2 》也终于在 2017 年底,随着 7.07 版 本的更新取消了天梯积分,同样改为了段位制。这么做的原因在于:1. Elo 积分的精确指示会打击玩家积极性。随着积分的收敛和 K 值的减小, 最终积分会在一个小范围内浮动,玩家对积分的增减会愈发无感,不利于玩家的 活跃;2. 积分的传播效果不如段位好。从市场营销角度,“最强王者”“至尊星耀” 应该远比“我天梯 2200”有感染力,更易于理解和传播。Elo 积分将在段位之外,继续作为衡量玩家水平的标准和匹配的依据,保证 游戏体验。毕竟,段位对活跃的玩家有很多鼓励,并不是玩家真实水平的全部反 映:保证总体胜率在 50%以上(考虑到勇者积分和段位保护应该都不到 50%),只要完成足够的对局就能到达王者段位,2000+场胜率47%的安琪拉了解一下。所以,如果单纯用段位匹配,会让那些常年蹭车的妹子们怀疑人生——她们的真实水平并没有段位显示的那么高。

最后,回到篇首的三个问题。1&2:匹配机制和算法只是基于经验数据的预估模型,无法精确评估玩家个 体在匹配后的单局内,会表现出什么样的游戏水平,既没有能力也没有动机去控 制玩家的游戏行为。因此,操控胜率和系统制裁这样的说法是不成立的;3:在了解了 Elo 的排名原理后很好理解,获胜后排名不升反降,是因为对 局过程中有玩家的积分超过了你当局获胜后的积分。