HTML5ゲームへのマルチプレイヤーの追加[終了]


15

私は現在協力プレイをしているゲームを作ることに興味がありますが、これをHTML5で実装する最良の方法について興味があります。

ストレートCソケットを使用する前にゲームを作成し、SDLのNetライブラリも使用しました。

キャンバスベースの環境でこれを行うための最良のオプションは何ですか?

現在、私が思いつくのは、AJAX /データベースソリューション(高リフレッシュレート)、または何らかの方法でソケットを介してデータを送信するPHPサーバーを実装することです。


全体的なゲームプレイは2.5Dプラットフォーマー型のゲームになるため、両方のクライアントをプレイヤーの位置、敵の位置、発射物、環境データなどで継続的に更新する必要があります。


1
websockets(en.wikipedia.org/wiki/WebSockets)が最終的に完成(および実装など)されると、おそらく良い方法になりますが、それまではAJAX(Xなしで、これにXMLは必要ありません)がおそらく最良の方法だと思います(私が思うにあまり良い方法ではない)。
エルバ

Webソケットのサポートが急速に低下しているようです
...-the_e

スタンドやゲームを作りたいですか?ゲームを作りたい場合; わざわざhtml5に行きません。

@stefan:なぜ両方ではないのですか?まだ完成していないからといって、それで作業できないというわけではありません!
-the_e

回答:



5

この回答を参照してください。

ただし、WebSocketが広く利用可能になるまで、使用可能な場合はFlashを使用して、フォールバックをスクリプトに提供できます。Gimiteのweb-socket-jsはそのような無料の例です。ただし、Flash Socketsと同じ制限が適用されます。つまり、サーバーがソケットポートへの要求に応じてクロスドメインポリシーを吐き出さなければならず、プロキシ/ファイアウォールで問題が発生することがよくあります。(Flashソケットは直接作成されます。HTTPプロキシを介してのみネットワークから抜け出すことができる、パブリックIPに直接アクセスできない人にとっては、機能しません。)


3

彗星」は、おそらくここで使用できる包括的な用語です。ただし、WebSocketsはより安全なオプションです(安全であることに満足している場合)。


3

Node.jsが答えです。リアルタイムマルチプレイヤーシューティングゲームの開発に使用しましたが、開始から終了まで約1か月かかりました。レイテンシを最小限に抑える必要があり、コンセプトが機能するためにはすべてのプレーヤーが別のプレーヤー内で同期を保つ必要があるなど、いくつかのユニークな課題がありました。

クライアント側とサーバー側は両方ともJavaScriptで記述されており、互いにクラス/ロジックを共有しています。バグを修正しようとすると、すべてを2回実装する必要がないため、それがカウントされ始めます。

約2か月間、ゲームは再起動されることなく稼働し、何千もの試合が行われました。

Socket.ioはソケットの実装であり、node.jsを使用しますが、この時点ではゲームには肥大化しすぎています。node.jsのgithubには他にもwebsocket実装があり、それを使用したゲームの例もあります。


2

常にAJAXと何らかのメッセージキューを使用できます。ActiveMQは良い例です。サーバーでActiveMQを実行すると、JavaScriptがメッセージを送受信できます。各プレイヤーに一意の名前を付け、他のプレイヤーにメッセージを送信するだけです。




2

あなたが面白いと思うかもしれないマルチプレイヤープラットフォームに取り組んできました。このプロジェクトはwww.16cubes.comご覧いただけます。ピアツーピア通信を行うためのシンプルなJavaScriptレイヤーを提供しています。これは、Cometの原理にある程度基づいており、WebSocketが少し標準化されたため、WebSocketの使用に移行する計画があります。一方、自動対戦相手のマッチング、ゲームチャット、Facebookの友達のワンクリック招待など、既製の機能をいくつか提供しています。

デモチックタックトーがあります。見れば、おそらくより良いアイデアを得ることができます。はい、匿名でプレイすることもできます。必要ない場合は、登録は不要です。コーディングする必要があるJavaScript APIは10個未満で、www.16cubes.com / documentationで入手できます

フィードバックを積極的に探しているので、良い点と悪い点の両方をお知らせください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.