CreationCollege-TOP
Now Printing..
▲ C.College TOP▲ WebAP-Labo Top.情報局2号館

∇ 記事難度
 第1回は中級者なら問題なく分かると言う読物系です。


∇ 感想はこちらに
クリエイターズボード(掲示板)

- Article: ネットワークゲームへの道(1)

Update: 2000/8/31


UOは作れるか?

 フレッツISDNや、NTT接続料引き下げ、或いは衛星による通信網の強化など、ネットワーク接続にかかる費用や障害が少しずつ低下してきました。現在でもUOやAOKのようなネットゲーは、今までになかったタイプのエンターテインメントとして、その環境のある人たちによって愛好されています。大手ゲーム会社も水面下ではネットワークゲームについての技術を蓄えているのは確実、何年後かは分かりませんが、障壁が取り除かれれば爆発的に広がる事はほぼ間違いありません。VRを実現するのに必要であったテクノロジーも、ほぼ解決状態にあり、そのうちどこかがVRネットワークシステムをリリースしてくることでしょう。それがどのように展開されるかは、鷹月はすでに「電脳組曲-エテルナ」という仮想世界観でシミュレートしていまして、ゲームという枠を放れた存在になっていくと推測しています。

 さて、個人や同人のクリエイター達も、UOクラスとまではいかないまでも、小さなディアブロ風のネットゲームを作りたいなーと思っていることでしょうが、いかんせん「ソケットなどの知識が必要だな〜」「ゲームサーバ立てるのにいくらかかるんだ?」などの問題から、あまり展開していません。それでも、通信系のライブラリが増えてきたおかげで、個人運営の小規模なネットゲーム(複数プレイヤー対応)が出つつあります。ちょっと規模の大きなものに関しても、スミスさん等をはじめとして、いろいろ開発が行われている最中といったところです。
 まあでも、リアルタイム系多人数ネットワークゲームはまだまだ個人クリエイターにとっては荷が重いジャンルでしょう。NRPGツクール系が出れば、不自然な形で広まるでしょうが…。

 それで私なんですが、ネットワークゲームを作るには知識・技術・予算共にまだまだ不足しています。でも代わりに、お仕事の方でWebServerをばりばりに扱い、金さえくれれば強力なツールを用いて何でも作れるぜ、っという感じではあるのです。しかし、百万単位というのは個人では冗談ではないので、これは却下です。金をかけずにネットワークゲームを作るにはどうすれば良いか。また、リアルタイム系がネットワークゲームの全てではないわけですから、そもそもネットワークゲームとは何ぞやという話も含めて、いろいろ調査、検証をしながら皆さんに紹介をしていこうと思います。

