玩了这么久的王者荣耀,也该出来分析一波了。
很多人都会有这样的疑问:为什么我们在“农药”游戏中会出现连胜之后连败的情况?而且在连胜后遇到的对手都异常强劲,而队友却无比“坑”?
今天,用简单的几句话来通俗地给大家解释这样一个道理:上面的一切,都是系统在“惩罚”你。
好了好了,上车了。(最后上来的同学把车门锁死,这不是去阳光幼儿园的车。)
综述:王者荣耀的匹配算法主要由MMR值和ELO算法组成。
一、MMR值
MMR全称Match Making Rating,中文名:比赛匹配分级。广泛运用在竞技游戏中。DOTA2里面的比赛级别分为LOW、HIGH、VERY HIGH(简单、困难、非常难),一开始你的MMR积分为0分,那么赢了一场LOW的比赛就+1分,输了-1分;赢了一场HIGH的比赛就+2分,VERY HIGH+3分,输了则减。
那么你赢得越多,你的MMR就越高,你匹配到的对手也越厉害;反之就越低越弱。
这个系统会让你一直趋向MMR=0这个值。也就是说让你的胜率总是保持在50%左右,当你的胜率超过50%的时候,系统就会给你匹配很厉害的对手让你输;而你低于50%,就会给你简单的对手。(百度网友:°Fm69)
这个方案很好地解决了“代打”的问题:如果有高手帮你上分,系统可以及时发现,给你匹配更加“高级”的对手,一旦你自己开始玩,就会连败,直到你的MMR分为0.
既然明白了MMR机制,那么要怎样才能尽可能提升排位胜率呢?那就是在匹配中降低自身的隐藏分,提升匹配到神队友的机会。
例如:
1、和好友开房间,估计输掉比赛,降低隐藏分;
2、在几乎稳赢的局面下,送几次塔,降低自身KDA以降低隐藏分(慎用);
3、连胜时尽量和连败的好友组队排位,降低队伍的总隐藏分。
二、ELO等级分制度
ELO等级分制度是由匈牙利裔美国物理学家Arpad Elo创建的一个衡量各类对弈活动选手水平的评分方法,是当今对弈水平评估的公认的权威方法。被广泛应用于国际象棋、围棋、足球等运动,以及很多网游与电子竞技产业。游戏界比较著名的应用有:WOW(魔兽世界)、DOTA、LOL。
ELO计算方法
Ra:A玩家当前的积分
Rb:B玩家当前的积分
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=Ra+K(Sa-Ea)
R'a:A玩家进行了一场比赛之后的积分
其中 K 值是一个常量系数
公式Ea和Eb中分母“400”来源:
从统计学上来说,任何一名选手的即时表现都应该是符合正态分布的(围绕某一个水平上下波动)。每个选手的表现都应该符合正态分布函数:
其中U代表选手的平均水平,δ代表稳定性(表现分值的方差)。
这个公式有点难算,不怕,我们利用最小二乘,得出了和它函数趋向相近的另外的一个公式,这也是我们实际运用预期胜率计算公式时常用的替代公式:
由ELO积分预期胜率计算公式我们进一步得到表现等级分计算公式:
其中:Rp是玩家自己的表现分;Rc是对手排位分,如果对手不止一个就要取平均值;D(p)是胜率计算函数的反函数,p表示参考局数内玩家的胜率。
我们实际使用的是ELO体系积分迭代公式,形式如下:
其中:Rn是玩家比赛结束后的新的排位分值;Ro是比赛前玩家的排位分,K是一个加成系数,由玩家当前分值水平决定(分值越高K越小)。
为什么要使用段位机制来代替显式给出ELO积分?
答:将ELO积分变成隐藏分,直接给出玩家的“段位”,这不会打击玩家的信心(ELO分值收敛结束后,再进行更多的对局几乎不会有任何提高,除非自我进阶,所以ELO分值显式给出只会让玩家“累觉不爱”) 段位的出现是对人性考量的结果。永远不要忘记MOBA类游戏盛行的至理:超神都是自己的!锅都是队友的!段位上不去是因为队友都是傻逼!所以不需要在分值上对其水平进行太过精确地显示。
文末:再次强调,本文是“通俗版”,想要更加具体地了解竞技游戏中的匹配机制,可以继续阅读参考链接。
Postscript:合理游戏,保智商。记住:你打得过敌人,打不过系统。
本文主要参考
1.Elo评分算法原理与实现
2.通俗讲义:匹配系统核心 “ELO”积分揭秘
其它参考:
1.这套匹配系统被DotA、LOL、王者荣耀广泛运用,它是如何设计的?
2.Elo rating system
3.TrueSkill Ranking System
4.《王者荣耀》“隐藏分”系统解读:教你如何避免匹配到青铜队友
5.《社交网络》中Facemash算法分析
6.ELO算法教程