GameCenterを使用してターンベースのゲームを作成してみました。デフォルトでは、GameCenterは、多数の参加者のうち、常に1人のプレーヤーが「プレイバトン」を保持し、このプレーヤーが現在のゲーム状態に影響を与えることができる唯一のプレーヤーであると想定していることを理解しています。ゲームプレイは非同期です。つまり、誰の番でも時間がかかる可能性があり、他のプレイヤーは自分の番になると通知されます。
ここまでは順調ですね。
ここで、GameCenterを使用して、類似しているがわずかに異なる種類のターンベースのゲームを実装したいと思います。非同期ゲームでは、シリアルプレーヤーの連続ではなく、プレーヤーが並行してターンを行い、その後、新しいゲーム状態に統合されます。すべてのプレイヤーは自分の動きを「提出」しました。
このための良いモデルゲームは、じゃんけんです。両方のプレイヤーが密かに動きを決定します(「岩」、「紙」、または「はさみ」)。それらがサーバーに送信される順序は任意です。つまり、進行中のラウンドで移動を送信しようとしたときに、「自分の番ではない」タイプのエラーが発生することはありません。両方が動きを変えると、すべてのプレーヤーの選択が明らかになり、現在のラウンドの勝者が決定/宣言されます。
問題は、設計または回避策のいずれかによって、この種のゲームにGameCenterインフラストラクチャを使用することは可能ですか?もしそうなら、何が良いアプローチと見なされますか?