連載:世界のWebサービス

第10回 モバイルWebアプリケーション

1.EcoSystemモード(マルチ・プレイヤー・モード)

田口景介
2001/12/01


 Terrariumは、以前本連載で紹介したGotDotNet内の1コーナーとして設けられているTerrarium(http://gotdotnet.com/terrarium/)で入手することができる。

Terrariumのホームページ
Terrariumはgotdotnet.comの1コーナーとして運営されている。ここではTerrariumの実行ファイルからドキュメント、さらにEcoSystemに登録された動物のステータスや生息数ランキングなどを見ることができる。 http://gotdotnet.com/Terrarium/

 このサイトには、Terrariumの実行ファイル以外にも、インストール手順から、動物の開発手引きまでを詳しく解説したドキュメントが公開されているので、Terrariumに参戦するつもりならば隅々まで目を通しておくとよいだろう。原稿執筆時点ではまだ未完成の部分も多いが、.NET Framework RCがリリースされるころには完成度を増していることだろう。

 入手したTerrariumを起動すると、グローバルIPアドレスが割り当てられたシステムならば、EcoSystemへ接続され、EcoSystemモード(マルチ・プレイヤー・モード)でゲームがスタートする。

EcoSystemモード(マルチ・プレイヤー・モード)
起動直後はフィールド上に誰もいないので、EcoSystemから動物を招待してくるか、ローカル・システム上の動物(アセンブリ)を読み込み、フィールドに放つ。生態系が機能するには、少なくとも植物、草食動物、肉食動物を1種類ずつ生息させる必要がある。
  ローカル・システム上の動物を読み込む。
  Terrariumモード(シングル・プレイヤー・モードへ切り替える)。
  テレポーター。これに動物が触れると、テレポートされる。行き先は同じフィールド内のこともあれば、EcoSystemに接続している他のプレイヤーのフィールドである場合もある。
  EcoSystem上の動物を読み込む。→

[Reintroduce Animal]を押したときに表示される画面
ここからEcoSystem上に読み込む動物を選択する。

 ただし前述したように、プライベート・ネットワーク環境ではEcoSystemに接続することができないため、自動的にTerrariumモード(シングル・プレイヤー・モード)に切り替えられてしまう。なおこのとき、エラー・メッセージ(「要求したアドレスのコンテキストが無効です」)が表示されるが、キャンセルしてしまえば問題はない。

 いずれのモードで起動しても、この時点ではまだフィールド上に動物は皆無で、謎の物体「テレポーター」(ランダムに徘徊する青玉)が動き回るだけなので、まずは上の画面に示す手順で、EcoSystemに登録されている他のプレイヤーが開発した動物を呼び出す(Introduce)ことにしよう。ただし、プライベート・ネットワークからはEcoSystemに登録された動物を呼び出すことができないので、ここではEcoSystemモードについてのみ解説し、Terrariumモード(シングル・プレイヤー・モード)については後述する。

 Terrarium上の生物はPlant(植物)、Herbivore(草食動物)、Carnivore(肉食動物)の3種類に分類され、草食動物は植物を、肉食動物は草食動物と肉食動物を食料として生活している。つまり、植物がなければ草食動物は生きていけないし、草食動物がいなければ肉食動物は生きていけない。そこで、まずは植物を適当に選択して、フィールド上に読み込み、しばらく時間をおいて植物が繁殖したら草食動物を、そして最後に肉食動物を読み込むとよい。

繁殖開始
とりあえず生物が繁殖を開始した様子。右下の全体図では、植物が緑色に、動物が赤色に表示されている。このままうまく生態系が機能していくかはプログラム・コード次第。生物が増えてくると、獲物に遭遇しやすくなる反面、条件が複雑になり、動物がおかしな挙動を示しやすくなる。

 植物はどれを選んでも繁殖するだろうが、草食動物は出来不出来によってなかなか繁殖しなかったり、植物を食べ尽くして生態系を破壊してしまったりするので、適当にいくつか試してみるといいだろう。肉食動物はもっとも難易度が高く繁殖しづらいため、いろいろと試してみるしかない。うまく繁殖を繰り返す動物を見つけたら、よく動作を観察しておこう。後で自分の動物を開発するときに参考になるはずだ。

Terrariumモード(シングル・プレイヤー・モード)

 Terrariumモード(シングル・プレイヤー・モード)は本来、開発中の動物を動作検証するために用意されたモードである。Terrariumモードでも他プレイヤーの動物を呼び出すことはできるが(この場合でも、グローバルIPアドレスが必須)、自分の動物が他のプレイヤーから参照されることはない。

 Terrariumモードで自分の動物をフィールドに放すには、動物を定義したプログラム・コードをコンパイルしてアセンブリを作り、これをTerrariumから読み込む。ひとまずTerrariumサイトの「Animal Farm」(http://gotdotnet.com/terrarium/farm/)からサンプル・コードを入手し、これを次の手順でコンパイルしてTerrariumに読み込ませてみよう。

1.ソースファイル(例:Foood3.cs)を、Terrariumをインストールしたディレクトリにあるbinディレクトリに保存する。

2.ソース・ファイルを保存したディレクトリで次のコマンドラインを実行し、アセンブリ(例:Foood3.dll)を作る。

csc /t:library /out:Foood3.dll /r:OrganismBase.dll /r:System.Drawing.dll Foood3.cs

3.Terrariumの「Introduce Animal」ボタンをクリックして、Foood3.dllを選択する。

 これを植物、草食動物、肉食動物について繰り返せば、ローカル・システム上に閉じた生態系を作ることができる。なお、いったんTerrariumに読み込ませたアセンブリは、Terrariumが動作している限り上書きできなくなるので、トライ&エラーを繰り返して動物の開発を進めるときには、ソース・ファイルをコンパイルするたびにアセンブリの名前を修正していかなければならない。EcoSystemには末尾の数字が異なるだけのよく似た動物がわんさと登録されているのは、このためだ。

 こうして作成した動物アセンブリは、EcoSystemモードでも同じ手順で読み込み可能だ。ただしTerrariumモードとは異なり、読み込まれた動物はEcoSystemに登録され、他のプレイヤーから呼び出し可能となる。


 INDEX
  [連載]世界のWebサービス―― 究極のWebサービスを求めて ――
  第10回 マルチプレイヤー・ネットワーク・ゲームTerrarium
   1.EcoSystemモード(マルチ・プレイヤー・モード)
     2.生存競争に勝ち抜くには
     3.サンプル肉食動物

更新履歴
【2002.4.23】 Terrariumおよび.NET Frameworkの正式版リリースに伴い、記事中のコンパイル方法を一部修正しました。

「世界のWebサービス」


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 記事ランキング

本日 月間