Pular para o conteúdo / Skip to content
mmr 匹配机制 elo 排位

MMR是如何运作的:为什么对局总感觉不公平

发布日期
阅读时间 1 min
两个天平上各放着玩家图标的图形插画,象征匹配机制中的实力平衡

MMR(匹配分,matchmaking rating)是游戏私下维护的一个数字,用来估算你的真实实力,和资料页上显示的段位是两回事。赢了就涨,输了就跌,真正决定你和谁对战、和谁同队的正是这个数字。队伍失衡的感觉几乎从来不是bug——而是系统在你看不见的地方,在平衡性和排队时间之间、在准确度和速度之间做出的取舍。

MMR到底是什么

任何有排位队列的游戏,都会给每个玩家算两个数字,而不是一个:

  • 可见段位——资料页上显示的那个(黄金、钻石、辐能等,或一个分数区间)。这是你展示给朋友看的。
  • 隐藏MMR——服务器真正用来组建对局的数字。在大多数游戏里,界面上完全看不到它。

两者通常同步变化,但不是同一回事。一个玩家可能段位是黄金,MMR却相当于铂金水平——可能是最近连胜,可见段位还没完全追上;也可能是新赛季段位重置了,而通常不重置的MMR还停留在原来的水平。Riot Games对《VALORANT》就公开承认过这一点:MMR和屏幕上显示的段位是”解耦”的,它才是决定匹配质量以及每局分数增减的主要因素。

这个想法从哪来:国际象棋的Elo系统

MMR的直接祖先是Elo等级分系统,由匈牙利裔美籍物理学家Arpad Elo创立,1960年被美国国际象棋联合会采用,1970年被世界国际象棋联合会(FIDE)采用。逻辑很简单:每个玩家有一个数字,两个数字之差可以预测胜率。

预期胜率公式是:

E_A = 1 / (1 + 10^((R_B - R_A) / 400))

举个整数的例子:一名分数1500的玩家对阵分数1700的玩家。差值是200,所以10^(200/400) ≈ 3.16,较弱一方的预期胜率是1 / (1 + 3.16) ≈ 0.24,也就是24%。如果他赢了,能拿到很多分——因为他赢下了一件小概率事件。假设K值为32,涨分约为32 × 0.76 ≈ 24分;如果按预期输了,只会损失约32 × 0.24 ≈ 8分。这就是为什么打赢比自己强的对手,涨分远比打赢同水平的对手多。

现代系统:不确定性问题

纯Elo有一个缺陷,连Arpad Elo本人也承认过:它无法区分一个只打过3场比赛算出的分数,和打过3000场比赛算出的分数——对系统来说,这两个数字的”可信度”是一样的,这并不合理。

为了解决这个问题,更复杂的系统随之出现:

  • Glicko-2,由统计学家Mark Glickman提出(Lichess在用),增加了分数偏差——系统对这个数字有多不确定——以及波动性,衡量玩家近期表现的稳定程度。
  • TrueSkill,微软为Xbox Live开发、Halo等游戏在用,把实力表示成一个带均值(μ)和标准差(σ)的分布。新玩家从μ=25、σ=8.33开始——系统压根还不知道你的水平。每打一局,σ都会缩小,μ也会调整;打过几十局后,σ变小,分数也就不再剧烈波动了。

这解释了每个人都体会过的现象:新账号(或者停玩很久后回归)的头几局,永远是最不平衡的。这不是运气差——是系统的σ还很高,正在尽快摸清你的真实水平,这意味着它宁愿冒险把你和水平远高于或远低于你的人配对,直到不确定性降下来。

MMR和可见段位的差异:各游戏举例

  • 《英雄联盟》——Riot按每个队列(单双排、灵活组排、匹配)分别维护一个MMR,官方文档描述为”无限期隐藏”且参数不公开。它只根据对阵已知水平对手的胜负计算,与KDA或比分无关。
  • 《VALORANT》——分别使用可见的RR(段位分)和隐藏MMR。RR每个赛季重置,但MMR通常不会——这就是为什么新赛季开局,玩家总能可疑地快速爬回原来的段位:真实MMR其实一直都知道他们的水平。
  • CS2——Premier模式展示一个数字化的CS Rating(玩家常用5000、10000、15000、20000这类区间来形容),相当于一个公开的MMR:分数的涨跌取决于对手的强弱——击败评分更高的队伍能拿到更多分,输给评分更低的队伍则会扣得更多。

对局感觉不平衡的五个真实原因

  1. 初始不确定性——新账号或长时间未上线后回归的账号,σ(或K值)较高。系统实际上是在猜测,校准之前会出现不少偏差。
  2. 排队时间与匹配精度的权衡——所有匹配系统都会用精度换速度。如果队列里找不到合适的对手,系统每隔几秒就会放宽可接受的MMR范围,避免让你等五分钟。冷门时段的快速匹配往往更不平衡。
  3. 组队(双人/三人/五人车队)——车队以成员的平均MMR进队,但成员内部实力差距可能很大。一个远高于团队平均水平的玩家会把匹配”拉高”,导致其他队友遇到比单排更强的对手。
  4. 实力被低估的新号(小号/大号打小号)——系统会给新账号一个偏低或中等的初始MMR,即便账号背后的人实际水平已经很高。在MMR”追上”真实水平之前,这个账号会扭曲好几局比赛。
  5. MMR衡量的是概率,不是每一局的公平性——这类系统的目标是让你的胜率在大量对局后趋近50%,而不是让每一局单独看起来都公平。连续输掉3、4局”不该输”的比赛在统计上是正常的——这是一个按结果调整、而非按体验调整的系统必然付出的代价。

没有MMR的场合:朋友间的友谊赛、业余锦标赛、训练赛

在自动匹配之外,没有人替你算MMR——大多数人手动分队时犯的错误也正在这里:仅仅因为”他们总是一起玩”,就把两个最要好的朋友分到同一边。即使没有算法,MMR的逻辑依然可以当作参考:

  • 给每个人打分,而不是贴标签。 不要简单说”厉害”或”一般”,根据你实际见过的水平给1到5分,这是一种粗略的手动打分。
  • 对没见过多少次的人保持谨慎。 一个刚加入的新面孔就是你的”高σ账号”——把他的分数当作临时估计,打完第一轮再调整。
  • 拆开总是一起组队的搭档,就像匹配系统会避免把最高的MMR都堆到本就占优的一方。

如果这些分数已经打好了,只剩下分组这一步,Squadb的分组工具可以根据你输入的水平自动完成平衡分组,而不是盲目随机。

按位置平衡同样重要——在CS2这类游戏里,朋友之间的对局只有各队角色分配合理才会有竞技性,可参考CS2职能解析。《英雄联盟》也是一样,了解每个位置具体做什么,能避免一场友谊赛五人抢同一路。如果失衡出在足球队整体技术水平上,足球队伍平衡指南给出的思路同样适用于球场上的分组。

常见问题

打赢实力更强的队伍能获得更多MMR吗? 是的。预期胜率越低,赢下之后涨的分越多——这是继承自Elo的核心机制。

MMR会像段位一样每赛季重置吗? 大多数游戏不会。可见段位通常会在新赛季重置或”压缩”,而隐藏MMR一般保持不变,这也解释了为什么玩家在赛季初总能可疑地快速回到原有段位。

组队会让每个人的MMR变高或变低吗? 不会直接改变——但一个内部水平差距很大的队伍,往往会遇到按平均水平计算出的对手,这让水平低于平均的人打得更吃力,高于平均的人打得更轻松。