【CEDEC 2018】『グリムノーツRepage』から見る遺伝的アルゴリズムのゲームバランス調整における事例とその可視化…客観的“事実”を“真実”へと変化させていく手法
コンピュータエンターテインメント協会(CESA)は、8月22日~24日の期間、パシフィコ横浜(神奈川県横浜市)にて、国内最大のゲーム開発者向けカンファレンス「コンピュータ・エンターテインメント・デベロッパーズ・カンファレンス 2018」(CEDEC 2018)を開催した。
本稿では、8月23日、スクウェア・エニックスのテクノロジー推進部の眞鍋和子氏と淡路滋氏が登壇したセッション「AIによる汎用的バランス調整とその可視化: グリムノーツRepage PvPの事例」のレポートをお届けしていく。本セッションでは、『グリムノーツ』における遺伝的アルゴリズムを利用したバランス調整の説明が行われた。
▲スクウェア・エニックス テクノロジー推進部 AIユニット AIエンジニアの眞鍋和子氏(写真左)と、スクウェア・エニックス テクノロジー推進部 オンラインユニット オンラインエンジニアの淡路滋氏(写真右)。
■遺伝的アルゴリズムを用いる利点とは
『グリムノーツ』のパーティー構成は4人の主人公を設定し、それぞれに2人のヒーローを設定するものになっている。ヒーローごとに武器や衣装など設定も可能で、それらを含めると膨大なパーティーの組み合わせが用意されている。これだけの組み合わせが存在すると、中には強すぎるパーティーが生まれるという可能性も十分に存在する。しかし、全ての編成を手動で試すのは困難であり、効率的にこれを発見する手段が必要になる。
眞鍋氏は、強いパーティーというのはゲームにおいて少なからず1つ以上の強い要素をかならず含んでいると語る。そこで、強いパーティーを効率的に作成していき、その要因となっているバランスブレイカーを発見するというのが、『グリムノーツ』で行われている遺伝的アルゴリズム(GA)を用いた手法のおおまかな流れになる。
強いパーティーを遺伝的アルゴリズムで発見するために、はじめにランダムなパーティーを作成する。ある程度どのような編成が強力になりやすいかの見当をつけることもできるが、あえてランダムの状態からスタートすることで自分たちの知らない強力な組み合わせの発見を狙っているとのこと。
▲パーティーごとに評価値が付けられ、そのパーティーを遺伝子として変換。その遺伝子同士を掛けあわせ、新しいパーティーが作成される。これが繰り返し行われ、強い組み合わせの発見を行う。
一度遺伝子に変換することは二度手間のように見えるが、変換を行うことで汎用性が向上するとのこと。例えば、パーティーの構成やそれ以外の組み合わせ問題、延いては『グリムノーツ』以外のタイトルにまで活用でき、それらに最小限の作業での対応が可能となるそうだ。
分析に必要になるのは、バトルプログラムだ。利用するのは実際のバトルプログラムと同様のものだが、以前まではモデル化されたプログラムが利用されていた。しかし、それでは結果が本物のデータより劣るという差異が目立ち、進化がうまくいかない時、原因の究明が困難な状態だったとのこと。そこで実際のバトルプログラムを利用することで、この問題に対応した。また、このことで後にバトルのリプレイをすることが可能になり、高い納得感が得られるようになったそうだ。
▲GAを利用する利点は、シンプルで扱いやすく、有限の時間の中で精度の良い結果が得られる点だ。早急な対応が要求されるアップデートでは、現実時間との折り合いをつけられるという部分が大きいようだ。
■リターンを担保してコストを抑えてAIを活用
『グリムノーツ』にはPvPとPvEが存在する。今回の検証では単純に強いパーティーの発見をしたいので、PvEでは戦闘時間の短さと敗北時の与ダメージ数、PvPでは勝点と体力割合を見て判断を行う。PvPにはユーザー同士による戦術が存在するが、これは不規則なものであるため判断材料からはあえて除外されており、AIは自律的に戦術を組み立てる。
▲似たゲームでも評価関数が大きく変動する場合がある。強力だがアイテムを消費する、コンボによって報酬が異なるなど、複雑になるにつれて調整は難しくなってくる
検証時の対戦については、当初はAI同士による対戦で評価を行うという案があった。しかし、これはお互いの初期状態のキャラクターがランダムで弱いものであるため成長が遅く、様子の確認に時間がかかる問題点のため見送りとなった。現在は実際のプレイヤーとの対戦を元に評価を行っているが、時間に対する問題解決については並列で同時に検証を行い、高速モードの実装などを利用して速度を向上させている。これで現実的な時間にはなっているが、まだまだ改良の余地ありといった状態になっているとのこと。
▲高速モードはゲームに後から実装された。こうした後付けの実装は初期のゲーム作りの形に依存するため、開発初期から実装を予定した計画を行うのが望ましいそうだ。
AIの導入そのものについては、学習を用いた便利な面が多い一方、開発に直接影響しない作業工数が増えるというデメリットも持っている。良い効果をもたらすかは検証の結果次第にもなるため、確実に結果を出せる保証があるわけではないとのこと。そこで、自動テスト運用してリターンを担保しておくことでコストを抑え、そこからの発展内容としてAIによるサポートを行うという流れが理想ではないかと、眞鍋氏はまとめた。
■AIによる検証の落とし穴とその対応
続いては、スクウェア・エニックスのテクノロジー推進部オンラインエンジニアの淡路氏がスピーカーとなる。ここでは、AIの評価によって強いと判明したパーティーがなぜ強いのかを理解する点についての説明となる。PvPにおいては安定した勝利ができるパーティーが望ましいが、高速勝利を目指した組み合わせも1つの正解として捉え、そちらの方向に進んだ検証を行ったとのこと。
▲検証の結果、しっかりと相手を先に倒しきることを目的とした攻撃的なパーティーが作成できた。試合は最大150秒だが、21秒で勝利した組み合わせとなっている。
しかし、この1試合より視野を広げて見ると、各組み合わせの試合時間の中で1つだけ突出した部分が見られる。これが継続して続いてないことから、この時点で進化が停止してしまったことがわかるとのこと。詳細な結果を見ると、最速タイムが出た際には偶然相手のHPが少なかったということがわかった。敵の強さは変わるのに絶対評価である速さを変更しないと、評価が破綻してしまうということを表している。
改善案として、5戦を1セットとして勝率を見る形に変更が行われた。これで今回のラッキーな勝利の影響を減らすことができるようになったとのこと。他にも、実際のトップランカーを敵として採用し、固定できる基準を設定した。
これまでの内容における可視化とはなんだったのか、という点をまとめると、客観的“事実”を“真実”へと変化させるものだったと淡路氏は語る。攻撃的パーティーが作られた後の進化は止まってしまったが、攻撃的編成が強いというトレンドが生まれたというポイントは抑え、確実に進化は行われたという良い点として捉えたとのこと。良いことも悪いことも正しい理解を行うために、可視化は必要だと述べた。
▲研究データを正しく評価するのは簡単なことではない。研究者が1人で背負い込むのではなく、可視化の専任者と協業して行っていくべきだと淡路氏は語る。
▲AIに強いと評価されたパーティーのリプレイ動画も紹介された。必殺技を撃ち続け、全体の7割近くのダメージを稼いでいることがわかる。こうしてリプレイを見ることで実在感、納得感を得られる。こうした利点から、リプレイ機能は可視化において必須機能となってくるようだ。
▲縦の比較フォーマットでは、簡易的にパーティーを表示することでどのキャラクターが活躍しているのか確認がしやすくなる。これにより単純に強いキャラクターだけでなく、縁の下の力持ちになっているキャラクターの発見なども行えるようになる。
淡路氏は「何を発見したいかによって最適な可視化の形は違ってくる」と、ゴールの設定の重要性を語る。今回のセッションで出た“最強メンバー”を発見することと“最強パーティー”を発見するのでは最適解が大きく異なってくる。
▲可視化を行う際にはSQLは必須。機械学習的ライブラリが必要ならPython/Rの導入も視野に入るとのこと。時間を取るべきなのは可視化ではなく分析になるので、ハイコストと引き換えの柔軟性はメリットとは言い難いそうだ。
可視化を行う際にはデータに興味を持つ熱意と呼べる部分も重要になってくるとのこと。AIを使っても、まだその段階ではそれはデータの山でしかなく、それを宝の山へ変換し、もっとそれを見たいと思える人が可視化を行うのに向いているのではないかと考えているそうだ。
最後に淡路氏は本セッションで述べたことをまとめた。まずはシンプルに強いパーティーを完成させ、それを基準としたバランス調整を行うことが必要と語った。そして、可視化をするにあたり、リプレイや相対的な数値比較によって結果の実感を得られるようにすることで、データの価値を高めることができることで効果的な検証ができると述べ、本セッションを締めくくった。
(取材・文 ライター:セスタス原川)
■『グリムノーツ Repage』
© 2016 - 2018 SQUARE ENIX CO., LTD. All Rights Reserved.
会社情報
- 会社名
- 株式会社スクウェア・エニックス
- 設立
- 2008年10月
- 代表者
- 代表取締役社長 桐生 隆司
- 決算期
- 3月
- 直近業績
- 売上高2428億2400万円、営業利益275億4800万円、経常利益389億4300万円、最終利益280億9600万円(2023年3月期)