連載テラリウム徹底攻略ガイド 第1回 あなたのコードは生き残れるか |
|
|
テラリウムサロン
テラリウムに関するご質問やご意見はこちらへ |
Microsoftは、.NET Frameworkのデモンストレーションの1つとして、非常に興味深いシステムを構築した。マルチ・プレイヤー・ネットワーク対戦型ゲーム「テラリウム(Terrarium)」である。ネットワーク対戦型ゲームといっても、ゲーム・パッドを持ったプレイヤー同士が反射神経を競い合うゲームではない。テラリウムは、自分でプログラミングしたプログラム・コード同士をネットワーク上で戦わせるゲームである。つまり各プログラマーが考え出したアルゴリズムの勝負だ。
テラリウムの実行画面 |
テラリウムではプログラミングされた生物同士を対戦させる。画面には自分で記述した生物以外に、ネットワークからほかのプログラマーが記述した生物もやってくる。この世界で勝ち残れるのは優れたアルゴリズムを持つものだけだ。 |
そして来たる2002年5月1日より、「テラリウム・プログラミング・コンテスト」が日本で開催される(コンテストのニュース・リリース)。コンテストでは、上位100人のプログラマーに豪華賞品(Xboxは恐らく豪華賞品のはずだ)が贈られる。
本連載では、テラリウムでのプログラミングの基礎から、コンテストで勝ち抜くために必要なテラリウムのプログラミング・テクニックまでを数回に渡り短期集中連載としてお送りする予定だ。
第1回目の今回では、テラリウム世界の概要、インストールおよびセットアップ、そしてテラリウムのゲーム・システムなどについて解説する。
テラリウムの世界
テラリウム(水槽のことをアクアリウムというが、テラリウムは陸上生物のための飼育器といった意味)は、ネットワーク上に構築された、独自の生態系を持つ仮想的なフィールドである。そこには3種類の生物が存在する。植物(Plant)と草食動物(Herbivore)、肉食動物(Carnivore)である。
植物は光合成を行って繁殖していく。草食動物は植物のみを食料をとする攻撃性の低い動物だ。そして肉食動物は、草食動物あるいはほかの肉食動物の肉を食べて生きていく。いずれの生物も成長し、子を産むことによって繁殖するが、餓死や病気、あるいはほかの生物に攻撃されるなどして死んでいく。これが最も基本的なテラリウムにおける生態である。
プログラマーは、草食動物あるいは肉食動物をプログラミングすることができる(植物もプログラミングできるが、コンテストでの対象とはならないし、第一おもしろくない)。草食動物では、いかに肉食動物から身を守りながら植物を食べるかがポイントとなるだろう。肉食動物ではもっと複雑になる。いかに食料となりやすい動物を発見するか、そしていかに近づき攻撃するか。もちろん体力は限られているため、移動と攻撃で体力を使い果たしてしまえば、そのあとに我が身を守ることができない。
どちらの生物を選択した場合でも、1つのプログラム・コードから生成された生物プログラムは、それが1つの種(species)となる。最も生息数の多い種を作ったプログラマーがテラリウムでは勝者である。ただし自然界と同じで、増えすぎた種はいずれ淘汰される。また強い種が常に強いとは限らない。そのときの生態系を構成する種によるのである。ちなみにコンテストは6月28日で締め切られるため、その時点で生息数の最も多い種をプログラミングした者がコンテストの優勝者となる。
テラリウム・プログラマーのためのリソース
テラリウムについて具体的な話をする前に、ゲームを始めるにあたって必要となる情報をまとめておこう。
まず、テラリウムに関する基本的な情報はマイクロソフトのサイトである
Terrariumサイト(http://www.microsoft.com/japan/msdn/net/terrarium/)
にすべて集められている。
マイクロソフトの「Terrariumサイト」 |
テラリウムに関する基本的な情報はすべて集められている。まずここからチェックしよう。 |
ここからは以下の情報について知ることができる。
- テラリウムのインストール、セットアップ方法
- テラリウムのゲーム画面の操作方法
- 生物作成のテンプレートとなるプログラムのダウンロード
- Visual Studio .NETを使用した生物プログラミングの演習
- 生物の移動、成長、戦闘などをまとめた「Terrarium開発ガイド」
- プログラムで必要となるライブラリのオブジェクト・モデル(生物をプログラミングするときに呼び出すAPIのリファレンス・マニュアル)
- コンテスト情報
- Terrarium Q & A(FAQ)
セットアップ方法やゲーム画面の操作方法はもちろんだが、生き残るプログラムを作るためには「Terrarium開発ガイド」に目を通し、オブジェクト・モデルで解説されているクラス群をひと通り眺めておく必要があるだろう。これらを読めば一見シンプルそうに見えるテラリウムの世界も、実はかなり奥の深いゲームであることが分かるだろう。
本サイトでも、「連載:世界のWebサービス」の中の「第10回 マルチプレイヤー・ネットワーク・ゲームTerrarium」でテラリウムの紹介を行っている。そこではテラリウム・システムの話から、簡単な生物プログラミングの解説までをコンパクトにまとめているので、本連載と並行して参考にしていただきたい。
INDEX | ||
[連載]テラリウム徹底攻略ガイド | ||
第1回 あなたのコードは生き残れるか | ||
テラリウムの世界 | ||
インストールとセッティング | ||
見えざる神の手「テレポーター」 | ||
Ecosystemデビューから絶滅まで | ||
「連載 テラリウム徹底攻略ガイド」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|