テラリウム徹底攻略ガイドEcosystemトップ10デジタルアドバンテージ |
Ecosystemトップ10
前回解説したように、1つのマシン上で見えているフィールドは、ネットワーク上に構築された巨大な仮想生態系である“Ecosystem”の一部である。92台のマシンが同時にサーバに接続していれば、Ecosystemの実際の広さはそのフィールドの92倍の広さとなる。
では、Ecosysytem全体では現在どの生物が最も繁栄しているのだろうか。これを確認するには、先ほどのテラリウム・サーバのURLであるhttp://www.terrarium.jp/terrariumをブラウザで開けば良い(URLはhttp://www.terrarium.jp/Terrarium/Charts/ChartNew.aspxにリダイレクトされる)。
Ecosystem全体での生物の繁殖状況 |
テラリウム・サーバのURL(http://www.terrarium.jp/terrarium)をブラウザで指定すれば、この画面が表示される。ここでは、Ecosystem全体での生物の繁殖状況を確認できる。 |
このページから、現在テラリウム・サーバに登録されている(EcosystemにIntroduceされた)すべての生物の状況を閲覧することができる。ページ内の[Full Creature List]では、個々の生物の数(Population)とその名前(Species Name)、その生物プログラムに埋め込まれている筆者の名前(Author Name)、生物の種類(Herbivore=草食動物、Carnivore=肉食動物、Plant=植物)が一覧される。画面には生物数の多い順にトップ10が表示されているが、2ページ目以降参照することにより、それ以降の生物も見ることができる。ページ数はすでに100ページを超えているので、この時点(2002年5月2日)で1000匹以上の生物がEcosysytemに解き放たれたことになる(絶滅せずに残っている生物はそのうちの半数にも満たないようではあるが)。
また、ここでは、指定した条件に一致する特定の生物だけを一覧することもできる。この設定は、画面右端にある[Filter Column]と[Filter]で行う。この機能を使えば、自分で作った生物がどのくらいの数まで繁殖しているかをすぐに調べることができる。
[Full Creature List]の一番左端のカラム[Charting]にある[Add]をクリックすれば、その下の[Selected Creatures]で各生物についての詳細情報も見ることができる。さらに[Chart Selected Animals]ボタンをクリックすれば、選択した生物の数の推移を折れ線グラフとして見ることができる。
選択した生物の繁殖状況 |
一覧から選択した生物の詳細情報とその繁殖推移を示す折れ線グラフを見ることができる。 |
生物によっては、爆発的に増えているものや、徐々に増えているもの、ある程度まで増えてその数を保ち続けているものなどがあり、フィールド上の生物の動きと合わせて参照していると、たとえ自分で生物を作っていなくても、けっこうテラリウムの世界を楽しむことができる。
生物数トップ10に目を戻すと、日本のサーバでも食料の豊富な草食動物がやはり強い繁殖力を持っているようだ。その中で肉食動物である「cham-reo」はかなり検討しているといえる。
ちなみにプログラミング・コンテストの審査対象条件である200匹を超えている肉食動物および草食動物は、合計でもまだ10匹前後のようである。入賞、つまりは賞品を獲得できる生物は100位までだが、案外200匹という水準を保つのは難しいことなのかもしれない。
生物プログラミングの環境
ここまでで、テラリウムのシステムとEcosystemの仕組みについてはだいたい理解いただけたと思う。それではいよいよテラリウム・ゲームの本質である生物プログラミングに入っていくことにしよう。
まずはプログラミング環境の整備だ。
後述するように、.NET Framework SDKを使えば、まったくお金をかけないで(もちろんOSであるWindowsは必要だが)生物を開発することができるが、.NETでの開発といえば、やはりVisual Studio .NET(以下VS.NET)だろう。VS.NETには、開発を手助けしてくれる非常に盛りだくさんの機能が含まれているが、中でもコーディング中にエディタ内で使用できるIntelliSenseは、プログラマーを骨抜きにしてしまうほど便利な機能だ。IntelliSenseとは、変数名やクラス名、メソッド名などの入力を補完してくれる「入力候補」機能や、関数や属性に必要なパラメータをカーソル位置で表示してくれる「パラメータ・ヒント」機能のことである。
VS.NETを使用したプログラミングの詳細な手順と生物の導入までは、テラリウムのサイトにある「Visual Studioを使って生物を作成し、生態系に組み入れる」にも記述されている。これは演習形式になっており、ここに記述される手順をそのままなぞっていけば、取りあえずは生物をIntroduceできるようになっている。
ただし、この演習で記述されている内容は、VS.NETのEnterprise Architect版、Enterprise Developer版、Professional版での場合の話だ。Academic版、あるいはStandard版を使用している場合には、新規プロジェクトの「テンプレート」として「クラス・ライブラリ」を選択できないため、演習どおりには作業できない。こちらを使用しているユーザーは、次項で解説している「生物テンプレート」を使用する。
テンプレートとしてクラス・ライブラリが必要となるのは、前回にも述べたように、プログラムをコンパイルし、最終的に出来上がった生物プログラムが通常のEXEファイル形式ではなく、DLLファイルとなるためだ(クラス・ライブラリのテンプレートは、実行ファイルを作成するためのものではなく、実行ファイルから呼び出されるライブラリのみを含んだDLLファイルを作成するためのものである)。生物プログラムは、そのDLLファイルをテラリウム・アプリケーションに読み込ませることによって実行することができる。もう少し正確にいえば、DLLファイルに含まれる生物プログラムを記述したクラスのインスタンスが、生物としてフィールド上を動き回るわけだ。実行時にDLLファイルをロードして呼び出すという仕組みは、アプリケーションの実行時にプラグインを追加して、もともと含まれていない機能を呼び出すのに似ているかもしれない。
DLLファイルの話ついでに言及しておくと、生物のテレポートとは、実際にはDLLファイルの交換である。つまり生物がネットワークを越えてテレポートしてきた場合は、その生物のDLLファイルが実際にコピーされているのである(例えば、「C:\Documents and Settings\ユーザー名\Application Data\Microsoft\Terrarium」ディレクトリあたりで.dllファイルを検索すれば、自分のマシンのフィールド上にテレポートされてきた生物のDLLファイルを見つけることができる)。ネットワーク上からコピーしてきたプログラムをローカル・マシンで問題なく安全に実行できるというのは、テラリウムがデモンストレーションしようとしている.NET Frameworkの特徴の1つだ。このようなテラリウムのセキュリティに関する記述は「はじめに」の「エビデンス ベースおよびコード アクセス セキュリティ」で少し触れられている。当然、生物プログラムからは、ネットワークやファイルなどのリソースへのアクセスは不可能になっている。
生物プログラムの記述に使用するプログラミング言語は、現時点では、C#またはVisual Basic .NETを使用するのが最適とされている。これについても「はじめに」の「複数のプログラミング言語のサポート」にあるのだが、これ以外の言語では、プログラミング言語の文法的な特性を利用した不正なコードを記述することが可能となる場合があるためだ。不正となるコードを含んだDLLファイルは、テラリウムにロードされた時点で実行されるプログラム・コードのチェックではねられる。C#やVisual Basic .NETにおいても、スレッド呼び出しや、静的メソッドやデコンストラクタの記述は、ゲームには不正な処理が可能ということでチェックにひっかかる。
入賞を狙うために不正なやり方に力を入れてみるのもそれはそれで一興だが、そこまでして得たXboxのゲームよりも、テラリウムの生物をプログラミングする方がもっと面白い。これは、Xboxオーナーである筆者の正直な感想だ(コンテストの賞品として、ぜひともXbox本体だけでなく、ゲーム・クーポンを追加して欲しいと思っている)。
INDEX | ||
[連載]テラリウム徹底攻略ガイド | ||
第2回 生物プログラミング始めの一歩 | ||
飼育器事情の読み方 | ||
Ecosystemトップ10 | ||
生物プログラミング始めの一歩 | ||
Terrariumモードでのテスト | ||
「連載 テラリウム徹底攻略ガイド」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|