守望先锋的匹配系统,远比你想象的要复杂。
隐藏分和竞技等级有什么关联?
连胜/连败是偶然,还是注定?
为什么单排不如开黑?
暴雪怎么识别炸鱼/代练?
MHzOW 在Reddit上为你带来解析。
楼主:写在前面
这是一篇翻译作品。
据原作者声称,他在美服官方论坛上的帖子被删除,账号被禁言,只好发到 Reddit 上。
他根据多方面数据分析出了守望先锋匹配系统的真实工作机制和逻辑。
正文
朋友们:
我曾想把这个故事在官方论坛上发出来,提供一些关于匹配系统的信息,但暴雪把我贴子锁了,还把我禁言了。他们说我透露了内部信息。但是问题来了,论坛上那么多关于匹配算法的帖子,为什么偏偏就删我的呢?我也没有任何内部信息。我的数据来源有自己的也有别人的,但在我自己看来我是真的研究出了匹配系统的秘密。说不定这就是为什么他们锁帖,谁知道呢。
我想以一句道歉开头。我的英语不太好。我知道这篇文章里的某些观点会在论坛上引起一阵骚动。很多人会说,“我觉得这绝对不可能”,因为他们抱着拒绝的心态。还有些人已经知道我写的全是实话了。这篇长文仅是为那些意志坚定、真真正正想要了解匹配机制的人写的。我需要点明的是,这只是我在多个赛季内积累的数据、观察结果、在不同账号上测试以及同朋友一起测试所得出的理论。我的逻辑能力不差,大多数的谜题密码都难不住我,而且我已经做出了一个预判模型。这个模型现在的预判非常精准,这也是我相信自己探明了真相的原因。我将要解释的是匹配系统的运作机制,有些方面可能跟实际有些出入,因为守望的匹配系统实在是太复杂了,我没法确保照顾到所有的细节。我看不到实际的匹配算法,也不能回答所有的问题,但这篇文章中大多数的部分我是确信无误的。你们中的有些人说不定读着读着会被震惊到不得不躺在地上,直直看着天花板。
我对你们的请求是,把这篇文章从头到尾读完。然后忘掉这篇文章,去打排位,自己观察一下。你会发现,这就是真相。
我们开始吧。
大多数人都认为,你的输赢就能令你在天梯上上下下。这话不全错,但更准确的描述是,当你玩守望先锋的时候,匹配系统会监控你的多项指标,衡量你的个人水平,然后用这些数据强行把你推向它认为你应得的排位分数。为了这么干,如果你的水平比天梯分高,它会分给你简单的比赛;如果它觉得你的分数过高了,就会给你困难的比赛。记住这一点,然后往下看:
基本所有人都知道什么叫SR和MMR. 我还是提一下:
SR (Skill Rating): 竞技等级 你的天梯分
MMR (Matchmaker Rating): 匹配系统评级 你的隐藏分,只有匹配系统会用到
现在我会给你讲一个大多数人都熟悉的故事,解释匹配系统的工作机制。你会搞明白匹配到底是怎么一回事:
匹配系统会持续跟踪你的所有游戏,并将这些数据和其他跟你同地图、同英雄、同攻/防并且同输/赢的数据比较。举个例子:如果你在多拉多的防守方玩狂鼠,输掉了这场比赛,你的这场数据就会跟其他在多拉多的防守方玩狂鼠、并且落败的数据比较。
虽然SR就是会在你赢的时候上升、在输的时候下降,但!是!
记住:如果你比同段位的其他人玩的好,无论你的输赢,你的MMR都会上升。
记住:如果你没同段位的其他人玩的好,无论你的输赢,你的MMR都会下降。
我举一个例子,两个玩家A和B,他们都从这个阶段起步:
SR = 3000
MMR = 3000
A赢了一场比赛,但跟其他3000段位的、在同一张地图上使用同一名英雄并且获胜的人相比,A差强人意。他的数据被调整为:
SR = 3020(↑)
MMR = 2980(↓)
B跟A在那场比赛是同一队。同作为获胜方,他相比其他同段位、同地图、同英雄的获胜者来说更出色。他的数据被调整为:
SR = 3020(↑)
MMR = 3030(↑)
有很重要的一点要告诉你,就是,匹配系统的职责就是根据玩家相比其他人的游戏水平,把他们推向系统认为正确的排位分。理论上,这最终就能产生公平的比赛。所以你可以说匹配系统的目标就是创建公平的高质量对局,但它所采用的方法与你的想象迥然不同。
A玩家又开始匹配排位赛了。他发现上一局的队友B现在到了对面去。前面讲过匹配系统的目标就是把玩家的天梯分(SR)推向系统觉得正确的段位(也就是玩家的MMR),它就故意把玩家分成两拨。A所在的队伍上,每个人的MMR都比SR低,而对面B的队伍上每个人的MMR都比SR高。表面上看起来12个人的SR都差不多,实际上这场比赛对B的队伍更有优势。A队伍上的人MMR都比SR低,匹配系统就觉得他们应该掉分。B队伍上的人MMR都比SR高,匹配系统就认为他们应该上分或者维持在这个段位。
继续讲这个例子。
玩家A打了这场比赛,拿了六个金牌,但最后还是输了。他的数据现在是:
SR = 3000(↓)
MMR = 3000(↑)
虽然他掉分了,但是因为他实在玩的很好,他的MMR隐藏分却上去了。匹配系统完成了它的任务:A玩家的隐藏分和天梯分会和(converge) 了。在他的下场比赛,玩家A会被分进一场公平的比赛,这也就是匹配系统的完美比赛。
我们现在可以只看玩家A了。
玩家 A继续匹配,赢得了他的完美比赛,但很可惜,他的个人表现相比其他同段位的人简直差到姥姥家去了。这里面其实是有原因的。他的队友让他选法鸡,往死里针对对面的托比昂。他干的很出色:对面的炮台头都被打烂,他们队就因为这个赢了。可是他整场除了炮台外没杀过几个人。同段位的别的法鸡都骑在对面六个人脸上疯狂输出,他却只能打炮台,没刷多少伤害,也没用过几次大招。(记住,匹配系统为了决定你的MMR,监控非常非常多的因素,远不仅仅是人头和伤害这么简单。)结果匹配系统觉得他实际上并不符合这么高的SR。他的数据被调整为:
SR = 3015(↑)
MMR = 2985(↓)
因为匹配系统的职责就是让玩家的SR和MMR相等(来创造公平的比赛),他现在被分到了一支更难获胜的队伍。他继续打,然后输了这场。因为他的队友实在是不行,他拿了五金。然而与被刻意分到劣势队伍的他不同的是,和他同段位的人大多数都在玩公平的理想比赛。而且因为这场比赛里A对面的六个人实在是太强了,他的个人表现就很不理想。匹配系统就觉得A现在的段位太高了。他的数据被调整为:
SR = 2995(↓)
MMR = 2975(↓)
他继续匹配,匹配系统看到他的SR还是高出MMR,就再次故意把他分到劣势队伍里以求让他掉分到合适的段位。他又一次拿了五金。但是因为对面实在是太强了,他相比同段位其他人仍然表现更差,就继续掉分:
SR = 2980(↓)
MMR = 2965(↓)
现在,他开始连掉分(lose streak) 了。退回来想想:如果这名玩家被分进一场公平的比赛,他自然可以像其他人一样发挥,证明自己符合这个段位。然而问题就在匹配系统。系统想把他送到合适的段位,却在这个过程中令他无法发挥自己的真实水平,他的MMR就被进一步下降。在接连又输了几场以后,他的分数为:
SR = 2600(↓)
MMR = 2580(↓)
现在玩家A再一次开始了匹配。虽然他还是被分到劣势队伍,但他现在的段位实在是跟他真实水平相比低太多了,他的个人表现起码可以超出同段位的人了。虽然他的队伍还是输了,但他个人表现还可以,所以他的分数被调整为:
SR = 2580(↓)
MMR = 2580(↑)
他的两个分数终于相等了,匹配系统错误地觉得现在他可以排进质量局了。这种公平的比赛就是匹配系统的目的。现在他这场比赛里双方队伍“旗鼓相当”。但因为之前他掉了太多分,他在如今这个段位大放异彩。他carry整队,拿了六个金牌,碾压对面。他在这个段位,个人表现远超其他人的平均水平。他的分数:
SR = 2600(↑)
MMR = 2620(↑)
玩家A继续匹配,这次被故意放到了优势一队。(因为SR比MMR低,匹配系统试图让他的SR赶上MMR.)但他的优势可不仅仅是所在队伍了。他本人的水平就远超当前段位,于是对面就毫无悬疑被碾压。还是同样的原因。他的水平远超平均
SR = 2620(↑)
MMR = 2650(↑)
这么一来,他获得了一点MMR加成,再次被分进优势队,开始了连胜(win streak). 最后的最后,他的分数回到了故事的开始:
SR = 3000(↑)
MMR = 3000(↑)
现在,玩家A可以被分进质量局了。如果不出意外,他就能一直呆在质量局,直到匹配系统觉得他某场比赛的表现相比平均值更好或更差。于是上面的这个循环就会重新开始。另一方面说,如果他的表现突然远超预期,他就会进入滚雪球式的连胜,继而被送到不符合自己水平的高段位,开始心态爆炸。
你所不知道的暴雪反炸鱼/代练算法
匹配系统内嵌有炸鱼/代练检测。如果系统发现一个账号最近的水平远超它的历史表现,账号就会标记为“有代练嫌疑“。它会被分入一场”测试比赛“,而这场比赛对于这个段位的正常玩家来说是很难获胜的,对于代练来说却是小菜一碟。举个例子:有个五百强正在代练一个2200分的账户。他刚打了几局,匹配系统就发现这个账号的最近表现远超历史战绩。于是匹配系统创建了一场测试比赛。这场比赛对于一个真正的2200分玩家来说很难,但五百强却可以无压力carry. 如果这场打赢了,这个账户就会被标记为”确信代练“。这个标记的目的是让那些炸鱼的五百强不会影响正常玩家的游戏。这个代练之后的比赛里,队友也全都是被标记为“炸鱼代练”或MMR远高于SR的人。问题是:这支队伍这么IMBA, 那对面都是什么人呢?我待会就会讲到。
现在,这个代练把2200分的账户打到了3000分,号归原主。账号的主人登进游戏,开始打排位。匹配系统给的比赛还是很简单,但系统已经发现,这个账号的水平现在达不到正常的3000分水平了,也比它之前打的几场比赛水平要低。系统还注意到,这个账号之前已经被标记为炸鱼/代练了。如果这个玩家继续以不到3000分的水平、也不到此账号之前几场的水平打比赛,这个账号就会被标为“需要掉分到被标记为代练前的水平”(差不多2300分左右)。现在这个玩家就会被分进几乎无法获胜的比赛。他的队友是谁?其他代练结束、需要掉分的人,以及MMR远低于SR的人。这些人,就是前文提到的炸鱼/代练者的对手。所以算下来,炸鱼号和代练就会被排在故意掉分、输比赛的人的对面。暴雪的理想情况是这样的:那些故意掉分来带其他人的人,都会被标记成需要掉分,并被排在那些代练账户的对面。故意掉分的人和炸鱼代练就会在一起玩。因为这些不良玩家都被分在一起,其他正常玩家就不会遇到他们。这就是暴雪的设计思路这方法有的时候还是挺起作用的,但也伴随着巨大的问题。真的是巨大。
问题是这样的:你把炸鱼代练从正常玩家里拿出来,把他们分到一队,让他们尽快到达他们想去的天梯段位。与此同时,他们根本就没炸到真的鱼——他们“炸”的都是那些本来就想掉分的,或是代练结束的账号。这个机制听起来很不错,但是实际情况根本就不是这么回事。记得那些标记吗?连胜/连败标记、代练/炸鱼标记,这些标记的触发时间是不恰当的。这就是为什么你看官方论坛上全都是什么匹配系统有问题之类的帖子。很多人都在讲什么不自然的连败(连胜连败当然是自然的,所有人都知道)。问题是,这些人干了对队伍有利的事情,但在匹配系统看来却是毫无利处的游戏行为。还是那个例子:法鸡拼命针对炮台,虽然可能打不死几个人、整局下来没有多少伤害,但对于队伍而言可能非常有帮助。在匹配系统那看来,这却是“不理想的”游戏行为。这个人再多做几次同样的事情,可能就会被排入连败局。
总而言之
下面这是总结:你最近的几场比赛数据,在和同段位的其他人作比较后,将会决定你下一场比赛的队友水平如何。全金牌仅仅代表你在那一场比赛内比队友打得好,并不说明你超出了同段位平均值。所以如果你连着几场比赛都是四金,然后突然被排入一支很明显处于下风的队伍,这个意思就是你前面几场所用的英雄表现没达到其他人的平均水平。也有可能是你没有达到暴雪所看重的隐藏指标之一:武器准确率、所受到(不是造成)的伤害、与队友的距离等等)还有很多很多我们不知道的。
这个机制有很多问题。如我们在第一个例子里看到的,如果你被故意分入一场劣势比赛,你就很难自我发挥。你在劣势下打出来的数据是和那些质量局的数据做比较的。当然,如果你打了一场质量局,你的数据肯定比同段位的劣势局玩家打出来的好。这就产生了雪球效应。现在,我会告诉你你怎么避开这些陷阱。绝对绝对不要单排。你单排的话,匹配系统用它拙劣的算法操控你的分数就会很简单。如果你在开黑,车队的人数越多,匹配系统分队的难度就越大。如果你在前几场个人发挥不错,MMR上升,而你小队里的朋友发挥失常,MMR下降了,匹配系统把你们俩推到各自的“理想分数“就不是那么容易了。
如果你在单排,正在连胜,就和队里其他人一起排,不要停。如果你单排开始连败,记得避开当前玩家。你的MMR已经低于你的SR了,所以你被分进的游戏都是劣势局。如果你之后的比赛里混进了上一场的玩家,匹配系统就可以更轻易地比较你和那些人的水平。如果你避开匹配,虽然你还是会被分进劣势局,但起码因为玩家不一样了,匹配系统会变得不那么确定,“公平比赛“几率就会上升。如果你正在连败,你的MMR可能会远低于你的SR, 可能你得再打4~5场劣势局才能开始被排进正常局。这会是个非常艰难的过程,因为就像我上面提到的一样,你们这队全都是菜鸡,对面都是大神。
还有一个问题就是,游戏中有些对局势很有帮助的操作,但匹配系统不会这么认为。就像上面那个例子,法鸡针对托比昂。她的贡献让队伍赢得了比赛,自己却被惩罚,紧接着开始掉分。
所以为什么暴雪这么干?
我没法回答所有问题。我觉得他们的初衷是好的——把普通玩家和代练/炸鱼/掉分分开,有些时候这个方法也的确起效,但它有些巨大缺陷,造成了玩家的困惑与不解。还有个可能性就是暴雪想要控制天梯上的玩家走向。
常见问题与解答:
为什么我感觉当我玩的更好的时候,我的队友就更菜?
这是个很敏锐的观察。有两种原因:
1.你的账户被标记为需要掉分,然后你就被和那些菜到抠脚的玩家排到一起。他们真的是太菜了,你轻而易举就能四金,然后你对自己表现的评价就出现了差错。虽然在你看起来自己真的是玩的很好,但是实际上只是因为队友太菜了。
2.当匹配系统想创建质量局的时候,它先把你和类似段位的人凑起来,然后开始调查每个人的战绩来分队。比如说,匹配系统召集了12个人来创建比赛。它会根据个人表现来公平分队。它先找到最好的玩家,确保他们不是全在同一队。然后再找最差的,均匀分在两队里。但这只是一种情况。还有些时候对面六个全是表现平平的玩家,而你这边却是你一个人带其余五个不咋地的队友。匹配系统觉得你表现比一般人好,应该可以carry他们五个人,与对面旗鼓相当。这真是个差到不能再差的主意。这意味着,你必须像喂饭一样保着你的五个队友,仅仅为了打一场公平的比赛。你会感觉好像自己发挥十分到位,最终却却以微弱差距落败。正确的匹配算法应该怎么做?它应该找来12个SR/MMR都差不多的人,随机分出两队,并假设这些人的水平都一样,毕竟他们段位都一样嘛。最终匹配系统就会自动达到一个精准的状态,而不是像现在这样充满人为操控。
如果你说的都是实话,为什么暴雪说匹配的比赛都是公平局,没有刻意操控?
在暴雪自己看来,他们做的的确是公平的比赛。他们把他们认为的欠佳/超常玩家都推向各自应得的段位,这样所有人都能被排进各自段位的质量局。暴雪一直在说,我们一直都在匹配质量局,因为这就是他们真正觉得自己在做的。问题是他们这些质量局究竟是怎么匹配出来的?这个算法简直是臭到不能再臭。暴雪也知道,要是他们公开匹配系统的细节,玩家就可以恶意利用这些机制,所以他们不能说。
我发挥真的非常好,绝对比同段位内玩家都好,但队友还是一帮智障。这是什么情况?
你虽然表现很好,但可能是没有达到暴雪预期中的某些细节指标。你也许离队友太远。你虽然死亡数可能很少,但给对面送了太多能量。或者你干了些什么事情,令匹配系统错误地觉得你是个差玩家。
你是不是说,当我被标记成需要掉分以后就完全没有赢的可能了?
不是的老铁,我说的是,你的胜率会大幅下降。如果你在这种情况下都赢了,你就会获得一个巨大的MMR加成,甚至可能会直接中止连败。祝好运,赢这种比赛真的是非常非常难。一般只有宗师段位以上才能做到,当然如果你开自瞄挂的话算我没说。
所以你告诉我,玩家是不是都在他们的正确段位?
很多都在,也有很多不在。匹配系统有的时候工作正常,但还是有把玩家错误送到太高/太低段位的可能性。
所以你在说,守望这整个游戏都是被操控的咯?
不完全是。你要想达到暴雪的那些隐藏评判指标自然需要个人实力,这就是为什么大多数高段位的人都理应位于那个段位。只要你到达了匹配系统认为你符合的段位,你接下来的游戏就会是质量局,没有什么操纵。但如果你正在处于连胜/连败,你打的每一场比赛便都是被刻意操纵过的。匹配系统非常复杂,可变因素非常多,不应该说整个系统都是刻意操纵。这个系统更像是a child who has been hit in the face with board。 * 楼主:不知道怎么翻译...
以上就是我的理论。我已经测试过它,现在可以预测我何时会进入连胜/连败,还可以预测我的下一场比赛的难度。大多数时候,我在开始下一场比赛之前就会知道,这场是输是赢。
我想再次申明,我请求各位把这篇文章从头到尾读完。然后忘掉这篇文章,去打排位,自己观察一下。你会发现,这就是真相。请不要误解这篇帖子的意图。我很爱玩守望先锋。我相信Jeff可以修好匹配系统。他是好人。