0

私は、最大6人のユーザーが「リアルタイム」で接続してプレイできるマルチプレイヤーiPhoneアプリケーションに取り組んでいます。私はホスト型および非ホスト型のソケットサーバー(SmartFoxElectroServerPhoton / NeutronProjectDarkstar)を見てきましたが、サービスや実装に関する推奨事項があるかどうか疑問に思っていますか?ZyngaのLivePokerのようなゲームがこのタイプの機能に何を使用するのか、またはどのような種類のハードウェアが必要になるのか、誰かが知っていますか?

いくつかのサブ質問:

  1. ゲームはターン制です。AMFを使用してサーバーをポーリングする方が理にかなっていますか、それともソケットベースのルートを使用する必要がありますか?私の現在の懸念は、同時接続の制限とホスティングコストです。

  2. デバイスをソケットサーバーとして「ブロードキャスト」することは可能ですか?つまり、すべてのプレーヤーを接続したら、6つのデバイスの1つをソケットサーバーとして割り当て、そのデバイスを介してすべての通信をプッシュできますか?それはおかしいでしょうか?それは並行性の問題を回避するでしょう、そして私は最初の接続のためのロビーとしてソケットサーバーサービスに頼る必要があるだけです。割り当てられたユーザーは、ゲームからサーバーへの通信を容易にするために接続を維持します。

4

1 に答える 1

2

1.1。

ポーリングを使用する方がはるかに簡単です。ゲームはターンベースであるため、比較的遅い速度(おそらく数秒)でポーリングできます。これは、バッテリーの消耗が少ないことを意味します。とは言うものの、ソケットまたは持続的HTTP接続を使用することは、それを行うためのより巧妙な方法です(そしてはるかに多くの作業が必要です)。これらの2つの質問は興味深いかもしれません:

ポーリングによって駆動されないチャットサーバーを作成するにはどうすればよいですか?

iPhoneのCOMET(サーバーからクライアントへのプッシュ)

なぜAMFを使うのかわかりません。なぜJSONではないのですか?または多分HessianKit

2.デバイスの1つをサーバーとして指定することは非常に理にかなっています。同期する必要のあるゲームクライアントの完全に分散化されたネットワークを持つことは、非常に難しい作業です。繰り返しになりますが、ゲームはターンベースであり、完全なリアルタイム同期を必要としないため、集中状態になるとレイテンシが長くなることを心配する必要はありません。

ユーザーがローカルネットワークを介してプレイする場合は、GameKitの使用を検討する必要があります。

于 2010-03-02T02:52:41.393 に答える