テラリウム徹底攻略ガイド見えざる神の手「テレポーター」デジタルアドバンテージ |
さらに何もしないで放っておくと、30分もたたないうちに次のような画面になった。虫だらけである。たくさんの生物がテレポートしてくるのと同時に、いくつかの生物が繁殖を行った結果、画面中が生物だらけになったのだ。
前の画面からしばらくたったあとのテラリウムの画面 |
テレポートしてきた生物と繁殖した生物とで、画面は虫だらけになってしまった。 |
画面中の各部分の解説については「Terrarium GUIドキュメント」を参照していただきたい。
画面内で同じ名前の付いている生物は同じ種である。末尾の数字だけが異なる名前の生物たちは、恐らく同じプログラマーが作成した異なるバージョンの生物だ(実はバージョンは違っても、プログラムはまったく同一かもしれない。この理由は本連載でいずれ解説されるだろう)。画面をよく見ると“gammma6”と“cmboarXX”(いずれも草食動物)の2種類しかいないことに気づくだろう。実はこの2種類、原稿執筆時点で米国サーバにおいて猛威をふるっている2大勢力である。昨日あたりまでgamma6の天下だったが、ここにきてcmboarシリーズが逆転してしまったようだ。
表示される生物の外見(生物のスキンと呼ばれる)は、生物をプログラミングするときにプログラマーが自由に選択することができる。現在、生物で選択可能なスキンは次の5種類ある(その気になれば自作も可能)。これは肉食動物、草食動物に関係なく設定できるため、画面上ではどれが肉食か草食かは判別しづらい(プロパティを見れば分かる)。
テラリウムで使用可能な生物のスキン |
左から順に、アリ(Ant)、甲虫(Beetle)、しゃくとり虫(Inchworm)、サソリ(Scorpion)、クモ(Spider) |
論理上、生物は徐々に大きくなっていくが、スキンのビットマップとしては2種類だけが用意されている。
さて画面内をよく見ると、「テレポーター」と呼ばれる、ランダムに移動しながら浮遊する青いボールが1つある。この怪しい物体こそが植物や生物をテレポートさせる、生物たちにとっては「見えざる神の手」である。これに触れた植物や動物は、片っ端からネットワーク上のどこかでテラリウム・アプリケーションを起動している別のユーザーの元へと転送されてしまうのだ(たまに転送されずにローカル内で移動する場合もある)。逆に、生物たちがテレポーターに触れない限りは、1つのテラリウム・アプリケーション内でのみ活動していくことになる。
テレポーターは、生物から、つまりはプログラムからはまったく認識することはできない。通常はテレポートされるがままにしておくが、少しがんばればテレポーターの位置を把握することもできる。例えば、プログラムでは自分の周りにいる生物を追跡し、それが突然消えたということを知るようにコーディングすることができる。これによってテレポーターの位置を完全ではないが把握可能だ。テレポーターを避けて1個所で繁殖を続けていくのか、テレポーターを活用してテラリウム間を飛び回るのか、ばらばらにテレポートされないようにグループで行動するのか、あるいは運を天にまかせるのか、これらはすべてプログラマー次第だ。
少し脱線してしまったが、とにかくテレポートによって生物はネットワーク上にどんどん広がっていくのである。この様子をテラリウム・システム全体で見ると次のような図で表すことができる。
テラリウム・システム |
サーバを中心として、複数のテラリウムがネットワーク接続され、それらの間で生物はテレポートしながら広がっていく。テラリウムの画面で見えているフィールドは、巨大な生態系のごく一部だ。 |
各マシン上で動作しているテラリウムで見えているフィールドは、実はインターネット上に構築された巨大な生態系の一部なのである。“生態系”は英語で“ecosystem”であるが、テラリウムでもこの巨大な生態系は単に「Ecosystem(エコシステム)」と呼ばれる。
なお、コンテストではEcosystem全体で少なくとも200匹の同じ種の生物(草食動物か肉食動物)が存在していなければ、審査の対象とはならない。
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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|