連載世界のWebサービス ― 究極のWebサービスを求めて ―第10回 マルチプレイヤー・ネットワーク・ゲームTerrarium 田口景介 |
今回は少々趣向を変えて、PDC 2001レポートでも触れられていたネットワーク・ゲーム「Terrarium(テラリウム)」を紹介しよう。
Terrariumの実行画面 |
Framework上に実装されたマルチ・プレイヤー・ネットワーク対戦ゲーム。プレイヤーは各自プログラミングした動物を持ち寄り、フィールド上で動物同士を戦わせる。技術的にも見所の多いアプリケーションだ。詳しくはhttp://gotdotnet.com/terrarium/を参照。 |
Terrarium(飼育器)とは、.NET Framework上に実装されたマルチ・プレイヤー・ネットワーク・ゲームである。もっとも、ゲームといっても派手な演出や効果音が鳴り響くエンターテインメント性の強いものではなく、プレイヤーがプログラミング・コードをもって調教した動物をフィールド上で競い合わせる、ライフサイクル・ゲームの1つである。プログラミングした動物をフィールドに投入した後は、プレイヤーは自分で設計した動物が生態系の中で育っていくのを見守るだけなので、一種の環境ソフトとも言える。
これまでにも、古くはcorewarsやcrobotsなど、プログラミング・コード同士を戦わせるゲームはいくつも存在していたが、TerrariumはEcoSystemと呼ばれるサーバに登録された動物(プログラム・コード)をインターネット経由で呼び出し、ローカル・システム上で戦わせることができる点で従来のゲームとは大きく異なる。
Terrariumのシステム概要 |
各プレイヤーのローカル・システム上には、フィールドが個別に用意されるため、複数のプレイヤーが共通のフィールドを共有することはない。他のプレイヤーが公開している動物(プログラム・コード)をローカル・システム上で活動させることによって、マルチ・プレイヤー環境が実現されている。他プレイヤーの動物はEcoSystemを介して明示的に呼び出すことができるが、テレポーターによって自動的に転送されてくることもある。 |
さらに、ゲーム・フィールドに登場するテレポーターによって、動物が他のプレイヤーの元へランダムに転送されることがあり、EcoSystemに接続しているだけで、自動的に対戦相手が送り込まれてくる仕組みになっている。ただし、現在のTerrariumの実装では、ファイア・ウォールやNATルータの内側で、プライベートIPアドレスが設定されたPCからはEcoSystemに接続することができない。この場合Terrariumモードと呼ばれるシングル・プレイヤー・モード(後述)しか利用することができないが、この制限は今後解消される予定とされている。
技術的に見ても、Terrariumは興味深いサンプルとなっている。Windows FormsとDirect Xを利用した.NETアプリケーションとして実装されていること、リモート・ホストからプログラムを取得して、安全にローカル・システム上で実行するセキュリティ・システムの実例となっていること、そしてサーバあるいはクライアント間のPeer-to-Peerでの情報交換がXML Webサービスを用いて行われていること。すべての面で気になるトピックが満載の.NETアプリケーションである。いつかソースが公開されることを期待したい。
Terrariumはまだ開発途上でシステムがフィックスしていないうえ、ドキュメントも完全には整備されていないが、比較的手軽にコーディングして参加できるので、Webサービスやら.NET Frameworkやら、難しそうだし堅苦しくていかん、というむきにもお勧めしたい。なお、Terrariumを実行するには.NET FrameworkのRCバージョンが必要になるが、原稿執筆時点ではまだベータ2までしか一般には配布されていない。おそらく近日中にはダウンロード可能になるはずなので、MSDN Online .NET Informationをチェックしておこう。
■追加情報(2002/4/23)
TerrariumはマイクロソフトのTerrariumサイトよりダウンロードすることができます。これは日本語版の.NET Framework(製品版)上で実行可能です(編集部)。
INDEX | ||
[連載]世界のWebサービス―― 究極のWebサービスを求めて ―― | ||
第10回 マルチプレイヤー・ネットワーク・ゲームTerrarium | ||
1.EcoSystemモード(マルチ・プレイヤー・モード) | ||
2.生存競争に勝ち抜くには | ||
3.サンプル肉食動物 | ||
「世界のWebサービス」 |
- 第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用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|