ゲーム開発に機械学習を活用(1/2)

アプリケーション

1.ゲーム開発に機械学習を活用(1/2)まとめ

・オンラインーゲームの人気は爆発的に高まっているがバランス調整は手間がかかる
・機械学習を使って何百万回ものシミュレーションを実行してバランスを取る事が可能
・ゲーム状態を画像をエンコーディングしてCNNに渡す事で最高のパフォーマンスが得られた

2.機械学習を使ってゲームバランスを調整

以下、ai.googleblog.comより「Leveraging Machine Learning for Game Development」の意訳です。元記事の投稿は2021年3月19日、Ji Hun KimさんとRichard Wuさんによる投稿です。

アイキャッチ画像のクレジットはPhoto by Fausto García-Menéndez on Unsplash

何年にもわたって、オンラインマルチプレイヤーゲームの人気は爆発的に高まっており、世界中の何百万人ものプレイヤーを魅了しています。プレイヤーはゲームが巧妙に作成され、バランスが取れていることを期待しているため、この人気はゲームデザイナーへの要求も指数関数的に増加させています。結局のところ、1つの戦略が他の全ての戦略を打ち負かすようなゲームをプレイするのは楽しいことではありません。

肯定的なゲームプレイ体験を生み出すために、ゲームデザイナーは通常、ゲームのバランスを繰り返し調整します。

(1)テストユーザーによる何千ものテストプレイを行いストレステストを実施
(2)フィードバックを取り入れてゲームを再設計
(3)テストプレイヤーとゲームデザイナーの両方が満足するまで、(1)と(2)を繰り返す。

このプロセスは時間がかかるだけでなく、不完全でもあります。ゲームが複雑になるほど、微妙な欠陥が隙間をすり抜けやすくなります。ゲーム内で様々な役割を演じることができ、それらが相互に関連する数十のスキルを備えている場合、適切なバランスをとることがますます困難になります。

本日は、機械学習(ML:Machine Learning)を活用して、テストプレイヤーとして機能するモデルをトレーニングすることでゲームバランスを調整するアプローチを紹介します。

MLを使ってゲーム用アートを生成する実証実験として以前に示した、デジタルカードゲームのプロトタイプChimeraを使ってこのアプローチを示します。

トレーニングを受けたエージェントを使用して何百万ものシミュレーションを実行してデータを収集することにより、このMLベースのゲームテストアプローチにより、ゲームデザイナーはゲームをより効率的に楽しく、バランスを取り、元のビジョンに合わせることができます。

Chimera
Chimeraは、機械学習を多用して開発する事を目的とした試作ゲームです。 ゲーム自体は、可能性を押し広げられるようなルールに意図的に設計したため、ゲームをプレイするために従来型の手動設計したAIを使う事は困難でした。

Chimeraのゲームプレイは、タイトルにあるキメラを中心に展開します。ゲームの目的はプレイヤーが生物(クリーチャー)を強化して進化させ、対戦相手のキメラを倒すことです。

ゲームデザインの要点は次のとおりです。

・プレイヤーは以下の行動ができます:
・クリーチャーに(その攻撃能力を使って)攻撃を命じる、または(体力を使って)防御を命じる事が出来ます。
・特殊効果を生み出す呪文を唱える事ができます

・クリーチャーは限られた資源であるバイオーム(Biome)に召喚されます。バイオームはゲーム盤上に物理的に配置されます。各クリーチャーは好むバイオームがあり、異なったバイオームまたは容量を超えるバイオームに配置された場合、繰り返しダメージを受けます。

・プレイヤーは一匹のキメラを操作します。
キメラは基本的な「卵」状態から開始し、クリーチャーを吸収することによって進化し強化することができます。これを行うためには、プレーヤーは、様々なゲームプレイメカニズムから生成される一定量のリンクエネルギーも取得する必要があります。

・プレイヤーが対戦相手のキメラの体力を0にすることに成功すると、ゲームは終了します。

Chimeraの遊び方を学ぶ

状態空間が大きい不完全情報カードゲームとして、ChimeraはMLモデルが習得するのが難しいゲームであると予想していました。特に、私達は比較的単純なモデルによる実装を目指していたためでもあります。

AlphaGoのような初期のゲームプレイエージェントによって使用されたアプローチに触発され、同様なアプローチを使用しました。このアプローチでは、畳み込みニューラルネットワーク(CNN:Convolutional Neural network)がトレーニングされ、任意のゲーム状態が与えられたときの勝利の確率を予測します。

ランダムな動きを行うゲームで初期モデルをトレーニングした後、エージェントを自分自身と対戦するように設定し、ゲームデータを繰り返し収集し、それを使用して新しいエージェントをトレーニングしました。反復するたびに、トレーニングデータの品質が向上し、エージェントのゲームプレイ能力も向上しました。


トレーニングが進むにつれて向上するMLエージェントの手動設計AIに対するパフォーマンス
最初のMLエージェント(Version 0)はランダムに移動します。

モデルが入力として受け取る実際のゲーム状態の特徴表現については、「画像」をエンコーディングしてCNNに渡すと、比較対象とした他の全ての手続き型エージェントやその他のタイプのニューラルネットワーク(完全接続型など)を上回り、最高のパフォーマンスが得られることがわかりました。

選択したモデルアーキテクチャは、CPUで妥当な時間で実行できるほど小さいため、モデルの重みをダウンロードし、Unity Barracudaを使用してChimeraをエージェントをリアルタイムに実行できました。


ニューラルネットワークのトレーニングに使用されるゲーム状態の特徴表現の例

 


ゲームをAIで操作する事に加えて、モデルを使用して、ゲーム途中にプレーヤーの推定勝率を表示しました。

 

3.ゲーム開発に機械学習を活用(1/2)関連リンク

1)ai.googleblog.com
Leveraging Machine Learning for Game Development

タイトルとURLをコピーしました