ADFでAIコンテストの企画をした話

Application Developer Festival (以下ADF)というイベントにて、AIコンテストの企画・運営をやってました。

 

ADFとは

3月28~30日に行われた、リクルートさん主催の学生エンジニア向け2泊3日合宿イベントです。

同世代の学生エンジニアたちが圧倒的に繋がれることを目的とし、3日間様々なコンテンツが用意されておりました。

2日目の「ゲームAIハンズオンコンテスト」を、僕と、同じく学生スタッフのひろきゅんさんの2人で担当してました。

 

ゲームの題材

「Hey! That’s My Fish!」というボードゲームを題材にさせていただきました。

ルールはいたって簡単で

  • 各プレイヤーは順番に自分のペンギンを1匹移動させる。
  • 移動先のマスの魚をゲットできる。
  • 移動前にいたマスには穴が空き、通過不可となる。
  • 一番多くの魚をゲットしたプレイヤーの勝利。

各ペンギンは6方向にいくらでも、他のペンギンや穴のマスにぶつかるまで先のマスを指定してそこへ移動できます。(下図では、青いペンギンはオレンジ色のマスに移動可能)

f:id:iwashi31:20150402133828p:plain

全てのペンギンが移動できなくなったらゲーム終了です。

ペンギンの初期配置は、各プレイヤーが順番に1匹ずつ、魚が1匹のマスを指定します。

 

このゲームを選んだ個人的な理由としましては、単純に面白く奥が深いゲームであったこと、それに反してルールがめちゃシンプルだったこと、あとエキシビジョンなんかは皆で観戦する予定だったので、コンテストに参加していない人が観戦しても何となく楽しめそうな点などですかね。

 

当日のこと

当日は3人1チームで1つのAIを作成して参加、という形にしました。

提出受付時間は7時間で、この間なら何度でも再提出可能。

最初の30分程度でルール説明とAIの入出力のフォーマットの説明をして、それでは各チーム力を合わせて頑張ってください!と。ハンズオン…?

受付終了後は提出された20チームのAIで決勝戦を行いました。

 

こちらの不手際により参加者の皆様を戸惑わせてしまったことは、本当に申し訳なく思っております。

 

AIについて

企画しておいてあれですが、どういう戦略・アルゴリズムを使えば強くなるかとかあまり考察できていません。

僕が最終的に提出した iwashiAI は、移動後に「(自分が1手で移動できるマスの魚の合計)ー(他の相手が1手で移動できるマスの魚の合計)」が最大になるよう移動するものでしたが、これは貪欲AI(自分が移動できるマスのうち、魚の数が最大のマスに移動する)にも負けました。

自分しか到達できなくなった島はうまいこと回収する、ぐらいのことはしたかったのですが、バタバタしてて結局書けませんでした。無念。

暇があれば時間をかけてしっかり作りこんでみたいと思います。

 

反省点 

まず思うのは、初めての人向けに7時間でやる題材じゃあなかったなと。

サンプルコードは配布していたものの、六角座標系だったり配置フェーズ / 移動フェーズでやることが違ったりと、数時間で仕上げるのは結構大変そうで、そのあたりはもう少し思慮すべきでした。

締め切り伸びませんか?だとか、終わったあとも遊べませんか?などの声もいただきまして、本当に申し訳ない限りです。

 

あと、決勝を観戦する際、ルール説明するの忘れてたな…。

パッと見で理解しやすいルールだとはいえ、参加していない方々にも楽しんでいただけたかどうか不安が残ります。

 

最後に

このコンテンツをやるにあたって、様々な人にお世話になりました。

一緒に企画・運営に携わってくれたひろきゅんさん。

お忙しい中、サーバシステムやお知恵をお貸しいただいた坂本様。

ゲームエンジンの開発や、急遽必要となった決勝戦用のシステムの準備をしてくれた学生スタッフの方々。

時間的にかなり厳しいコンテンツであったにもかかわらず、積極的に参加してくださった参加者の皆様。

多くの人に支えられ、僕自身もこのコンテンツを存分に楽しむことができました。

本当に感謝しております。ありがとうございました。

 

*1:ゲーム画面をプログラムするにあたってとりあえず書いたペンギンと魚の絵、まさかそのまま使うことになるとは思わなかった。

*2:決勝上位3つのAI+iwashiAIが50戦対戦した結果。イベント参加者用Slackにて晒し上げられた。