ゲームとデータマイニング
データマイニングとは、大量のデータから有用なデータの特徴を発見することです。 この分野は近年、扱うデータサイズが大きくなるとともに活発になった分野の一つです。 データマイニング技術の発達と広まりによって今まで捨てていたデータから有用なデータが発見できるようになりました。 買い物をした客のデータからどういった商品が一緒に買われているのかを分析するマーケットバスケット分析では、得られた情報から商品の配置を工夫して売上をのばすというデータを生かすことができる例の一つです。 ところで、ゲーム展示をしたプレイデータは実際にお客さんにプレイしてもらった貴重なデータです。 これらのデータの中にはゲームに関する有益な情報が入っている可能性が多分にあります。 そこで筆者は、買い物をした客のデータから客の行動を分析することで有用な情報が得られるのと同様に、 ゲームのプレイデータからプレイヤがどのような行動をとるのかを分析することで有用なデータが得られると考えました。 ここでは、実際に展示したゲームのプレイデータに対して行った分析手法とその結果を示します。
クラスタリング
データマイニングでよく使われる手法にクラスタリングがあります。 クラスタリングとは与えられたデータを複数の種類に分離することをいいます。 クラスタリングはデータがどのような特徴を持つのかを知る手助けになります。
今回、分析には味方キャラクタそれぞれの「HPの量」と「周囲に何人敵がいるか」です。 また、これらの情報が各ターンごとにあります(何ターン目にどういった状態かといった情報)。 この時、「将来の状態が現在状態のみに依存し、過去のいかなる状態にも依存しない特性」というマルコフ性の仮定をします。 つまり、この戦略シミュレーションRPGに当てはめると、「次のターンに行うことは今のターンを見て決める」ということです。
これらのセッティングの下で下の手法を用いてクラスタリングを行いました。
Simplicial Mixtures of Markov Chains:Distributed Modelling of Dynamic User Profiles
http://books.nips.cc/papers/files/nips16/NIPS2003_AA02.pdf
この方法によりプレイデータを2種類のデータに分離して、それらを味方が全滅するまでにかかったターン数を横軸にとってヒストグラムを書くと以下のようになった。
このグラフより、クラスタ2の方が長い時間生き残る傾向があるように思われます。 次に、得られたデータから「HP の量」と「周囲に何人敵がいるか」の変化をそれぞれのキャラクターについて見ていくこととします。 この分析から、現在の状態から次にどういう状態に遷移するかという確率を得ることができます。 ページの一番下にある図は縦軸は現在の状態(ini は初期状態) で横軸は次の状態、各点はそれらの遷移する確率を領域中の赤い部分の割合で示しています。
まず、「HP の量」の遷移を表した図を見てみると、より生き残っているターン数の短いクラスタ1 のプレイヤはクラスタ2 のプレイヤ比べ、 HP が半分を切ってからの低下が著しいことがわかります。 したがって、ゲーム開発者の視点から見ると、よりゲームを盛り上げるためにはHP が一定値を下回った時にパワーアップするといった方法が考えられます。
次に、「周囲に何人敵がいるか」の遷移を表した図を見てみると、クラスタ2 のプレイヤの方が積極的に敵に向かっていっているという事がわかります。 したがって、よりゲームを盛り上げるためには周囲に敵がいない時にはターンごとにHP が回復するといった方法が考えられます。
まとめ
今回はプレイした直後にどちらのクラスタに「近い」かどうかを判断し「あなたのプレイスタイルは~です」という表示をしました。 このようにゲームの一部として分析を組み込んでしまうということも可能です。 今回、簡単な戦略シミュレーションRPG においてデータマイニング技術によってプレイヤの行動を分析することができました。 ぜひ、ゲーム製作者の方々はプレイデータを分析することにより、どのように自分のゲームがプレイされているかを知り、 それを次なるゲーム製作の糧としてほしいと思います。
遷移確率