AI対AI: Linux上のN.E.R.O.

ビデオ・ゲームの人工知能(AI)にいらだちを覚えたことがあるなら、ぜひともN.E.R.O(Neuro-Evolving Robotic Operatives)を試してみてほしい。N.E.R.O.は、独自のインテリジェントな非プレイヤー・キャラクタを鍛えることが勝利への鍵となる、クロスプラットフォームの戦闘ゲームである。対戦場での唯一のルールは、「最も優れたAIに勝たせること」である。私はLinuxクライアントで腕試しをして、N.E.R.O.がとても毛色の変わったゲームであることを知った。

N.E.R.O.は2003年に、テキサス大学オースティン校(UT)で最初に開発された。UTの2003 GameDevカンファレンスにおいて、AI研究者のKen Stanleyが、兵隊ロボットをリアルタイムで訓練し、互いに戦わせるというアイデアを基にしたゲームを提案した。この提案が、UTの多数の学部と学生を巻き込む進行中の研究プロジェクトに発展したのである。

ゲームは2つのモードに分かれている。訓練モードでは、仮想のサンドボックス内でプレイし、敵と障害物をセットアップした後、それらに向けてロボットのチームを解き放つ。ロボットたちはニューラル・ネットワークを使ってゲームのイベントに反応するので、プレイヤーは目標を叩く、敵からの打撃を防ぐ、持ち場を守るなどのイベントに対して褒美またはペナルティを与え、ロボットを訓練する。

満足のいくチームができあがったら、作業を保存して戦闘モードに入ることができる。さまざまな選択肢の中から対戦場を選択した後、自分のロボットを付属のデモ用チームの1つ、またはネットワーク上の他のプレイヤーと対戦させる。

現行のバージョン1.01は、Linux、Mac OS X、およびWindowsに対応している。Linux版はgzipで圧縮されたtarballになっているので、これを任意の場所に展開し、コマンドラインから./nero.binを実行する。実行にはOpenGLとALSA(効果音用)が必要である。

1
クリックして拡大

フルメタル・ジャケット

当然、訓練モードは苦労する部分である。訓練モードでは、ロボットが絶えず生成されて、訓練場で1~2分間動き回った後、引きずり出されて採点される。得点が高めのロボットは次の世代に複製され、得点が最低のロボットは死滅するので、チームは全体として進化する。ロボットの採点方法は、ゲームのさまざまなイベントに対応する褒美とペナルティのスライダを調整して決定する。

できたてのロボットたちは、言うなれば異常に活発な間抜けの集団のように振る舞う。円を描いて走るものもいれば、壁に向かってやみくもに発砲するものもいる。この段階での重要なルールは、「一度に1つのことだけをすること」である。敵の攻撃目標を地面に配置し、それらに接近することをチームに教えてから、よけて回る壁を追加する必要がある。一度にたくさんの要素を追加しすぎると、間抜けなロボットたちはプレイヤーが何を学習させようとしているのかを理解できなくなるのだ。

ゲームには、優れた訓練指導教官になるために不可欠な2つのチュートリアルが付属している。たとえば、当初、私のチームは積極果敢に敵を追い回していたが、「打撃を受ける」ペナルティを高く設定しすぎたせいで、数分後には腰抜けの集団に変貌してしまった。小学校の頃から教わってきたように、作業は定期的に保存するのが賢明である。そうすれば、訓練の誤りを取り消してやり直すことがとても容易になる。

誰がそちらの味方に付く?

訓練用のサンドボックス内の生活は、かなり牧歌的である。ロボットは無限に再生成され、敵はプレイヤーの意のままに動かせる駒にすぎず、地形は平坦である。しかし、自分が作ったロボットを実戦でテストすると、いつも思いがけない状況に遭遇するだろう。幸いにも、プレイヤーはサンドボックス内に戻り、兵隊たちを混乱させた状況を再現してみることができる。他の方法がうまくいかない場合は、敵のロボットの1つを「居住させ」、FPS(一人称視点シューティング・ゲーム)方式の小規模な一対一の訓練をチームに課すことができる。

2
クリックして拡大

戦闘モードでのプレイは楽しいが、非対話型のゲームに慣れる必要がある。いったん戦闘が始まれば、プレイヤーは単なる傍観者になる。一連の戦闘全体の展開を第三者のカメラ視点から見物しつつ、対戦場を飛行し、自分の兵隊の遂行能力を見守り、問題の起こりやすい箇所を探すことができる。

戦闘モードのゲームは、時間制にすることもデスマッチにすることもでき、チームが対戦する規模も自由に選択できる。デフォルトの設定は20体ずつのチームで、この場合、デスマッチのゲームは2分から5分間継続する(ただし、両方のチームが危険から一目散に逃げるように訓練されている場合は除く。このような設定も可能だが、あまり面白くない)。

自分の仮想の勇気を本物の対戦相手で試してみたくなったら、N.E.R.O.フォーラムに行けば、他のプレイヤーを見つけたり、ネットワーク・ゲームやトーナメントに参加したりすることができる。ただし、現在のところフォーラムはあまり活発ではないので、他のプレイヤーに直接挑戦してみると良いだろう。

0の軍隊、それとも1の軍隊?

最近の活動について言えば、前回ゲームが更新されてからかなり時間が経っていることに気付くだろう。Ken Stanleyは、開発がまだ継続していると私に断言してくれた。問題は、このゲームが大学の講義の中で開発されており、そのために、経験を積んだ学生が卒業すると、開発者が大きく入れ替わってしまうことである。しかも、StanleyはUTから中央フロリダ大学に転任し、新しいメンテナを指名している。ただし、彼は今でもチームの助言役を務めており、N.E.R.O.の原動力となるリアルタイム学習アルゴリズム、rtNEATの研究を続けている。

3
クリックして拡大

この予測できない状況に鑑みて、多くの人々がゲーム・コードをオープンソース化できないかどうかをたずねた。Stanleyや他のプログラマたちは、コードをオープンソース化したいという意向を表明している。rtNEATのソースコードは、現在でも非営利目的の「研究ライセンス」のもとで入手できる。

Stanleyによると、UTがコードのオープンソース化に同意する必要があるが、大きな障害は、ゲーム・コードがTorqueエンジンで書かれており、このエンジンはソースコードの再配布を禁じていることである。rtNEATをN.E.R.O.から切り離すことはできるが、ゲーム・コードの残りの部分を書き直すのは大仕事である。

N.E.R.O.バージョン2の公開に関する公式な発表はないが、現在の開発チームは毎月の更新情報をフォーラムに投稿することを約束している。最近、開発の進捗状況を示すビデオがN.E.R.O.のWebサイトに追加された。

結論

経験上、私は人気のあるFPSゲームを最初のうちこそ楽しんでプレイするが、「見つけ出す」ものが何もなくなったとたんに興味を失う傾向がある。時間制限をうち破ったり、1人の手強い敵を倒したりするために同じレベルを何度も繰り返しプレイするのは単なる時間の無駄にしか思えないのだ。これに対し、N.E.R.O.は決して完全には克服できない問題を中心に据えて構築されている。どれほど優秀なチームを作り上げても、常に改良の余地がある。そこがこのゲームの面白さだ。

NewsForge.com 原文