多くの記事を検索して読み、GKTank アップル サンプルを見ました (問題の詳細はわかりません。発生したイベントを処理しているようです)。
ブルートゥース/インターネットを介したマルチプレイヤーゲームで(おそらく)、レイテンシーなどを考慮して正しいゲーム結果が得られるように、プレイヤーのやり取りをどのように同期しますか...
例えば:
Bluetooth 経由で接続された 2 つの別々のデバイスの各プレーヤー A と B にボタンが表示されます
プレーヤー A がボタンを押す (プレーヤー A はゲームをホストしているため、遅延は問題にならない) プレーヤー B はプレーヤー A の直前にボタンを押すが、プレーヤー A のデバイスへの接続には少なくとも 200 ミリ秒のネットワーク遅延がある
問題: ゲームは、プレーヤー A のタッチ要求が最初にゲーム コードに到達する場合でも、プレーヤー B が最初に押されたことを知る必要があります。つまり、ホストしているプレーヤーには利点がありません。
タッチイベントにタイムスタンプがあることはわかっているので、プレスの実際の時間がプレーヤーBからゲームコードに送信されたことを確認できます...しかし、それが正しいアプローチであるかどうか、そしてそこからどこへ行くべきかはわかりません. .
答えは、タッチがすぐに処理されるのではなく、ゲームサイクル内で処理されるゲームの時間サイクルにあると思います...
これに関するヘルプ、またはこれを処理するチュートリアルまたは特定のソースコードへのポインタをいただければ幸いです。
アダム