2012-01-14 18 views
0

それは私が「ドットゲーム」、のは言わせために、アーキテクチャと思っていますについての最新のジャガーノートの宝石(https://github.com/maccman/juggernaut)ジャガーノートの宝石

です。このメタゲームはとてもシンプルです.Juggernautの点でチャンネルに登録されている各ログインユーザは、JSキャンバス上のランダムな色の点です。ユーザーは任意の方向に彼のドットを移動することができます。それでおしまい。

Juggernautは、接続されたクライアントのすべてのデータを転送してプッシュする必要があります。

現在私はアーキテクチャをイマジン:

1)クライアント(複数可)は、例えば、レールにAJAXとして([1、[10299]])、ドットと、プレイヤーのIDの座標を押します。

2)Railsはジャガーノートプッシュがこのチャンネルに耳を傾けるすべてのクライアントに戻って座標)ジャガーノート

3に、このデータをプッシュします。

Juggernaut.publish("coordinates_channel", [1, [10,299]]) 

問題:

1)iのピクセルごとのためにjsのキャンバス上の「ドット」オブジェクトの移動が必要な場合は、私はあまりにも多くのAJAX要求を送信する必要があります。例えば、私のドットが毎秒20ピクセル動いたら、毎秒20リクエストを送る必要があります。容認できない。

2)Juggernaut.publishを非同期ループ(たとえばEventMachineを使用)にラップする必要がありますか? 1000個のクライアント(点数1000、更新された座標でのデータの流れ)...

おそらく私は間違ったクライアントサーバーをJuggernaut gemを使って取得しますか?この実装についてどう思いますか?

ありがとうございます。

答えて

3

WebSockets /ロングポーリング/その他の彗星技術は、待ち時間が短く、ゲームが遅れることがあります。私はウェブスロットを介してリアルタイムゲームの実装を見てきました。どちらか遅れていたり、どちらかのゲームの仕組みが特定のものになっています。古典的なAJAXは間違いなく疑問を投げかけています。ここで

は感謝遅れ
Valve Source Multiplayer Networking
Unreal Source Multiplayer Networking

+0

を改善することにいくつかのリソースです。リンクは本当に面白いです、私は数年前にQuake3について同じことを読んでいました。 –