見出し画像

Halo のスキルとマッチングシステムについて書く②

前回

 Halo におけるスキルがどのような数字で、どのような意味を持ち、どのように計算されるかを見てきた。ここから、その数字が Halo で具体的にどう扱われているかについて見ていく。

MMR と CSR

 Halo5 を前提とする。以下 Halo というときは 5 のことを表す。Halo のランクシステムではプレイヤーに対しCSR と MMR という2つの数字が与えられる。CSRはプレイヤーがゲーム画面上で見られるランクのことで、ブロンズからチャンピオンまであるレーティングのあれである。チャンピオンとオニキスを除くそれぞれのティアは6分割されている。オニキスのみ1500というレーティングの具体的数字が与えられ、そのポイントの上位200人がチャンピオンとなる。実はブロンズからダイヤにもポイントがあり、それぞれ300ポイントの幅を持つ。すなわち、CSR は一つの連続した値であり、ブロンズ=0ポイントから始まり300ポイントごとにティアが変わっていく仕様になっている。ちなみに、このブロンズ1の0という値はレーティングが自然数だから0なのではなく、ゲーム開始直後の TrueSkill の初期値 N(μ=25, σ=25/3) から算出されている。CSR は TrueSkill によって計算された期待勝率が50%のときに ±15 ポイントのやり取りを基準として増減する。したがって、期待勝率が高いマッチのときは勝敗によって +10/-20 のような重み付けされた増減がなされる。ただし、オニキス以上のプレイヤーは ±5 を基準とする。もう一つの MMR は前回説明した TrueSkill で計算されたプレイヤーの期待勝率を表す数字である。
 ここで最も大切な点は CSR と MMR がそれぞれ独立して変動する点である。つまり CSR = MMR の値ではない。MMR はプレイヤーの未来のパフォーマンスを示し、CSR はこれまでのパフォーマンスを示すように設計されている。なぜなら CSR はプレイヤーが直接見られる値のため、過去すなわちこれまでの戦績を示す値となっており、MMR の示す想定パフォーマンスはそれが現実とは限らないからである。より平易な表現をするなら CSR が実績を示し、 MMR が目標を示すと言い換えられる。したがって、MMR の想定通りのパフォーマンスを実際のマッチで常に発揮できていれば、CSR は MMR へと近づいていく。この状態を正確にスキルが推定できている状態という。この関係性と増減幅を固定化していることから、 CSR は MMR に比べて値が大きく変動しにくいという特徴を持ち、極めて直感的なランクの表現ができる。一方で、MMR は降格保護や増減幅が定められておらず値の増減が非常に激しい。ここにとあるプレイヤーの MMR の変動を記録したグラフを示す。

画像1

CSR が1戦につきせいぜい ±15 程度の増減であるのに対し、MMR は数戦で200以上増減している様子が見て取れるだろう。この増減の激しさはともすればいい加減と捉えられるかもしれないが、感度がいいとも捉えられる。すなわち MMR は一戦一戦の結果から次の期待勝率を正確に測ろうとすることを意味している。なお、この増減幅は TrueSkill のアルゴリズムにより、経験した試合数が多くなっていくほど狭まる。より厳密に言うとスキルの事後周辺確率の分散は試合数と反比例する。しかし、この例に示したプレイヤーはオニキスであることから、十分な試合数を経たプレイヤーでもこのレベルの増減をすることに注意したい。

