Java版テラリウム? ただいま開催中:安藤幸央のランダウン(15)
「Java FAQ(What's New)」の安藤幸央氏が、CoolなプログラミングのためのノウハウやTIPS、筆者の経験などを「Rundown」(駆け足の要点説明)でお届けします。(編集局)
Robocodeジャパン・カップ開幕
いまJavaプログラミングによるロボット対戦大会「Robocodeジャパン・カップ」(http://www.ibm.com/jp/event/robocode/home/)が開催中です。日本の各所から集まった「強いプログラムコード」が集結し、グランプリを目指してしのぎを削っています。多くのプログラマによって考え抜かれた対戦アルゴリズムと、スピードを競い合うことによって、一番強い「コード」が選び抜かれるのです。少し前、マイクロソフトが.NET Frameworkのデモンストレーションの1つとして「テラリウム」を開催しましたが、これのJava版のようなものといってよいかもしれません。
Robocodeジャパン・カップは、12月10日の最終発表まで、平日に毎日試合が行われます。自分でロボコードプログラムを書いてエントリした人はもちろんのこと、まるでサッカーなどのスポーツ観戦を楽しむ気分で対戦を観戦することもできます。今後の予定は以下のようになっています。
2002年11月25日 応募締め切りおよび予選リーグ開始
2002年12月 2日 決勝リーグ開始
2002年12月10日 結果発表
ロボコードへの第一歩
RobocodeはJava学習のためのシミュレーションロボットゲームです。Robocodeでは、独自の機能を持ったロボットを作成し、対戦させることが可能です。インターネット上での対戦は、参加者のみならず観戦をするだけでも大変楽しめるものになっています。これからJavaを始めてみようという人、またプログラミングの技術を磨きたいという人、人工知能やロボットに興味のある人はぜひ、Robocodeジャパン・カップを観戦してみましょう。
コンテストサイトのオープンとともに、日本語版Robocodeホームページも開設されました。米国版alphaWorksに開設されているものの、日本語版です。Javaの実行環境も含んだインストーラ、初心者のためのチュートリアル「はじめてのロボット」など、Robocodeの情報が日本語で提供されています。
Robocodeジャパン・カップを楽しもう
Robocodeジャパン・カップのホームページは、米国IBM alphaWorksにて開催された世界向けに開催されたRobocode Rumble(http://www.ibm.com/alphaworks/rumble)(Rumbleはけんか、小競り合いといった意味)と同等の機能を持つ日本語サイトです。
コンテスト参加者に対する登録サイトであり、かつ対戦結果の表示が行われています。対戦はクラス別に行われ、Robocodeのスコアが対戦結果として表示されます。週単位のリーグ戦で定められた対戦が毎日行われています。対戦には2種類あり、複数ロボットでのバトルロイヤルの「melee league」と一騎打ち総当たりの「1 on 1 league」があります。トップのページが、最新の結果一覧になっています。また、対戦の記録はすべて表示可能で、リーグ別、ロボット別などさまざまな観点から一覧できます。
Robocodeスタジアムはどうなっている?
Robocodeスタジアムは登録者のためのページです。コンテスト開催中に行われているリーグ戦のステータスや登録ロボット情報が一覧できます。各小窓からは以下のものを知ることができます。
●最新ステータス
「総合順位」:結果の確定した終了済みリーグ戦での成績を基に、各参加ロボットの順位をクラスごとに一覧する
「リーグサマリー」:開催中、終了済みのすべてのリーグ戦状況が表示される。最近行われた10リーグから、リーグの詳細やロボットの戦歴のページに移動できる
●最新のリーグリーダーたち
一番強いロボットは実行中のリーグでは勝者、終了済みのリーグではリーグリーダーと呼ばれます。
●上位5ロボット
クラスを問わず、生存率の高い上位の5つのロボットです。
●Tips
世界の強豪ロボットの戦略解説記事集です。
●登録・更新ロボット
最近アップロードされたロボットを表示できます。
●リーグ戦詳細ページ
●シーズンのページ
順位の基になるRobocodeのスコアのロボットごとの詳細が表示されます。
●ロボットのページ
各ロボットの参加したリーグが一覧され、戦績をたどることができます。また、ほとんどの登録ロボットが、ダウンロードできるようになっているので、自分のパソコン上で対戦させてみることも可能です。
Robocode試合会場での楽しみ方
トップページの総合順位と上位5つのロボットは、終了し、確定したリーグ結果に基づいて表示されます。トップページの最新のリーグリーダーたちの欄に、現在のリーダーとあるのは進行中のリーグ、勝者とあるのは終了したリーグです。また、応募期間中のみ開催されるスクリメッジは、練習試合リーグです。
一番新しいリーグのページを見ます。「実行中の**レベル リーグ*現在の順位」と表示されます。表示は一度に10台まで、表示順位の選択で、低い順位のものも確認することができます。右側の「Parameter」には、RoboleagueとRobocodeの対戦パラメータが表示されます。ここで、「Opponents per Grouping」は対戦の台数です。1 on 1では2、バトルロイヤル(melee)では10になります。「Rounds per Grouping」は、ディヴィジョンで行われる対戦ラウンド数です。次の4つはRobocodeの対戦パラメータでバトルフィールドの大きさなどです。「Opponents per division」は、1つのディヴィジョンでのロボット数で、1 on 1では5、バトルロイヤルでは10になります。次の「number of season」はそのリーグで行われる総シーズン数です。順位はいままで行ったシーズンで入れ替えを行った結果のもの。順位変動は前のシーズンとの比較になります。このページからさらに、ロボットごとの成績表示やシーズンごとのページへ移動できます。
ここでは、各ロボットのシーズン対戦の得点(Total score)に応じた順位が表示されます。この得点は、生き残りポイント(Survival)から激突得点ボーナス(Ram Damage Bonus)までをすべて足したものです。対戦はディヴィジョン単位で行われますので、例えばディヴィジョンに5台の1 on 1リーグでは、最上位ディヴィジョンの5位のロボットの方が、次のディヴィションにいて6位のロボットより得点が低くなります。
●ロボットごとのリーグ戦結果の表示
ロボット名をクリックすると、そのロボットが参加したすべてのリーグが表示されます。ここで、作者名から、その作者の作成したロボット一覧が現われ。また、ここでは、作者の戦略によって、ロボットクラスのほかの参加者への開示、ソースコードの開示が選択されている場合には、ダウンロードすることが可能です。
●終了したリーグ戦のページ
実行中のリーグと同様に、リーグの総合結果、各シーズンの記録などが参照できます。
優勝カップは誰の手に?
テレビでサッカー観戦するのとはだいぶ違いますが、Robocodeジャパン・カップの観戦方法は、お分かりいただけたでしょうか? Robocodeで作られたロボットの中から、中田やロナウドのような輝く選手を見つけ、試合の行方を追ってみるのがRobocodeジャパン・カップのだいご味だと思います。
次回は12月25日の公開予定です。
プロフィール
安藤幸央(あんどう ゆきお)
1970年北海道生まれ。現在、株式会社エヌ・ケー・エクサ マルチメディアソリューションセンター所属。フォトリアリスティック3次元コンピュータグラフィックス、リアルタイムグラフィックスやネットワークを利用した各種開発業務に携わる。コンピュータ自動彩色システムや3次元イメージ検索システム大規模データ可視化システム、リアルタイムCG投影システム、建築業界、エンターテインメント向け3次元 CG ソフトの開発、インターネットベースのコンピュータグラフィックスシステムなどを手掛ける。また、Java、Web3D、OpenGL、3DCG の情報源となるWebページをまとめている。
ホームページ:
http://www.gimlay.org/~andoh/java/
所属団体:
OpenGL_Japan (Member)、SIGGRAPH TOKYO (Vice Chairman)
主な著書
「VRML 60分ガイド」(監訳、ソフトバンク)
「これがJava だ! インターネットの新たな主役」(共著、日本経済新聞社)
「The Java3D API仕様」(監修、アスキー)
Copyright © ITmedia, Inc. All Rights Reserved.