CGIでオンラインゲームを作る理由

通常、オンラインゲームを作ろうとしたときに、以下の方法が思い当たります。

  • EXEなどの実行ファイルとして作成したゲーム
  • FlashやJavaなどインタラクティブコンテンツとして作成したゲーム
  • CGIで作成したWebページ上で動作するゲーム

動作環境を考えた場合、FlashやEXE形式で作成した場合も、ゲームデータをサーバに保存するためにはCGIを介するのが一般的なので、CGIの実行が許可されたサーバに配置することになります。
開発環境を考えた場合、FlashやEXE形式は開発ツールが必要ですが、CGIならテキストエディタで済みます。
そのため、動作環境や開発環境を踏まえるとCGIでオンラインゲームを作るのが手軽だと思います。

CGIでオンラインゲームを作る際の問題点

CGIでオンラインゲームを作ろうとしたときに、最も困るのは「サーバとデータをやりとりするのに、いちいちページをリロードしなければならない」ことです。
これは、HTML的に「ある一つのプロセスにおいて、ブラウザからWebサーバへデータを渡して結果を受け取るのに、ページをリクエストしなければならない」ためです。
CGIでのゲーム作りは、これが原因でストレスの感じるゲームになってしまいます。

Ajaxを使い、リロード不要なゲームを作る

どうにかクライアント側のスクリプトでサーバとのデータ通信を行うことができれば、CGIで作ったシステムもページをリロードする必要が無くなります。
そこでJavaScriptから「XMLHTTP」というオブジェクトを使うことでサーバとの通信を行うアイデアが発見され、その仕組み(技術の組み合わせ)が「Ajax」と呼ばれています。
このAjaxという手法を使うことで、Webページをリロードすることなく、ストレスの無いCGIゲームを作ることができます。

例えばチャットを作る場合でも、普通のCGIでは、書き込みや会話データの再表示をする際に、毎回ページをリロードしなければなりませんが、Ajaxを使えばJavaScriptとCGIがデータのやりとりを行ってくれるため、ページをリロードすることなく会話データの再表示をすることができます。

Ajaxを使えばSSIでのCGI埋め込みが便利

Ajaxを使うとSSIでWebページにCGIを埋め込もうとしたときに、ただのCGIでは困っていた問題点が解決します。
例えば「3つのサイトに、投稿CGIを埋め込みたい」と思っい、投稿フォームをSSIで埋め込んだとします。
Ajaxを使わない場合、投稿フォームは埋め込めても、それをサーバに送信した後の投稿確認画面や投稿完了画面は別のページに移ってしまうため、それらの画面のデザインの切り替えが困難です。
ところがAjaxを使えば、投稿確認画面や投稿完了画面が投稿フォームと同一ページのまま切り替わるため、画面デザインの切り替え手段に困る必要が無くなります。

Copyright © 2006 Hikijishi All Rights Reserved.
[] [ajax][0.00160503387451172]