対戦ゲームを続けていると、腕は上がっている気がするのに勝率が5割前後から動かない、という状態に行き当たることがある。その背景にあるのが SBMM だ。Skill-Based Matchmaking の略で、プレイヤーの実力を推定し、近い者どうしを組み合わせるマッチメイキングを指す。
実力の近い相手と当たるようにマッチを組めば、試合は競り合いになり、勝率は5割へ寄る。理屈としては公平だ。それでも、この仕組みを入れたタイトルではほぼ例外なく不満が出る。
不満の中身を「難易度が上がった」と読むと、調整の話になる。だが公開されている設計資料を読むと、別の説明のほうが通りがよかった。SBMMへの不満の多くは強さの話ではなく、自分が上達したことを勝率で観測できなくなることへの不満だ。
上手い人のわがまま説
よく言われるのは、上手いプレイヤーが弱い相手と当たれなくなって不満を言っている、という説明だ。当たっている部分はあるが、これでは2つ落ちる。
上位ではないプレイヤーからも不満が出ること。友人とパーティを組んだときに不満が強くなること。どちらも、上手い人が楽をしたいという読み方では届かない。
マッチメイカーは何を最適化しているか
Respawn Entertainment が2023年1月17日に公開した Apex Legends のマッチメイキング解説は、この仕組みが抱えるトレードオフをこう書いている(EA)。
balance speed vs quality—should we form a match quickly but with higher skill differences, or should we wait a bit longer for more closely matched opponents?
速く組むか、待って揃えるか。この2つの間で調整する、という説明だ。読み進めて意外だったのは、最適化の対象がここまではっきり限定されていたことだった。
Our matchmaking algorithm is only concerned with measuring skill and arranging the fairest possible matches in a reasonable time.
読み始める前は、離脱率やプレイ時間を目的関数に入れているのだろうと思っていた。そうではなく、スキルの計測と、妥当な時間内での公平なマッチだけを見ると書いてある。目的関数に入っていないものは、当然ながら改善されない。上達実感はここに入っていない。
同じ記事は、スキルの定義についても書いている。
player skills need to predict that, on average, squads with higher skill will consistently defeat lower skill squads.
つまりスキル値は、勝敗を予測できることを条件に設計されている。予測が当たるほど良い値だということになる。ここから、不満の出どころが見える。
- スキル値が正確になるほど、組まれる試合は互角に近づく
- 互角の試合が増えるほど、勝率は5割へ寄る
- プレイヤーが上達すると、スキル値も上がり、相手も強くなる
- 結果として、上達しても勝率は5割のまま動かない
上達を勝率で測っている人にとって、この状態は停滞と区別がつかない。実際には強い相手と5割で戦えるようになっているのだが、その差は画面に出ない。
パーティの扱い
友人と組んだときの不満は、もう少し具体的な設計の差から来る。パーティのスキルをチームの実効レートへどう変換するかには、複数の解き方がある。
Apex の記事は、レート2、6、7の3人パーティを例に LOWEST、HIGHEST、AVERAGE、WEIGHTED AVERAGE の4案を挙げたうえで、採用しているものを書いている。
Apex Legends matching algorithm currently uses HIGHEST for Pubs and Ranked. It offers the best protection against matchmaking exploits with new players and smurfs, while safeguarding competitive integrity.
最も上手い1人のレートでチーム全体が扱われる。新規アカウントを使った不正なマッチ操作への対策としては筋が通っている。ただ、レート2の人はレート7の試合に放り込まれることになる。友人と遊ぶほど自分の実力から遠い試合になる設計で、ここは惜しいと思った。
Blizzard Entertainment が2022年12月16日に公開した Overwatch 2 の開発者ブログは、同じ問題を別の方向から扱っている(Blizzard)。
When players group together, there’s the possibility that the group has a larger skill difference than a match we’d typically like to make.
グループのせいでスキル差が広がりうることを認めたうえで、両チームが鏡像になるよう組むと説明している。片方のチームだけが歪む形を避ける解き方だ。
さらに Overwatch 2 は、ロール単位で相手を決めるとも書いている。
We’ll try to find pairs of similarly rated players in each role when making a match. For support and damage roles, which have two slots, each player will be paired with one player on the opposite team.
2作の違いを並べると次のようになる。
| タイトル | 揃える単位 | パーティの実効レート | 出典 |
|---|---|---|---|
| Apex Legends | スクワッド単位のスキル | HIGHEST(最も高い1人) | EA (2023-01-17) |
| Overwatch 2 | ロールごとの対戦相手 | 両チームを鏡像にして相殺 | Blizzard (2022-12-16) |
どちらも公平なマッチを作ると言っているのに、揃える粒度が違う。ロール単位で相手が決まるなら、自分が上達したかどうかを、同じロールの相手との比較として観測しやすくなる。勝率が5割に張り付いても、参照できるものが1つ残る。
自分はこちらのほうを取る。友人と遊ぶ頻度が高い人にとって、片方のチームだけが歪まない形は効く。ただしスマーフ対策を最優先に置くなら HIGHEST の理屈も分かるので、どちらが正しいという話ではなく、何を守るかの違いだと思っている。
この説明が当てはまらないところ
- 両タイトルの MMR の計算式、レンジ、更新頻度は公開されていない。ここで書いたのは公開資料に書かれた設計の方針であって、実装ではない
- SBMM を外した場合に離脱がどう変わるかの数値は、今回一次ソースを確認できなかった。初心者が辞めるからだ、という説明はよく引かれるが、ここでは根拠として使っていない
- 参照した資料は2022年から2023年のもので、現行バージョンでそのまま続いているかは確認できていない
- 人口の少ないタイトルでは、そもそもスキルを揃えるだけの母数がない。Apex が挙げた speed vs quality のトレードオフは、待ち時間の側に倒れる
Overwatch 2 のブログには、もう1つ気になる記述がある。
Your MMR can change even if your personal skill stays the same. This could indicate the general population is getting better or worse compared to you.
自分の実力が変わらなくても数値が動く。上達を数値で確かめようとする人にとっては、勝率だけでなくレートも当てにしづらいということになる。
何を見せるかの問題
SBMM への不満を難易度の問題として扱うと、スキル幅を緩めるか厳しくするかの調整になる。だが公開資料を読むかぎり、開発元が最適化しているのは公平さと待ち時間であって、上達実感ではない。緩めても厳しくしても、勝率が5割へ寄る構造は変わらない。
上達実感を返したいなら、勝率以外に何を見せるかを決めるほうが早い。ロール内での相対順位や、当たっている相手のレート帯の推移。どちらも既存の値から作れる。
Apex の記事が最適化の対象を明示していたのは、この意味で率直だった。何を測っていないかが書いてあれば、不満がどこから来るのかを読者の側で切り分けられる。