HTML5でマルチプレイヤーゲームを開発することは可能ですか?


9

HTML5がWebゲームに最適であることは知っていますが、複数のユーザーでオンラインゲームを開発し、全員を同期させてログインなどを処理できるかどうかはわかりません。これは可能ですか?

回答:


7

HTML5だけでは記述できません。ブラウザのスクリプトのセキュリティ制限のため、また不正行為を防止するために、ユーザー間の通信を処理するにはスクリプトとサーバーが常に必要です。

多くの人がマルチプレイヤーhtml5ゲームを書いています。私もそうです。html5自体の使用は、おそらく最も重要な部分ではありません。(すべてではないにしても)必要なもののほとんどは、html 4.01でも利用できます。例外はcanvasですが、canvasはsvgよりも遅く、svgはすでに多くのブラウザーで利用可能でした。

「html5ゲーム」マニアを本当に生み出したのは、サーバーサイドアプリをJavaScriptで作成する機能だと思います。これは、すべてのクライアント側のプログラマーが突然システム全体を自分で作ることができることを意味し、彼らは通常、ゲームのようなものに関しては創造的な人々です。言うまでもなく、JSはとても簡単なので、おばあちゃんでもプログラムできます。多分。

OPからのコメント後に更新:

ブラウザゲームの一般的なアーキテクチャは

          Client                                     Server
|-----------------------|                   |---------------------|
View - input/output logic - Communication - Validation - Game World
              |                                              |
   client database (if needed)                    server database (if needed)

または実際の「言語」に関して:

  • クライアントビュー:HTML5(angular.jsを使用している可能性がありますが、LOTSがどの程度高速であるかはまだテストしていません。raphael.jsの「グラフィックス」も確認してください)
  • クライアントロジック:JavaScript(jquery / vapor / plain / whatever)
  • クライアントデータベース:WebSQL(HTML5 "スイート"の一部だと思います)
  • 通信:socket.io(最適な通信プロトコルを自動的に検出するためのJSライブラリ)を介したJSON(Javascriptオブジェクト表記、基本的にシリアル化されたJavaScriptオブジェクト)
  • サーバー言語:JS(いくつかのコアに大量の同時ユーザーがいる場合、node.jsでも、他のソリューションも利用できます)
  • 検証:(クライアントからの)着信ゲームデータが有効であることを確認するだけです。送信は、クライアントであってもチェックする必要はありません。正しいとされています。常に
  • Game World:すべてのクライアントが入ってきたときに再配布される検証済みデータのコレクション
  • サーバーデータベース:couchdb、mongodb、生のjsonオブジェクトを操作できるデータベース。

あります。JavaScriptとHTMLのみを使用して記述された完全なインターネットゲーム。素敵です。


私はあなたの答えを非常に興味深いと思います、私はどのパーツをエンドツーエンドで構築するべきか(最も重要です)、どのテクノロジーが各パーツにフィードするかについて少しアドバイスをくれますか? 。ありがとう!
arrrrgv

1
+ 1、HTML5が大流行ですが、人々がそれに起因するものは主に4.01の機能とJavaScriptです。JavaScriptを簡単に呼び出さないでください。特典がありますが、実際のプログラムを書きたい場合は、本物のプログラマになる必要があります。JavaScriptは変数宣言とメモリ管理の雑用を取り除きますが、コードの編成やアルゴリズムとデータ構造の理解を容易にすることはありません。プログラマーの考え方とそれらのタスクの経験は間違いなく必要です。
aaaaaaaaaaaa

@eBusinessとは、プログラミングの点で非常に凝縮されており、そのユースケースが文書化されて死ぬということです。あなたはいつもあなたが望むことをするチュートリアルや関数を見つけることができます。そして、設定は簡単です(必要ありません。すでにブラウザにあります)。
Tor Valamo

@arrrrgvがあなたの質問への回答を含む更新された投稿
Tor Valamo

1
+1は良い答えですが、HTML5ゲームの台頭はサーバー側のJavaScriptとは関係がないと思います。厳密に言えば、JSはHTML5の一部でさえありません。HTML5ゲームを後押しするのは、キャンバス、webGL、オーディオとビデオ、ローカルストレージなどの新機能だと思います。そしてもちろん、それが新しくて宣伝されているという事実は誰もがワゴンを飛び越えます。
bummzack

3

http://smus.com/multiplayer-html5-games-with-nodeの記事と、記事で提供されているソースをご覧ください。これは、ネットワーキングにもJavaScriptを使用することに注意してください。


2
混乱を避けるため、「JavaScript」は1つの単語として記述してください。
o0 '。

ある日、Node.jsは不要になります-Webソケットのクロスブラウザーサポートが広く普及している場合です。
エンジニア

ブラウザー間でのWebソケットのサポートが、ブラウザー外のサーバーコンポーネントの必要性を変える理由がわかりません。クライアントがクライアント間で直接接続するのではなく、中央サーバーに接続するように、常にマルチプレイヤーゲームをプログラムする必要があります。
ジョッキング

1
また、NowJS(nowjs.com)もチェックしてください
Tim Holt

Webソケットは本質的にどのアプリケーションに対しても安全ではありません。これが、計画された実装が非常に多くのブラウザーによって中止された理由です。「どこでも」にアクセスでき、同時に「どこでも」から入力を受け取ることができる環境を許可することはできません。
Tor Valamo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.