テラリウム徹底攻略ガイドEcosystemデビューから絶滅までデジタルアドバンテージ |
いま仮に新しい生物を作ったとしよう(生物の作り方は次回以降で詳しく述べるが、生物は1つのDLLファイルとして出来上がる)。
この生物のプログラムをEcosystemへ参加させるには、画面下部の[Introduce Animal]ボタンをクリックして、そのDLLファイルを指定する。これにより自分のマシンのテラリウムに、まず10匹の同じ種の生物が放たれる(より具体的な解説は日本のサーバが公開されてから掲載予定の第2回目で行うつもりだ)。“Introduce”は「採り入れる」、「導入する」、「持ち込む」といった意味である。
EcosystemにIntroduceされた生物は食料を求めさまよい、たまにテレポートされながら、そこで子を産み、育ち、そして死んでいく。うまく繁殖できれば、プログラマーはそれが増えていく課程を楽しみながら見ていればよいが、環境に適応できなかった種はいずれ絶滅する。弱すぎる種はテレポートされることもなく全滅するかもしれない。
こうなると次にプログラマーができることは、同じ種を再度フィールドに放つ(Reintroduceする)か、生物に新たな改良を加えるべくプログラムを修正し、別の生物を作るかである。
すでに絶滅してしまった生物のDLLファイルを再び“Introduce”することはできない。これはEcosystemに一度Introduceされた生物は、すべてテラリウム・サーバ上で登録され、管理されるためだ。一度登録された生物プログラムとまったく同じプログラムをEcosysytemに持ち込むことはできない。もちろんすでに活動中の生物と同じ種の生物を、立て続けにIntroduceすることもできない(これができてしまったらコンテストにはならない)。
前と同じ種の生物をReintroduceするには、[Introduce Animal]ボタンの下にある[Reintroduce Animal]をクリックする。これにより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番ポートが使用されるため、これが許可されていない環境では、テレポートされた生物を受け取ることができない。
テレポートされてくる生物を受け取るには、ファイアウォールの50000番ポートを開け、NATしているならTCPの50000番ポートを、テラリウムを動かしているマシンにフォワードしてやる必要がある。
ほかの生物がやってこないということを逆手にとって、生物の育ちやすい環境を自分のところに作り、ある程度成長して増えた生物をEcosystemに送り込むといった少々せこい作戦は可能かもしれないが(しかし1つのマシンでは200匹も生物は増えないようだ)、これはゲームに参加してるとはいい難い。何とか環境をうまく設定してEcosystemに参加していただきたい。
■
さて次回は、公開された日本のテラリウム・サーバに実際に接続して、まずEcosystemを観察してみる。そしていよいよ生物プログラムを作っていく。また、作成した生物をテストするためのシングル・プレイヤー・モード(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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|