コンピュータはコンピュータゲームを作ることができるのか

なんの変哲もないジャンプアクションだが、これ、AngelinaというAIが作ったという触れ込みのゲームなんだって。

Angelina takes it a step further by creating a simple video game almost entirely from scratch.

スクラッチからとは言っても、実際はレベルデザインと、敵の動作と、パワーアップの効果をリストからランダムに選んでいるらしいので、ゲームルール自体を生成する、みたいなことはできてないみたい。

Angelina creates a level by randomly selecting from a list, then scattering enemies and power-ups throughout the level. Enemy movements and combat behaviours are also randomly selected from a list, while the effects of the power-ups are also random.

本当にスクラッチからコンピュータがゲームを作るのなら、理想はジャンプアクションとか、シューティングとか、ゲームジャンルのベースとなるルールから作って欲しいけど、それはまだ無理な話。だとすると、Angelinaみたいにあらかじめ人手で作ったルールを適当に組み合わせて、その中で面白げなものを選択する、というアプローチが妥当なところなのかな。

It then combines the species and simulates a human playing the game to see which designs lead to the most fun or interesting results.

こういう仕組みを使って新しいゲームをデザインするなら、人間側に求められるスキルとしては、組み合わせの元となるルールとしてどのようなものを用意すれば、それらを混ぜあわせた時に面白いバリエーションが生まれるかという見極め。ゲームの構成要素をうまく切り出して、そのバリエーションをリストアップする、みたいな下準備がいるけど、それもそう簡単じゃなさそう。

ジャンプアクションの生成に絞って考えるとしても、ゲーム中のそれぞれの物体がどういう動作をして、それらがぶつかった時にどういうことが起きるか、みたいなのをひたすらリストアップしないとダメなのかなあ。それらの組み合わせで「まさかこんなゲームが出来上がるとは!」みたいな開発者自身が驚くゲームが生成するには、途方もない長さのリストが必要な気もするけど、うまく設計すればなんとかなるのかもしれない。クソゲー量産機でもいいので、コンピュータ自体がいろんなコンピュータゲームを生成できるようになれば面白いね。