遺伝的アルゴリズム(GA、Genetic Algorithm)というものがある。人口生命(AL)、人口知能(AI)の1つ。
GAはかなり「使える」と感じているし、実際、「使える」。過去に実装した例を掲載。
■レースゲームの敵車AIの開発
レースゲーム(商品)の敵車AIを作り上げるのにGAを使用した。
帰宅時に、車のスペックデータとコースデータを用意して、ターゲット機上に設定。その時は、車は壁にあたったり、おそるおそる走っていたり。
その次の朝、見てみると、その車がコースをうまくそして速く走るようになってる。GA君は夜勤専門の働きもの。車の挙動は普通のプレーヤがコントローラで操作するのでは追いつけないレベルになる。
壁ターン(壁にぶつかった方が速くコーナーリングできるというレースゲームならではのバグ技)も平気で見つけてくれるので、デバッグにもなった。その場合は運動モデルまわりやコースを見直す。
車7種類×コース5種類=25パタン。プログラマが持ってる開発機にかける。5人で分担すれば、35パタン÷5人=7日間で終わるという計算。
敵車AIの該当部分に関してはGAまかせで、開発メンバーによる調整は行われなかったので、重要な開発手段だったと言える。
■格闘ゲーム風ジャンケン
こんな感じのジャンケンマトリクス。縦軸が自分の手、横軸が相手の手、表は相手に対するダメージ。自分も同様に相手からダメージをもらう。プレーヤ二人は対等なゲーム。
大技 | 小技 | 防御 | 硬直 | ||
大技 | 10 | 10 | ※0 | 20 | |
小技 | 3 | 3 | 1 | 6 | |
防御 | ※0 | 0 | 0 | 0 | |
硬直 | 0 | 0 | 0 | 0 |