炉石机制杂侃:旗鼓相当的对手哪里来?
“旗鼓相当的对手”从何而来?
也许大家对于炉石的匹配机制和积分机制有一些疑惑,比如:
1.旗鼓相当的对手究竟是怎样匹配到的?
2.为什么新号竞技场相对简单?
3.为什么买的脚本号打天梯对面会疯狂投降?
4.为什么传说前几名的人需要打赢好多场才能前进一名但是打输一场会倒退好多名?
5.为什么同样是同一时间上传说,有的人1000名有的人100名?
………………
看完这篇文章,你就能得到解答。本文是笔者作为游戏策划为炉石匹配机制做出的推理和还原,难免有疏漏和不合理之处,敬请谅解。如有疑问,欢迎评论提出或者拍砖。
一些原始的计算方式
虽然大多数人不了解匹配机制,但是相信大家都听说过隐藏分的概念,也都模模糊糊知道匹配肯定是和隐藏分有关。在竞技游戏中,被大量使用的是一个叫做ELO的算法来计算隐藏分。(其实这个系统最早是用于国际象棋比赛积分-。-)在我们接触ELO算法之前,我们先来讲讲另外2种计分方法:完全不平均和完全平均。
1.完全不平均:
常规手机游戏和网页游戏中经常出现的一种计分方法,即没有积分只有排名。即使你是一个10000名的小卒,你也可以挑战第1名,打赢之后你就是第1,原先第1就变成第10000(或者原先的1-9999名全部人都下降1名),这种算法简单粗暴,完全靠单场发挥,不动脑子的规则制定者经常使用,比如教育部用高考直接决定了一个人的一生。
2.完全平均:
在诸多领域被广泛使用的一种计分方法,所有人无论何时都一视同仁的使用同一套加减分的规则。比如某些比赛,胜利记3分,失败记-3分,平局不计分,进行100局后查看大家结果。这样的完全平均表面看起来也不是不公平,但是在游戏局数过多时就会暴露出一些问题:一些前面输太多的人柳足了劲想冲刺一下,结果一大波连胜也还是在垫底。完全平均算法太容易让游戏失去竞技性:首先是每场加分恒定导致没有太多动力,输多的人发觉要提高排名太难,就破罐破摔;而且赢多的人觉得某场关键比赛即使输掉也无所谓,因为前面给他积累很多呢。
ELO算法横空出世
在痛定思痛之后,一位叫做埃洛的大神总结了前人的各种积分规则,基于统计学创建了一套全新的算法。这套算法既不过于依赖平均,也不过于依赖单场,比先前的更公平客观,于是很快就流行开来,1970年国际棋联正式开始使用这个系统。后被公认是当今对弈活动水平评估的权威方法,被广泛用于国际象棋、足球、篮球、war3、LOL等运动和游戏。
ELO算法认为,在某一个人的身上,其生涯实力总体在某一特定水平波动。虽然有可能会出现大波动,但通常情况下出现大波动的可能性较低。(所以说单局比赛中由于对手掉线、突然拉肚子、女友来电话等意外情况,不在ELO算法的讨论范围内)
ELO的简化模型构建:
1.某个选手在某一分段区间内的波动属于正常现象。
2.在某一分段区间内的选手水平大致相同,胜出的期望也大致相同。
3.仅用胜负平来评价选手的表现,而不是看是否打的好。赢了加分输了扣分。(dota11天梯在此基础上进行了修正,会综合评判选手的KDA,从而引发了一系列的争执)
过程略过不谈(楼主也不看懂O(∩_∩)O),总之在经过了多次模拟和分析之后,埃洛发现选手在比赛中的表现比较接近逻辑斯谛分布,最终推导出了选手的期望胜率:
(D为选手A和选手B的分数差值)
分数差值和胜率期望大致见下表(已简化,以免刷屏):
计算出了胜率期望后,接下来就是得分公式了,埃洛的基础在于杜绝绝对平均,于是在他的得分公式里,吊打小朋友基本是不加分的,而打败了大神则是疯狂加分:
S=K*(R-P)
单场得分=得分系数*(实际结果-预期胜率)
得分系数K是一个系统预设的常数,我们可以先使用魔兽世界竞技场的取值32,它起到控制单局得分上限的效果。
实际结果Result,有且只有3个取值,胜利为1,失败为0,平局为0.5。
预期胜率Percentage,上文公式已述。
单场得分Score,即可通过公式算出。假使两个1200的小菜鸡互啄,S=32*(1-0.5)=16,即胜利一方获得16分,失败一方失去16分。假使1600的大神遭遇1200的菜鸡,S=32*(1-0.91)=2.91,大神赢了只能获得2.91分,输了要失去29分。在这种匹配机制下很难匹配出这样的对手,除非当时正在匹配人非常少。
炉石中的ELO算法改良
那么,回到炉石上来。在已经建立完隐藏分系统之后,单局是怎样匹配出对手的呢?
系统会根据你的隐藏分来评估你的游戏水平,且根据这个水平来给你安排合适的对手,让你们双方都有50%的几率胜出比赛。
系统会着重考虑以下细节,按照顺序排列:
1.保护新手,防止他们被高手吊打。
2.保证公平,开展有竞技性而不是一边倒 的比赛。
3.最后才是寻找可用的比赛。你等的时间越长,前两点的重要性就越小。赛季初上传说的人往往都是踩着一堆5级的人甚至是7.8级的人上传说,就是因为已经找不到“旗鼓相当的对手”。
为此,炉石使用的得分公式会是一个复杂版的:
S=K1*K2*K3*K4(R-P)
单场得分=得分系数*连胜连败修正*场次修正*模式修正(实际结果-预期胜率)
K2是指连胜连败修正,即系统在看到你连胜或者连败时,判定你不属于这一分段,应该更高或者更低而设的一个系数。这个系数会让底层玩家连胜时冲分会更快;也会让连败的玩家分数急速下降匹配到较弱的对手从而终结连败,减少挫败感。
K3是指场次修正,即系统对于新手的额外关爱,在游戏初期获得/失去的隐藏分会较多(即DOTA和LOL中定级赛的概念),保证老鸟创新号会很快升到较高层面,而新手在初期则会很快掉入新手圈中和一堆低分菜鸡互啄。
K4是指模式修正,玩家在天梯模式获得的隐藏分会多于休闲模式和竞技场模式。
不同模式下的匹配机制改良
话说了一堆,其实炉石有3个模式,这3个模式的匹配机制都会不太一样:休闲、天梯和竞技场。
休闲模式:完全按照隐藏分来匹配的。
天梯模式:X秒内优先匹配相同等级的人,如果匹配时间超过X秒则往上下等级匹配。传说后,匹配隐藏分接近的人。(传说名次按照隐藏分来排列)
竞技场:X秒内优先匹配相同胜场负场的人,如果匹配时间超过X则扩大范围。(大家经常10胜以上会连续匹配到相同的对手,但是低胜就不会,因为低胜的人特别多不会找不到)
这个官方曾经有蓝贴说明:炉石美服官网对匹配机制的详细解答
结语
先说结论吧:提升自己才能真正提高胜率
ELO算法并非无懈可击,但是现阶段确实是衡量每个人实力最科学的一套系统。虽然每个人都不愿意承认自己是实力较弱的人,但是事实就摆在眼前,在ELO算法之下的天梯,大家的分值就如同金字塔形分布,高手永远都在天梯顶端。我只听说过天梯低端的菜鸟抱怨天梯不公上分太慢,而高手从来不care。从来没听过哪个LOL职业选手上不去王者,也没有哪个炉石职业玩家由于运气原因上不去传说。即使从零单排,也能较迅速爬回到与自己原本实力相近的位置,这就是ELO算法的强大之处。
最后说一说大家有时会说的套牌匹配度问题,有橙卡的JJC老能匹配到有橙卡的对手。其实这个问题,大家可以百度一下幸存者偏差,大概也就是和XX开苞法是一样的情形:
A情况.我有橙卡,虐了没有橙卡的,太常规我没记住。
B情况.我没橙卡,对面有橙卡虐了我,太常规我没记住。
C情况.我有橙卡,对面也有橙卡,橙卡大战三百回合,惊险刺激,我记住了。
最后传来传去,就变成了有橙卡的JJC老能匹配到有橙卡的对手。(其实熊大代打了那么多橙卡的牌,大多数对手都没有橙的……)
跟大家说这个也是想让大家摆正心态。很多人输了,就想着匹配机制不合理呀,被土豪吊打呀,娱乐套牌碰快攻狗呀,对手老是神抽呀,每次都卡手呀。其实匹配机制和发牌员还真的不背锅:你老匹配到会玩的土豪,说明你隐藏分高,胜率牛逼;你上把天湖这把就该卡手,很公平。
文章开头提出的问题,就作为课后习题,给那些愿意思考的读者。如果是键盘侠,也辛苦你翻到这了,不劳你们打字喷我,可以复制下面这句回复给我,帮我赚赚人气~
最后,这种纯理论文章真的毫无意义,看了也是然并卵。