コンピュータソフト
シミュレーションゲーム
Robocode
IBM
いまいち(-10点)
2002年9月3日
Java で戦車の AI を書いて戦わせるプログラミング型ゲーム。
ロボットの AI を書いて戦わせるアートディンクのカルネージハートというゲームをやったことのある私は、あのときの興奮がまた味わえる、しかもインターネットで他の人の作った AI と気軽に戦える、と喜んだ。
しかし、この Robocode はあまり出来がいいとは思えない。
AI は弾を打って敵を破壊しようとするのだが、敵が打ってきた弾を AI は認知できない。だから、やみくもに逃げるしかない。打つ方は、相手の動きを見て移動先を解析してそこに打つ。逃げる方は、相手の解析の裏をかいた移動をすることによってしか、弾を避ける方法がない。
Anti-Gravity Movement (反重力移動?) という定石が存在すること自体が、このゲームの奥の浅さをものがたっている。この移動方法は、二つの重力点なるものを仮想的に作り、その重力点に引っ張られるような形で次の移動先を決める。こうすることで、自機の運動を多体問題にしてしまい、相手に線型予測を不可能にさせるのだろう。
こういう回避法が発達しているということは、相手の動きを予想する AI なんかも要するに解析をやっているわけで、もう数学数学数学だ。ゲーム性もなにもあったものじゃない。
まあ、強いロボット同士の対決を見たわけじゃないので分からないけど、こんなのやってて楽しいのかな、と思ってしまう。
試しに私も AI を作って動かしてみた。ベクトルをイメージするのが面倒なのはいいとして、エディタを立ち上げたときにサンプルとして最初から入力されている MyFirstRobot がそのシンプルさとは裏腹に強い。砲塔とレーダーをぐるりと一回転させることで敵を見つけ、弾を回避するためにとりあえず前後に動き、そして敵に向けて弾を一発打つのをひたすら繰り返すだけ。しかし、たったこれだけの AI で、プレイヤーがちょこちょこ工夫して作った AI を粉砕してしまう。
やっぱりもうちょっと工夫が欲しい。いまはロボット三台くらいのチームによる集団戦がメインだという話も聞くが、やっている人たちはそれで盛り上がっているのだろうか。
カルネージハートがいかに優れていたのかが目立ってしょうがない。フルポリゴンのロボットが動くので美しい。AI を組みやすい人型のボディから、クモ型、飛行機型、そしてキャタピラ移動や砲塔などの制約でおそらく一番難しい戦車型まで、プレイヤーはステップアップしていけた。AI はブロックで作るので、細かいことができないのは難点だが、AI の動作状況がパネルで表示されてフローが分かりやすい。
http://www.artdink.co.jp/
japanese/title/chez/
Robocode は、Java であることによる利点はうまく活かしていると思う。サーバ上で動かすこともできる。常にリーグ戦が行われていて、自分の作った AI を登録しておくと向こうで全自動で戦ってくれて、自分の AI の順位が毎週毎週分かるようになっているらしい。
ロボットの AI を書いて戦わせるアートディンクのカルネージハートというゲームをやったことのある私は、あのときの興奮がまた味わえる、しかもインターネットで他の人の作った AI と気軽に戦える、と喜んだ。
しかし、この Robocode はあまり出来がいいとは思えない。
AI は弾を打って敵を破壊しようとするのだが、敵が打ってきた弾を AI は認知できない。だから、やみくもに逃げるしかない。打つ方は、相手の動きを見て移動先を解析してそこに打つ。逃げる方は、相手の解析の裏をかいた移動をすることによってしか、弾を避ける方法がない。
Anti-Gravity Movement (反重力移動?) という定石が存在すること自体が、このゲームの奥の浅さをものがたっている。この移動方法は、二つの重力点なるものを仮想的に作り、その重力点に引っ張られるような形で次の移動先を決める。こうすることで、自機の運動を多体問題にしてしまい、相手に線型予測を不可能にさせるのだろう。
こういう回避法が発達しているということは、相手の動きを予想する AI なんかも要するに解析をやっているわけで、もう数学数学数学だ。ゲーム性もなにもあったものじゃない。
まあ、強いロボット同士の対決を見たわけじゃないので分からないけど、こんなのやってて楽しいのかな、と思ってしまう。
試しに私も AI を作って動かしてみた。ベクトルをイメージするのが面倒なのはいいとして、エディタを立ち上げたときにサンプルとして最初から入力されている MyFirstRobot がそのシンプルさとは裏腹に強い。砲塔とレーダーをぐるりと一回転させることで敵を見つけ、弾を回避するためにとりあえず前後に動き、そして敵に向けて弾を一発打つのをひたすら繰り返すだけ。しかし、たったこれだけの AI で、プレイヤーがちょこちょこ工夫して作った AI を粉砕してしまう。
やっぱりもうちょっと工夫が欲しい。いまはロボット三台くらいのチームによる集団戦がメインだという話も聞くが、やっている人たちはそれで盛り上がっているのだろうか。
カルネージハートがいかに優れていたのかが目立ってしょうがない。フルポリゴンのロボットが動くので美しい。AI を組みやすい人型のボディから、クモ型、飛行機型、そしてキャタピラ移動や砲塔などの制約でおそらく一番難しい戦車型まで、プレイヤーはステップアップしていけた。AI はブロックで作るので、細かいことができないのは難点だが、AI の動作状況がパネルで表示されてフローが分かりやすい。
http://www.artdink.co.jp/
japanese/title/chez/
Robocode は、Java であることによる利点はうまく活かしていると思う。サーバ上で動かすこともできる。常にリーグ戦が行われていて、自分の作った AI を登録しておくと向こうで全自動で戦ってくれて、自分の AI の順位が毎週毎週分かるようになっているらしい。
[参考]
http://
www-6.ibm.com/jp/developerworks/
java/020329/
j_j-robocode.html
(最終更新日: 2019年6月1日 by ひっちぃ)