サイバーエージェントグループの連結子会社からなるゲーム事業(SGE)での社員総会の企画の一環として、
今年4月に、子会社対抗の「ゲームAI対決企画」を開催しました。
今回の記事では、その様子をお伝えしたいと思います。
経緯
今回のSGE総会では、「各子会社のCTOをよく知ってもらう」というゴールがあったため、
ゲームを作っている会社らしく、プログラミングを活用したゲームAI対決を行いました。
当日は、実況を入れながら対決コンテンツを映像化することで、
プログラミング未経験の方を含めた、会場全員で応援しながら楽しめるコンテンツとなりました。
ルール紹介
ゲームは、3人で戦う「コイン集めゲーム」を下記のルールで行いました。
・ フィールドに落ちているコインを集め、制限時間内により多く集めることができたAIが勝利します。
・ 相手のAIを近距離攻撃することができます。攻撃を受けたAIは所持コインの一部をフィールドに落とします。
・ 攻撃は当たり具合によって威力が違い、威力が高いほど落とすコインの枚数が変わります。
・ 一定以上の威力で攻撃がヒットした場合、攻撃を受けた相手は一定時間行動できなくなります。
AIの行動としては、渡されたゲームの情報をもとに、
「向きの変化量と、攻撃を行うかどうか」を用意したAPIを通じてやりとりします。
※向きは左右に12度ずつ変更することができます。
※移動は、攻撃を行っていない間、敵の行動タイミングも含めた毎ターン、向いている方向に移動します。
ゲームは600ターン行われ、600ターンの経過後に最もコインを多く集めたチームの勝利とします。
AI開発
SGEに所属する子会社9社に参加してもらい、
各CTOより任命されたエンジニアが一週間を使い、業務の傍らAIを作成してもらいました。
開発には管轄で主に使われているC++,C#,Java,PHP,Javascriptの5言語に対応した対戦システムと、
jsonで書き出した対戦結果をUnityで3Dのキャラクター同士の対決の形で再生する再生システムを配布しました。
決勝
本番は、各社CTOが侠客に扮し、内部抗争を起こすOPから始まり、
AI対決で次期管轄CTOを決するというストーリーが作られました。
AI対決では、まず予選映像として、事前に、勝率に有意な差が出るような回数を試行し、
勝率が最も高かった子会社が勝ち上がった試合の中からピックアップし、
実況付きの映像を作成し、流しました。
プロデューサーSさんによる実況は、本当にその場で行われているかのような臨場感があり、
各社CTOのプライベートの紹介や、ゲーム展開の巧みな表現には笑いが起こりました。
決勝戦は、実況もその場で行いました。

準優勝になったアプリボットチームは社内の精鋭を揃え、社内予選を開き、
その中で圧倒的な差で優勝したクライアントサイドのエンジニアIさんのAIで参戦。
敵との向きまで含めた位置関係を計算し、
積極的にスタン状態にすることを狙っていく超攻撃型AIでした。
一方、優勝したのは、グリフォンチーム。開発を担当したのはなんとの1年目のエンジニアでした。
ゲームルールと、AIによる検証から、キャラクターの動きが大回りになることを導き、
たどり着くのが困難で死角となる正方形マップの端をうまく使った回避型AIで、見事優勝しました。
9社の中ではこの2つのAIが突出して強く、決勝戦のAI同士の勝率は僅差でした。