オートメーションとインタラクティブの変遷

 まず、「Webとゲームの繋がり」をなんとなく時系列を追って見てみましょう。まず、通信網が普及する前は、コンピュータゲームをするなら、普通にゲームを買う以外では、CD・ディスク付きの雑誌を買うくらいしかありませんでした。(昔はメディアすら付いてなくて、ソースコード打ち込みだったんですけど、ねぇ)
 インターネットが登場して、最初に現れた形態は、「Web上でゲームを公開し、それを好きにDLできる」という形でした。これを -1- としましょう。……なんだか当たり前の事を書いていますが、この辺から始める事が結構重要なんです(^^;)。ここでは、Webは単にクライアント1台のみで動くアプリケーションの置き場を提供しているだけです。また、そのゲームをDLするユーザが複数居るわけですが、ユーザ同士の関連も特にありません。
 ここに、簡単にインタラクティブ性(相互対話)が加えられます。ゲームのスコアを報告してもらい、ある特定のページでその順位を掲示する、というものです(-2-)。なんてことはない仕掛けですが、多少はユーザ間の意識というものを出す効果があるものです。
 さて、Webで双方向性と言えば、DHTML(ダイナミックHTML)が挙げられます。CGI(Perl-Script)やJavaAppletというテクノロジーが発達あるいは認知度が上がり、それを利用した、Webブラウザ上のゲームというものが出始めます(-3-)。ただ、Java-Appletは表現力は高いのですが、プログラムをDLしてから実行するという形式かつ、セッションの概念が希薄であるために、遊び手、供給者ともにやや不快感の残るものでした。かといって、スタンドアローンのJavaでネットワークアプリを作るには、ある程度の知識と技術を必要とするので、これも個人ではなかなか手の出しにくいものでした。
 DHTMLはひとまず措いておきまして、Webとゲームの関係に戻ります。-2-ではユーザ間の繋がりをちょっとだけ演出しましたが、こんどは、ゲームの追加データ等を次々配布するという考え方が出てきました(-4-)。パズル、AVGシナリオ云々。遊び手が手動で取りに行くというステップがあるとはいえ、ここで初めてWebがアプリケーションの置き場ではなく、データの配給場となったわけです。また、データ単独を扱うという概念は、プレイヤー間のデータ交換などに繋がりました。美少女ソフトでは「カスタム隷奴」あたりが良い線を付いていたと思います。

 データを取ってくる事がスタンダードとなると、今度はオートメーション(自動化)の考え方が出てきます。カードRPG「CardWirth」や、色々あった音ゲー「BM98」は、データこそ手動で取るものとはいえ、規定のフォルダに放り込めばプラグインされて、遊び手は必要以上に意識せずに、その追加データを遊ぶことができました。(-5-)。ここまでは、Web-ゲームを繋げていったものは技術ではなくアイデアでした。
 ついでに、この時期あたりから、アプリケーションメニューの「ヘルプ」より、製作者のホームページへ行けるようになりました。最新版や新規情報をGETしやすいようになったのです。

 そんな中、いよいよWeb上のデータに直接アクセスする娯楽系ソフトが登場してきました。多機能DTA「ペルソナウェア」がそれです(-6-)。Web上のある場所に最新版のデータを置いておき、アプリケーション上でアップデートを指示するとデータを取ってくる、という機構になっていました。(常にネットに接続しているわけではないため、そのタイミングは手動になるのはやむを得ない)
 別にペルソナウェア自体はソースを公開したわけじゃありませんが、「ああ、そういう手段があったね」と、我も我もとプログラムに少し覚えのある人が、この手法に挑戦しはじめました。その結果、「ネットワーク上のデータをアプリケーションが取得する」→「そのデータを使ってゲームのデータとする」という流れが登場しました。(-7-)リアルタイム系ではないし、ユーザ間の関係はないとはいえ、ここまでアプリ(非ブラウザ)とWebとの関連が深くなってくると、もうネットゲームの範疇に入れるべきでしょう。

 このように、情報を一方的に受信、活用する形のアプリケーションが現在増えてきていますが、ここでユーザ側から情報を送信しようという試みも出てきました。但し、これは知らない人は知っておくべき事ですが、ネットワーク上はセキュリティが堅く、読み取りはできても書き込みは極端に禁止しています。VBScriptやJavaScriptではまず不可能と言って良いでしょう。とまぁ、困難ではあるのですが、考えてみれば、DHTMLのCGIは容易く情報を書き込んでいます。CGIの考え方(CGIについては意外に知らない人もいると思いますので、そのうち別項で解説しますね)自体セキュリティ的に甘いと言われればそれまでなんですが、ともあれ、アプリケーションはサーバ上のCGIを呼び出すと言う形で、実は簡単にデータを送れる(サーバにデータを保存する)という事が分かりました。「呼び出すCGIアドレスに渡すパラメータを付けてあげればいい」わけですね(-8-)。このアイデアはネット上では殆んど公表されてはおらず、鷹月が独自で思いついたものですが、きっと他の人も考え、実装していることでしょう。
 これにより、-2-で紹介したようなスコアページの更新も自動で行なえるようになりました。ソケットを用いてコネクションを張って云々という作業や、ゲームサーバを用意する事なしに、プロバイダのホームページをデータ置き場(読み出し&書き込み)として、活用できるようになりました。ネットに接続した状態で、一定間隔ごとに情報を送信、受信するようにすれば、なんとなくリアルタイムのネットゲームも作る事が可能、というわけです。(但し、あまり負荷をかけるとプロバイダから立ち退き食らいますので要注意)

 勿論、ソケットを操作して、IPアドレスを割り当てられた特定の数人内で遊ぶネットワークゲーム(チャットシステムの延長)も出ています。ただし、こちらはいわゆるTCP/IPを用いたクラサバシステムなわけで、製作にはそれなりの技術力を必要とします。それに比べて-8-の方式はどうでしょう、要するにホームページ上のデータさえ取ってきて、あとはCGIでちょいとデータを保存する仕組みを用意しておけばいいだけ。まあ、作れるソフトはある程度規定されますが、通信系の知識なんて殆んど必要ないはずなのです。
 ……で、ホームページ上のデータはどうやってアプリから取得するの?という問題がありますね。でも大丈夫、M$寄りの(=InternetExplorer4.x以上がインストールされている)マシンなら問題なしです。IE4.xの核となっているActiveXオブジェクトを操作すれば一発なんです。ということで、次回あたりにその辺を紹介しましょうか。但し、ソースはDelphiになりますが……。

とりあえずまとめ

 以上、Webとゲームの間の繋がりが、次第に密接になっていった経過を紹介しながら、簡単なネットワークゲームの製作方式もまとめて書いておきました。(両方混在してるから、まとまりのない文章になってしまったかもしれません)時系列は別に厳密に見てはいないので、その辺は突っ込まないでね。あと、別にペルソナウェアやCardWirthが新境地を切り開いたと断定するつもりもないです。進歩したと思った作品の中で代表的なものを取り上げてみただけなので。
 えー、では次回「ネットワークゲームへの道(2)」で、-7- あたりの実装コードとかバイナリを置いてみることにしますか。なんだかんだで先端的な分野なので、こういう記事を読みたい人も多いかもしれませんね。お楽しみに。感想もどしどしお待ちしています。

- 鷹月ぐみな


.
Copyright- 鷹月ぐみな(gumina)たかつきCOMPANY 1997-2000.▲ C.College TOP