テラリウム徹底攻略ガイド(改訂版)

Ecosystemデビューから絶滅まで

チーム東工大+デジタルアドバンテージ
2003/05/10

 いま仮に新しい生物を作ったとしよう(生物の作り方は次回以降で詳しく述べるが、生物は1つのDLLファイルとして出来上がる)。

 この生物のプログラムをEcosystemへ参加させるには、画面下部の[Introduce Animal]ボタンをクリックして、そのDLLファイルを指定する。これにより自分のマシンのテラリウムに、まず10匹の同じ種の生物が放たれる(より具体的な解説は第2回目で行う)。“Introduce”は「採り入れる」、「導入する」、「持ち込む」といった意味である。

 EcosystemにIntroduceされた生物は食料を求めさまよい、たまにテレポートされながら、そこで子を産み、育ち、そして死んでいく。うまく繁殖できれば、プログラマーはそれが増えていく課程を楽しみながら見ていればよいが、環境に適応できなかった種はいずれ絶滅する。弱すぎる種はテレポートされることもなく全滅するかもしれない。

 こうなると次にプログラマーができることは、同じ種を再度フィールドに放つ(Reintroduceする)か、生物に新たな改良を加えるべくプログラムを修正し、別の生物を作るかである。

 すでに絶滅してしまった生物のDLLファイルを再び“Introduce”することはできない。これはEcosystemに一度Introduceされた生物は、すべてテラリウム・サーバ上で登録され、管理されるためだ。一度登録された生物プログラムとまったく同じプログラムをEcosysytemに持ち込むことはできない。もちろんすでに活動中の生物と同じ種の生物を、立て続けにIntroduceすることもできない(これができてしまったらコンテストにはならない)。

 前と同じ種の生物をReintroduceするには、[Introduce Animal]ボタンの下にある[Reintroduce Animal]をクリックする。初めて押したときにはリストには何も表示されないので、[Server List]ボタンを押す。これによりEcosystem全体における「絶滅してしまった生物(extinct species)リスト」が表示され、そこから再登場させる生物を選択し、Reintroduceすることができる(このときも10匹の生物が放たれる)。つまり絶滅してしまった種もサーバ上で管理されているのだ。

[Reintroduce]ボタンをクリックすると開く絶滅リスト
すでにEcosystemで絶滅してしまった生物が一覧表示される。ここから生物を復活させることができる。

 まったく同じプログラムを再度Introduceしたければ、ソース・コードのファイル名を変更してコンパイルすればよい(単にDLLファイルのファイル名前だけをリネームしても、.NET Frameworkをだますことはできない)。

 以上の流れをフローチャートにまとめると次のようになる。

生物の誕生から繁殖、絶滅までの流れ

NAT/ファイアウォール内からのアクセス

 「Terrarium Q & A」にもあるが、NATしている環境、あるいはファイアウォールの内側にある環境でも、テラリウム・サーバに接続することはできる。このため、生物をEcosystemにIntroduceすれば、その生物はサーバに登録されるし、サーバから絶滅した種をReintroduceすることは可能だ。しかしテレポートされてきた生物を受信することができない(テレポーターに触れた生物はローカル・マシンのフィールド内を飛び回るだけ)。

 これはネットワークへの接続体系が次の図のようになっているためである。図にあるように、テラリウム・サーバへはHTTP(調べてみるとHTTPSも使用されているようである)により、データや生物プログラムのやりとりを行っている。これはほとんどの環境で動作可能だろう。

テラリウムのネットワーク環境
テラリウム・サーバへの接続はHTTP(およびHTTPS)が使用されるが、ピア間での生物の転送にはTCPの50000番ポートが使用される。このため、NAT/ファイアウォール内で生物を受信するには、そのポートをテラリウムが起動しているマシンにフォワードする必要がある。

 これに対して、別のユーザーのマシン(図中のピア)へテレポートされる生物は、サーバを介さずにピア同士(ピア・ツー・ピア)で転送される。このときTCPの50000番ポートが使用されるため、このポートに対する接続が許可されていない環境では、テレポートされた生物を受け取ることができない。 Windows XPのデフォルトの設定では、この接続が許可されていないので、Windows XP の 「インターネット接続ファイアウォール (ICF)」 で TCP ポート 50000 を利用可能にする設定手順の記述に従って、接続が許可されるように設定を変更する。一般に、テレポートされてくる生物を受け取るには、ファイアウォールの50000番ポートを開け、NATしているなら、TCPの50000番ポートをテラリウムを動かしているマシンにフォワードしてやる必要がある。

 ほかの生物がやってこないということを逆手にとって、生物の育ちやすい環境を自分のところに作り、ある程度成長して増えた生物をEcosystemに送り込むといった少々せこい作戦は可能かもしれないが(しかし1つのマシンでは200匹も生物は増えないようだ)、これはゲームに参加しているとはいい難い。何とか環境をうまく設定してEcosystemに参加していただきたい。

 さて次回は、公開された日本のテラリウム・サーバに実際に接続して、まずEcosystemを観察してみる。そしていよいよ生物プログラムを作っていく。また、作成した生物をテストするためのシングル・プレイヤー・モード(Terrariumモード)についても解説する。End of Article


 INDEX
  テラリウム徹底攻略ガイド(改訂版)
  第1回 あなたのコードは生き残れるか
     テラリウムの世界
     テラリウム 1.1 最新情報
     インストールとセッティング
     見えざる神の手「テレポーター」
   Ecosystemデビューから絶滅まで
 
インデックス・ページヘ  「テラリウム徹底攻略ガイド(改訂版)」


Insider.NET フォーラム 新着記事
  • 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間