1

元の質問: iOS開発者ライブラリはゲームキットプログラミングガイドで次のように述べています

クライアント/サーバーゲームの最大サイズは16人のプレーヤーです。

この制限はP2PGKセッションにも適用されますか?

これはすでにここで一種の質問でした(しかし別の角度から)。

更新された質問: 4つ以上のピアが接続されている場合、GKSessionは信頼できますか?

注:質問は、以下のsaulobritoによる回答に基づいて更新されました。

参照:接続されたピアの大規模なグループを使用するアプリの1つの例は、Seedioです。Bluetoothは接続のオプションではないため、GKSessionを使用していないことに気付くでしょう( GKSessionでは、BluetoothやWi-Fiを選択することもできません。GKSessionがそれを行います)。ブルートゥースではなくWi-Fiを選んだ理由。

4

2 に答える 2

3

iOS 6.0 では、GKSession が少なくとも 6 人のプレーヤーを許可することを確認できます。ただし、状態が接続済みに変わるまで、ピアにメッセージを送信しないようにする必要があることがわかりました。

全体として、GKSession は素晴らしくシンプルな API だと思います。BluetoothまたはWiFiを使用するため、電話がWiFiネットワークに接続されているかどうかを考える必要さえありません. レイテンシーは良好で低くなっています (信頼性の低いネットワークでは 4 ミリ秒、信頼性の高いネットワークでは約 10 ミリ秒と測定しました)。

私の主な警告は次のとおりです。

  1. 可能であれば、信頼できないメッセージを使用してください。
  2. アプリケーションの終了時に .available を NO に設定してください (広告中に終了した場合は、ファントム セッションを開いたままにしておくことができます)。
  3. 問題のピアが接続状態に変わるまで、ピアにメッセージを送信しようとしないでください。
  4. 切断した後に gksession を再利用しようとしないでください。
  5. 接続試行を再試行する必要がある場合があります (接続試行が失敗した場合、自動的に 3 回再試行します)。私のタイムアウトは10秒です。
  6. 信頼できるメッセージを抑制します。私は限界が何であるかを完全には把握していませんが、最終的には送信バッファを吹き飛ばし、遅延が膨らむようです. 繰り返しますが、信頼性の低いメッセージングを使用する場合、これは問題ではありません。
于 2012-12-14T22:32:53.103 に答える
3

私が断言できるのは、GKSession は非常に不安定であり、これらのドキュメントを信用すべきではないということです。実際、Apple は最近、ドキュメントを完全に削除することを決定しました。

私は多くのテストを行いましたが、実用的な制限は 4 つの接続デバイス (サーバーとして機能する 1 つとクライアントとして機能する 3 つ) であることをお勧めします。もちろん、独自のテスト シナリオを実行することをお勧めします。

また、4 人以上で遊べるゲームも見つかりませんでした。私が知っていたのは、Apple 独自の Texas Hold'em だけでした。これは 8 人のプレーヤーを許可していましたが、削除することにしました。

そして最後に、Game Centerはピアツーピア ゲームに4 プレイヤーの制限を課しています。

はい、10 人のプレーヤーをサポートする必要があるゲームを開発していますが、テストでは、デバイスが 4 つを超えると不安定になり、使用できなくなりました。不安定とは、ピアが見つからず、1 分もかからずに接続が切断される場合があることを意味します。さらに悪いことに、iOS 6 にアップデートすると、メッセージを送信しようとしてフリーズする (エラーなし、スタック トレースなし、何もない) などの奇妙な動作が発生しました。その他の奇妙な点: プレーヤーが接続を失うと、他のすべてのプレーヤーが切断されます。

編集:その応答以来、多くのテストを行い、共有する情報がさらにあります:

iOS 6 を使用して、wi-fi または bluetooth を使用して 9 台のデバイスで確実に再生できました。ただし、まだ大きな問題があります。iOS 6 を使用するデバイスを iOS 5 を使用するデバイスに接続することはできません。これは、いずれかのデバイスで Wi-Fi が有効になっている場合、スタック トレースのない原因不明のフリーズに時々直面するためです。 . アプリでサポートされる最小バージョンとして iOS 6 を設定するか、ユーザーに Wi-Fi を無効にして Bluetooth を使用するように依頼する必要があります。

于 2012-10-22T14:59:05.267 に答える