+1/-9

 さて、この増減の激しさや降格保護などが一切ないことから、MMR と CSR が乖離する場合がしばしば見られる。例えば、自分がオニキスのときに連続で数回負けると、最悪でも CSR は -10 を数回分程度の減少にとどまるが、MMR はそれとは比べ物にならないレベルで減少する可能性が十分ある。後述するが、マッチメイキングは CSR ではなく MMR をもとに同スキルのプレイヤーを探すため、こうなった場合は MMR が公平で CSR が公平でないマッチングが起きる。このときの CSR の上下について触れておく。このマッチに勝利した場合 CSR はほとんど上昇しない。なぜなら、CSR は敗北時の下がり幅が小さかったため、その試合時点での MMR に対して高い値となってしまっているからである。MMR と CSR は近い値を取っている状態が理想なためこの2つの値は近づいてなければならない。このマッチに勝利したときは、互いの期待勝率が近いことから MMR はそれなりに上昇するため、CSR の上昇を抑えて MMR を CSR に近づける挙動をして乖離を補正する。また、敗北した場合は CSR は当然減少するが、 MMR も同様に減少するため乖離は是正されない。結果的にこのときの試合は相手の CSR に一切関わらず 勝利時+1/敗北時-9 となる可能性が高い。前回記事で期待勝率が 90% のとき MMR が10戦9勝で維持される +1/-9 の事例を挙げたが、 CSR の +1/-9 とは根本的に異なる現象であることに十分注意する。そもそもランクマッチでは MMR が公平になるようにプレイヤーを募るため、期待勝率90%のマッチングは基本的には組まれない。
 この MMR が CSR に比べて低下した状態にあり、その乖離を是正するために CSR の上昇を抑え裏の MMR のみ上昇させるという仕組みは、理論上正しいとは言え UX としてはゴミである。一見、この乖離の原因は TrueSkill のアルゴリズムにあると感じるが、個人的にはこの劣悪な UX は主に CSR のオニキス帯のポイントを可視化したことに起因すると考える。TrueSkill はこれまでもマッチメイキングに使われていたことから、MMR と CSR の乖離はシリーズを通して起こっていたと予想されるが、CSR のポイントを可視化していなかったために +1/-9 という数字をプレイヤーが見ることはなかった。しかし、5 ではチャンピオンという相対的なレートを入れたために、ボーダーを示す意味でオニキス帯のポイントを可視化せねばならず、ランクの停滞が +1/-9 という露骨な数字となって現れてしまった。また、TrueSkill はかなり正確にスキルを推定できるため、それをベースにしたマッチングでは +1/-9 で納得できるほど期待勝率に差があるマッチは当然組まれない。その結果、常に同等レベルの敵と戦いながら、プレイヤーに見えない MMR が適正に戻るまで +1/-9 の CSR を見続けなければならない状況に置かれる。この問題は Forum でも Twitter でもかなり多く言及されている。その説明の一環として MMR と CSR の関係がわかりやすくことから個人的には悪くはなかったが、当のプレイヤーからしたらたまったものではなかったろう。

マッチングメイキングの仕組み

 最後にマッチメイキングの仕組みについて少し書く。ただし、マッチメイキングのシステムは定期的にアップデートが入り、アルゴリズムなどが細かく調整されるため、ここに書いてあることが今も実施されているわけではないことに注意。例えば、プレイ人口にかなり依存する要素のためプレイヤーが全くいないであろう今の Halo と、新作が出始めた直後の Halo のシステムには少なからず違いがあるはずと考えられる。
 先程も触れたように Halo のマッチングシステムは、MMR をもとにして各参加チームの期待勝率が可能な限り50%に近づくようにチームメイトを選ぶ。その際、MMR 以外にも見ている点がある。それがラグとマッチングの待機時間である。このあたりは詳細な記述がまとまっていないため Josh の Forum の書き込みをもとにしているが、つい先程も述べたように最新版とは限らない点には十分注意されたい。ラグは各地域のサーバに対する ping から判断し、一定以上の速度が出ないサーバは検索から外している。検索対象のサーバ内(優先順位があるかは不明)から自分からある程度の範囲内にある MMR のプレイヤーを探してマッチングする。見つからない状態が5分続いた場合、MMR もしくはラグの許容範囲を広げて再度プレイヤーを検索する。ちなみに、ティアが明らかに離れたプレイヤーとマッチングする理由はこれである。また、Halo5 には集中と拡大という2つの検索モードがある。集中はラグの許容範囲、すなわちサーバの検索対象を5分以上経過しても広げないようにする。また、それと同時に、MMR の許容範囲の限界付近にいるプレイヤーが見つかっても、ある程度の時間を待つまでそのようなプレイヤーとマッチングさせず、よりよい条件のプレイヤーを探し続ける。拡大についての具体的説明は見つからなかったが、集中の逆だとすると、マッチング開始当時からラグの許容範囲と MMR の許容範囲を広げる可能性が高い。また、MMR の許容範囲となったプレイヤーと即時マッチングさせ、よりよい条件のプレイヤーの検索を放棄する仕組みだろうと予想される。

あとがき

 TrueSkill について調べたことをまとめた。また、それに付随した CSR とマッチングシステムについてもまとめた。TrueSkill 以外にここまで調べられたのは、Forum に集まり熱心な議論を常にし続けていたプレイヤーたちと Josh のおかげである。Halo 5(もしかしたら4かも)は、プレイ人口の激減、コミュニティの衰退、それに伴ってか新作も長らく出ず、Infinite がアナウンスされてからもエンジニアが辞めまくる噂など、Halo 衰退の象徴になったと感じる。そんなゲームにも関わらず、今でも細かい議論を重ねているプレイヤーがいることは驚嘆する。願わくは Infinite で多少なりともコミュニティが盛り上がってほしいがどうなるだろうか。

参考

https://www.halowaypoint.com/en-us/forums/58b8518e005f432381ab99fbcaf931e0/topics

この記事が気に入ったらサポートをしてみませんか?