
パシフィコ横浜ノースの現地とオンラインの両面にて実施されたゲーム開発者向け大規模カンファレンス「CEDEC2023」。AIを使いゲームバランスを取るための施策を紹介するセッション「AAAゲームバランス調整の次元の呪い:データ効率・ロバストな強化学習」をレポートします。
このセッションには、スクウェア・エニックス AI部のHandy Edgar氏が登壇しました。なお、本セッションにて例として紹介されたゲームタイトルは未発表のAAAタイトルです。

バランス調整AIの目的は「バランスブレーカー」を見つけること
バランス調整は、ゲーム開発において不可欠な要素。ゲームのボリュームに応じてコストが上がってしまいますし、イテレーションも長くなりがちです。同社では、このコストを削減するために強化学習AIを用意し、プランナーの仕事を支援するAIを活用。研究を行うためにはAI部だけでは困難なため、開発部署の柴田伯一氏を筆頭とした社内の様々な部署からの協力を得ているといいます。

バランス調整AIを入れるためには様々な条件があります。それは、ランダムでなく「最適な行動を取りながら大量のプレイ回数を行う」こと、プランナーに提供する「バランス調整に役立つデータの収集」、開発中であるために「新ステージや敵へ自動的に対応できる」こと、そして「素早い学習」の4つです。
本セッションで紹介されたのは未発表のタイトルであり、ゲームプレイ映像を披露することが出来ないため、詳細は図を用いて説明されました。なお、味方と敵がそれぞれ1体から最大5体まで登場する戦闘システムなのですが、本セッションでは一般的なターン制コマンドRPGの戦闘を想像してほしいとのこと(バランス調整のため5体に固定している)。

バトル仕様として、各キャラクターにそれぞれ行動順が示されていることに加え、敵や味方の技の組み合わせでコンボや効果などの効果を持っています。


このバランス調整で目標としているのは「バランスブレーカー」を見つけることと、HPや筋力・魔法などの数値的な「パラメータ調整」、そしてゲームプランナーが意図していなかったゲームデザインを見つけるための「デザインの不具合」です。

バランス調整AI導入の全体図は、オンプレミスのAIサーバーがHTTP接続でゲームシミュレーターと接続してゲームをプレイし、クラウドサーバーへデータを送信しつつ、プランナーがAIサーバーとゲームシミュレーターへコマンドを送る、というものとなっています。


ゲームの難易度については、『Dota 2』や『StarCraft 2』を比較してみると、条件が似ているものの超人レベルのAIが必要ですが、『プロジェクトα』において超人AIが不要ですし、より効率的に学習すべきなことが目標として見えてきます。

開発の制約として、当然のことながら締切があるために、AIの学習が締切に合うようにする必要があります。例えばゲームリビジョン1.0の状態でAIが学習すると、新しい敵やパラメータなど新コンテンツが追加された最新版の3.0において適応出来ず使えません。

加えて、開発中のゲームは不安定であり、シミュレーターがハングアップや強制終了してしまうも起こりえるため、学習データの収集も遅くなってしまいます。また強化学習だけでは解決に辿り付かないため、ここでエンジニアリングが加わります。

学習環境は、AIサーバーにいる各AIがオンプレミスPC内のゲームシミュレーターをプレイして、その結果をデータ収集用クラウドへ結果を転送。オンプレミスPC内にあるウォッチドッグは、ゲームシミュレーターの監視プログラムで、ゲームがクラッシュした場合に再起動を行ってAIの学習をサポートします。

ゲーム自体がターンベースなのでターン毎に計測が可能。AIはゲームシミュレーターからの観測情報を受け取り、それからAIが行動してゲームシミュレーターへ反映することを繰り返し、最終ターンまで継続します。

AIは、敵やプレイヤーの情報を受け取るエンコーダーとプレイヤー1方策を行うエンコーダーの2つのニューラルネットワークで構成。

ここでEdgar氏は、ステージ難易度「イージー」においての勝率と学習回数のグラフを披露。このグラフをよく見ると回数に応じて勝率が一度25%まで上がったと思いきや、瞬く間に急落し、また一定期間を経て25%に到達すると急落という動きを繰り返しています。分析の結果、敵の成長を想定していなかったために、敵が徐々に強くなり、最適な戦略をとろうとしても最終的に(パラメータ的に)勝てなくなってしまっていたのです。
そのため、敵の成長を止めて再度実験を続けると、勝率の上昇を確認。85%台まで上がりましたが、後半になるとまた70%まで下がってしまっています。また、高難易度のステージで勝率が低いことも確認されました。