相信玩过王者荣耀的小伙伴们多半都有过这种心里,在连胜之后的喜悦之中,伴随而来的是无休止的连跪,这是什么鬼游戏,本人技术好,堪比职业联赛选手,却还是不停的连败,为什么啊?难道这是天意?或者我的游戏号中毒了?或者....其实,亲爱的游戏召唤师们,这不怪你们个人,只是游戏机制在起着主导作用。
在王者荣耀中,游戏的匹配机制大家应该或多或少的了解过一些,我之前的文章也介绍过游戏机制存在的作用和如何吸引玩家继续玩游戏的。今天我给大家带来王者荣耀匹配机制---elo匹配机制的核心原理和算法,本人也不会,不过为了让大家更好的了解游戏机制,也是经过千辛万苦查找了众多资料才找到的。
一、积分计算公式
Ra:代表A玩家当前的Rating
Rb:代表B玩家当前的Rating
Sa:代表实际胜负值,胜=1,平=0.5,负=0
Ea:代表预期A选手的胜负值,Ea=1/(1+10^[(Rb-Ra)/400])
Eb:代表预期B选手的胜负值,Eb=1/(1+10^[(Ra-Rb)/400])
因为E值也为预估,则Ea+Eb=1
R'a:A玩家进行了一场比赛之后的Rating,R'a=Ra+K(Sa-Ea)
K:K值是一个极限值,代表理论上最多可以赢一个玩家的得分和失分,K/2就是相同rating的玩家其中一方胜利后所得的分数。
国际象棋大师赛中,K=16;在大部分的游戏规则中,K=32。通常水平越高的比赛中其K值越小,这样做是为了避免少数的几场比赛就能改变高端顶尖玩家的排名。
二、实例说明
若当前A玩家rating为1500,B玩家rating为1600
预估A玩家的胜负值Ea=1/(1+10^[(1600-1500)/400])≈0.36
预估B玩家的胜负值Eb=1-Ea=1-0.36=0.64
假设A玩家获胜,实际胜负值为Sa=1
A玩家最终得分为R'a=1500+32*(1-0.36)=1500+20.5=1520,A玩家赢20分,B玩家输20分。
假设B玩家获胜,实际胜负值为Sa=1
B队最终得分为R'b=1600+32*(1-0.64)=1600+11.52=1612,B玩家赢12分,A玩家输12分。