文/陈骁
不知道大家在玩游戏的时候,是不是都产生过这样的疑问:
《王者荣耀》排位五连胜后遭遇九连跪,是不是游戏操控胜率?
《英雄联盟》渡劫局总匹配神对手猪队友,是不是有意制裁我?
《炉石传说》传说段位获胜,为什么排名不升反降?
……
这篇文章将说明游戏匹配和排名的原理,相信可以打消大家心中的困惑。
仍在玩《王者荣耀》的同学们或许记得,《王者荣耀》在 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.91
EB = 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 的排名原理后很好理解,获胜后排名不升反降,是因为对 局过程中有玩家的积分超过了你当局获胜后的积分。
热门跟贴