敵AIと車で競走するレースゲーム。先にコースを2周した方が勝利。車を後ろ斜め上から見下ろした3人称視点のゲームであり、プレイヤーは自分の車を前進、後進(ブレーキ)、ハンドル操作(左右)で操作する。
安定してコース(道路)を周回できる敵AIを強化学習用フレームワークであるML-Agentsを用いて作成した。初めは自作のゲームに適したAIを作る方法が分からなかったため、道に沿って走ることができなかった。そのため、強化学習に関する情報を収集したり、検証用の簡単なレースゲームを作りそのゲーム上で上手く走ることができるAIを作成したりして、自作のゲームに落とし込む方法を考えた。結果として作成したAIは、一部のカーブにおいて道から外れてダートを走ってしまうことがあるが、安定してコースを周回できる動きができるものとなった。
コースの正しい方向に向かって(逆走しないで)、道の上を走ることができる動きを行っていたとき加点し、コースを正しい方向に走ることができないような動きをしたとき減点を行うようなプログラムを作成し、学習することで敵AIを作成した。加点・減点の要素としては以下のようなものを取り入れた。加点・減点の大きさは要素によって異なる。
加点要素
チェックポイントに前フレームより近づいた
チェックポイントを通ることができた
一定のある速度より速く走っている
2つのチェックポイント間において、決められた方向(次のチェックポイントに向かうための大まかな方向)に動いている
減点要素
ダート(コース外)を走っている
チェックポイントに前フレームより遠ざかった
一定のある速度より遅く走っている
1ヶ月
2人(合計140人時間程度)
敵AIの強化学習に必要な学習用プログラムの作成
以下の機能のプログラム作成
車の操作
画面遷移
ゴール判定
順位やメニューの表示
道路とガードレールの3Dモデル作成(Blenderで作成)
C#, Unity, ML-Agents, Blender
タイトル画面
レース画面
ゴール画面
ポーズメニュー画面