開発者の洞察:「ハースストーン マーセナリーズ」PvPのレーティングとマッチメイキング
皆さん、こんにちは!私はティエン、「ハースストーン」チームのリード・データサイエンティストです。今回のブログ記事では、新ゲームモード「マーセナリーズ」のPvP「闘技リング」でのレーティングやマッチメイキングの詳細についてお話しします。
「マーセナリーズ」のレーティング&マッチメイキングシステムは、これまでのゲームモードの中で最も複雑なレーティング&マッチメイキングシステムです!しかしその核となるのは、2つのシンプルなアイデアでした。
- レーティングについての主な目標は、傭兵のレベル、能力/装備のレベル、チーム構成などではなく、プレイ時間の経過に伴い培われるプレイヤースキルを最もよく表す値にすることでした。
- また、マッチメイキングについての主な目標は、レーティング、傭兵のレベル、能力/装備のレベル、パーティの兵種などを考慮して、適度な待ち時間で「公平な」マッチを実現することでした。
ゲーム後のレーティングの更新や、マッチメイキングフェーズでの対戦相手探しには、あなたのレーティング、傭兵のレベル、傭兵の能力/装備のレベル、パーティの兵種構成、対戦キューでの待ち時間の長さなど、いくつかの要素が影響します。その一つ一つについてお話しましょう。
レーティング
バトルグラウンドやデュエルと同様に、このシステムには「内部レーティング」と「外面的レーティング」の2つのレーティングがあります。
内部レーティングは、あなたの現在のスキルレベルがどの程度かという見解を示す値であり、各シーズンの開始時にリセットされることはありません。序盤の導入部分のゲームを何度かプレイした後にセットされ、その後はプレイしている時間に伴い(あるいは闘技リングから長い間離れていても)ゆるやかに修正されていきます。この値は皆さんの目には見えません。
外面的レーティングは皆さんの目に見える数字で、これは各シーズンの初めにリセットされ、シーズンごとに有意義な報酬と進行度を追加します。また、シーズン中に多くのゲームがプレイされることで、あなたの現在のスキルレベルに対する我々の見解をより正確に表すようになるはずです。
ランキングは外面的レーティングを使用し、マッチメイキングは内部レーティングを使用します。自分と相手の内部レーティングの食い違いは、各試合前に相手に対する自分の勝率を予測するための重要な要素となります(その他の要素については後述します)。そして、その勝率を実際の結果と比較して、レーティングの変化値を算出します。
デュアル・レーティングシステムの基礎知識については、以前のバトルグラウンドのブログ記事(https://playhearthstone.com/ja-jp/news/23523064)をご参照ください。
傭兵のレベル
味方パーティの個々の傭兵のレベルは、試合後のレーティング更新と、試合開始前のマッチメイキングの両方で大きな役割を果たします。例えば、システムはあなたと同等のレベルの傭兵団と対戦することを優先しています(特に、レーティングや他のファクターが同じ場合)。しかし、よりレベルの高いパーティの相手とマッチングされれば、その分あなたの勝率は下がる傾向にあります。その代わり、試合に勝てばより多くのレーティングポイントが与えられ、負けてもより少ないポイントしか失わないということになります。
もちろん、両プレイヤーのパーティのレベルが完全に同じになるとは限りません。我々は、そのようなよくある状況が発生した場合の評価式を作成しました。数学的に言うと、この計算式は、自分のパーティの傭兵の最大レベル、平均レベル、ばらつき、歪度を考慮して、その特定の傭兵パーティの強さを示す「プロキシ」を生成します。我々はそれを「レベルスコア」と呼んでいます。
各ゲームの後、あなたのレベルスコアは、あなたの相対的な内部レーティングや、この記事で説明したその他の事柄とともに考慮され、そのゲームであなたがどれだけレーティングを獲得または失うかを決定する「レーティング補正値」を提供します。
傭兵の能力グレード
各傭兵の能力のグレードもまた、マッチメイキングとレーティングシステムの両方で考慮されています。パーティのレベルスコアと同様に、傭兵の能力の強さを表す「能力スコア」が算出されます。その能力スコアは、非線形関数によって変換され、対戦相手に対する勝率の予測や、ゲーム後のレーティング更新の計算に役立てられます。
なお、自分と相手の傭兵のレベルが全て最大の場合、能力スコアの影響はかなり小さくなります(リリース時のレベルキャップは30です)。そのような状況下では、相対的な内部レーティングを含む他の要因がより重くなります。
傭兵の装備グレード
傭兵の装備に関するスコアや勝率の算出アルゴリズムは、前述の能力グレードに関するものと非常に似ていますが、パラメータが異なります。大きな違いは、あなたは傭兵に装備を持たせなくてもよい、という点です。装備していない場合、その傭兵は「グレード0」の装備を持っているように扱われます。
傭兵の兵種
ご存知の通り、マーセナリーズには戦士、術師、護衛の3種類の「兵種」があります。それぞれの兵種は、特定の兵種に2倍のダメージを与え、別の兵種から2倍のダメージを受けます。
傭兵の兵種の選択は、試合後のレーティング更新には影響しませんが、マッチメイキングの段階では影響します。その影響は、パーティのレベルや能力・装備のグレードに比べてはるかに小さいものですが、我々は兵種を考慮することにより、例えば「戦士6人vs術師6人」や、「護衛6人のミラーマッチ」など、楽しくないプレイになりそうな極端なマッチングが発生する確率を下げています。これを実現するために、我々は数学における「情報エントロピー」の概念によく似た考え方を採用しています――エントロピーが大きいほど、傭兵の兵種の構成に多様性があることになります。そして、そのエントロピースコアに特性関数を乗算し、極端なマッチングのケースだけが影響を受けるようにします。我々の目的は、プレイヤーには好きな傭兵で遊ぶことを楽しんでもらえるようにしつつも、モードの中核である兵種システムについても考慮するモチベーションとなるような、適切なバランスを見つけることです。
待ち時間とAI対戦相手
キューに入っている状態での待ち時間は、マッチメイキングシステムにとって重要な要素です。ゲームを楽しむには精度の高いマッチングが重要ですが、非常に長い待ち時間は、ネガティブなプレイ体験を生む傾向があります。「マーセナリーズ」のマッチメイキングシステムでは非常に多くの変数が考慮されているため、我々はマッチメイキングで最適な対戦相手を見つけるのに非常に時間がかかるという状況を避けたいと考えました。
現在の「マーセナリーズ」では、キューの時間が1~1.5分を超え、内部レーティングと外面的レーティングの両方が一定の閾値を下回っていると(外面的レーティングの閾値は7000です)、あなたはA.I.の対戦相手とマッチングされます。この閾値は、よりカジュアルなプレイヤーはあまり待たず気軽にプレイできる一方で、熱心なプレイヤーがランキングのトップを目指して互いに競い合えるようにするためのものです。
現時点ではA.I.の難易度は1つしかなく、A.I.対戦相手の難易度の調整は、プレイヤーの内部レーティングに合わせてA.I.のパーティのレベルを調整することで行っています。もしあなたのパーティの傭兵のレベルの高低差が大きく、A.I.対戦相手とマッチングされた場合、A.I.のチームはあなたのパーティの平均レベルを算出するのではなく、あなたのチームメンバーのレベルをミラーリングしてから、あなたのレーティングに基づいてA.I.パーティのレベルを調整します。試合後のレーティング更新は、対戦相手がA.I.だったか否かによっても影響されます。
追記
レーティングの更新やマッチメイキングにおいては、どの傭兵がどの能力と装備を持って闘技リングに入るかを具体的には考慮していません。同じレベルで、能力や装備のグレードも同じ2つの傭兵パーティは、同等のものとして扱われます。ティランダとレクサーのどちらが「本質的に」強いかとか、よりメタなのかということは計算されません。我々は、そういう類の有利不利はコミュニティのために残すことにしたのです。
最後になりますが、このレーティング/マッチメイキングシステムを制御するハイパーパラメータは数多くあり、そのほとんどは予測型のAI対AIのマッチアップのシミュレーションを大量に実行することで得られたものです。リリース後もレーティングシステムやマッチメイキングシステムを注意深く監視し、ライブデータに応じてアルゴリズムや変数の値を更新していく予定です。フィードバックはいつでも歓迎しています――レーティングやマッチメイキングに関するコメントをお寄せください。
パーティを編成し、闘技リングに行き、ランキングを登るのをお楽しみください。それではまた、酒場で会いましょう!