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