- ベストアンサー
FLASHでネット通信
オンラインカードゲーム「アルテイル」等のように、 FLASHを用いたネット対戦(通信)は、 FLASHのみで行えるのでしょうか? それとも他のものと連携しなければならないのでしょうか。 よろしければ通信を行う具体的な方法も一緒に 教えていただけると幸いです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
実際の登録や対戦はやってみてませんが, アルテイルのサイトを少し見てみました。 簡単に言えばココ(「OKWave」や「教えて!goo」など)と同じです。 いろいろと思考した上で人と人とが対戦ではないですが問答して, 人に点をあげたり,自分の点が貯まったりする機能も同じようなものです。 超簡単に言うと, ココ(「OKWave」や「教えて!goo」など(以下ココと省略))のインターフェイス(ユーザーインターフェイス)がHTMLであるのに対して アルテイルのインターフェイスがFlashなだけです。 「ユーザーインターフェイス」 http://e-words.jp/w/E383A6E383BCE382B6E382A4E383B3E382BFE383BCE38395E382A7E383BCE382B9.html 簡単に言い過ぎていますけどね…。 ゲームの本体はCGIやPHPなどのサーバサイドのプログラムと,サーバ上のデータベースです。 サーバ上には形式はよくわかりませんが,ExcelやAccessような表データ,もしくはXMLにようなデータの入ったファイルがあるのです。 その表のようなデータをダーーっと見せられても面白くありませんし訳がわかりません。 またブラウザで直接ちゃんと見られるような形式のものでもありません。 まず,必要なのは,見る人によって必要な部分を取りだしてくるプログラムです。 それがサーバサイドのプログラムであるCGIやPHPなどです。 次に,取りだすだけでは,対戦(対話)になりません。データベースに人が入力できないとだめです。 そのデータベースの書きかえをするプログラムが必要です。 それもサーバサイドのプログラムであるCGIやPHPなどです。 ここまでで,データを「取りだす」とデータに「書き込む」がなんとかできます。 データ取りだしてきても,まだブラウザに表示することはできません。 取りだしてきて,ブラウザの表示できる形式に変換しなければだめです。 変換するのもサーバ上のプログラムであるCGIやPHPなどです。 それで,ココの場合はPHPでサーバ上のデータをHTML形式に変換して,クライアントPCのメモリ上にHTMLをダウンロードさせています。 そしてそのメモリ上にダウンロードされたHTML形式のものがブラウザに表示されているのです。 その生成したHTMLには「この画像(文字)をクリックしたらコレコレこういう値をPHPに送信しろ」というプログラムも書かれていて,クライアントサイドから送られてくるそのクリック情報を元に,またサーバ上のPHPが作動して新たなるHTMLを生成し,クライアントPCに新たなるページを送信するのです。 また,「質問する」「回答する」などという入力インターフェイスもHTML形式で生成しています。 その入力インターフェイスに書き込まれた新たなるデータをHTMLでPHPに送信し,サーバ上のPHPで受けとって,データベースに書き込むわけです。 だからココの場合は,99%サーバ上のプログラム(PHP)を使っていることになります。 ごく一部,HTMLやJavaScriptなどクライアントサイドのプログラムも使用してしています。 でもHTML形式の生成されたデータは単なるインターフェイスと同時に情報を送信プログラムです。 アルテイルの場合もほぼ同様です。 インターフェイスがHLMLではなくてFlashです。 まず,サーバ上のプログラムが,使う人がどのFlashファイルが必要なのかを選択し,そのFlashファイルとともにデータをこんどはHTMLではなく,Flashで読み込める形式のデータに変換します。 そのFlashのファイルとFlashで読み込める形式のデータをクライアントPCのメモリ上にダウンロードさせています。 HTMLの場合は,基本的に動きません。アクティブに動かそうと思えば,HTMLを1秒間に十数回更新し,更新した都度ブラウザにリロードさせなければなりません。 それはサーバの負担にもなりすぎますし,相当の回線も必要になります。 そこで必要になるのが,JavaScriptやFlashやJavaアプレットなどのクライアントサイドのプログラムです。 これらはクライアントサイドのプログラムはPCのメモリ上に一度ダウンロードされると,更新を度々繰り返さなくても自動的にしばらく,クライアントのPCのCPUやメモリを使用して動作してくれます。 中でも,Flashはインターフェイスを作るのには非常に適しています。 作りやすく,軽く,融通がききます。また,FlashPlayerはゲームをするためにわざわざインストールしなくても,たいていの人は持っています。 ゲーム作成者も本来Playerまで作らないとならないところですが,その手間も省けます。 というわけでFlashがインターフェイスとして選ばれることも結構あります。 ~余談かも,でも重要!~~~ よく知りませんが,対戦型のゲームはFlashはそんなに使われていないのではないのでしょうか。 ShockWaveか,もしくはクライアントサイドで動くプログラムをゲーム作成会社で作ってしまって,それ専用のソフトとしてインストールさせているのが多いように思いますが… ひょっとしたらアルテイルの本体はFlash Communication Server やFlexで作られているのかもしれません。 「Flash Communication Server MX」とは http://www.mitsue.co.jp/case/design/f_048.html 「Flash Communication Server MX 1.5」 http://www.macromedia.com/jp/software/flashcom/ 「Flex ってなに?」 http://www.geocities.jp/takuji_kawata/first/aboutflex1.htm 「Macromedia Flex」 http://www.macromedia.com/jp/software/flex/ それぞれがどういうものか私自身よくわかっていませんが…(;^_^A , まぁとにかく,Flashを使うとそういうクライアントサイドで動くソフトを作る手間が省けるわけです。 ~~~~~~~~~~~~ それで,そのサーバサイドから送られてくる情報を元に,クライアントサイドでFlashが動くのです。 またFlashからサーバサイドのプログラムに情報を送信しているのです。 ちなみにクライアントサイドのFlashからはテキストデータしか送信できません。 アルテイルの場合はカードをやりとりするものなのかどうかわかりませんが,もしするなら,実際には画像のやりとりはできません。 仮に対戦者Aから対戦者Bにカードが送られるとしたら,それは,「AからBにカードを送る」という意味のテキストデータがサーバサイドのプログラムに送信されます。 その「AからBにカードを送る」という意味のテキストデータを元に,そのカード画像をサーバサイドのプログラムがFlashを通して対戦者BのPCに表示させているだけです。 その他,ログインするプログラム,登録するプログラムなどなど…を合わせると, クライアントサイドのFlash部分というのは,10%もあれば良い所ではないでしょうか。 正に「氷山の一角」。 クライアントサイドではFlashとHTMLの部分しか見えませんが,水面下(サーバサイド)にはとてつもないプログラムが動いていると思われます。 ゲームに限らず普通のサイトを見るときでも, 「サーバサイド」「クライアントサイド」というのを意識して見られると,概念みたいなものはわかってくると思います。 CGIとFlashでの具体的な作り方などは,下記参考URLなどを参考にしてみてください。 くわしくはわからないとは思いますが少なくとも入口にはなると思います。 「クジラ式 FLASH CGI」 http://hima.chu.jp/flash/index.htm 「ゲームの作り方 by ねこ伯爵」 http://homepage2.nifty.com/GIZMo/makegame/makegame.html ※ ちなみに次期Flex2ではActionScript3.0が使われるようになり,それの前段階として近々FlashPlayer8.5が出るということです。現在最新版FlashPlayerは8,0,22,0です。 http://www.macromedia.com/jp/macromedia/proom/pr/2005/announcing_flex2.html
その他の回答 (1)
- tomuo
- ベストアンサー率51% (20/39)
こんにちは。 対戦相手と情報をやり取りするには、Flashだけでは行えません。 サーバーサイドのプログラムが必要になります。 サーバー側プログラムを何で作るかはケースバイケースです。 FlashCommunicationServerや、各種XMLSocketサーバ、CGIなどあります。 どの方法にするにしても色々調べて勉強しないといけないと思うので、こうすれば対戦できますというほど簡単には説明できないです。 http://www.macromedia.com/jp/software/flashcom/ http://faces.bascule.co.jp/link.php
お礼
ありがとうございます。 サーバー側でプログラミングする方法は たくさんあるんですね、 勉強してがんばってみます。 助かりました。
お礼
こんなにたくさん書いてくださって、 ありがとうございます。 詳しく詳しく書かれていてありがたいです。 やはりサーバー側で相当のプログラムを 組まなければならないのですね。 色々と参考になりました、 助かりました、ありがとうございます。