ドキュメント

サポート

Cloud Code

ゲーム状態管理

Model full game state on a backend server to enforce rules and validation, and prevent cheating.
読み終わるまでの所要時間 1 分最終更新 22日前

サーバー認証を実装するには、バックエンドサーバー上で完全なゲーム状態をモデル化します。これは、各プレイヤークライアントがビューポートとして機能し、サーバーがルール、検証、チート防止 を適用することを意味します。ゲーム状態データを Cloud Save に保存して、ゲームがクライアント間で永続化され、任意の時点から再開できるように設定できます。 サーバーゲームの状態管理は、クライアントがプレゼンテーションを処理する間、クラウドサーバーを正しい情報源として活用するので、非同期マルチプレイヤーゲームをビルドするための堅牢な方法です。クライアントは滑らかな UI と可視化に集中でき、サーバーはゲームプレイ、整合性、同期を管理します。

チェスの例

チェスのようなゲームの場合、サーバーは Cloud Code と Cloud Save で正式なボードと駒の位置を維持できます。プレイヤーが動かすと、クライアントは以下のようなパラメーターを使用して Cloud Code 関数にリクエストを送信します。
  • ゲーム ID
  • 駒の移動
  • 開始位置
  • 終了位置
チェスゲームの Cloud Code 関数は、各ターンで以下を実行できます。
  1. ゲーム ID を使用して、Cloud Save から現在のゲーム状態をロードします。
  2. 正しいプレイヤーのターンであることを確認します。
  3. 開始位置にある駒がリクエストと一致していることを確認します。
  4. 駒が終了位置に正しく移動できることを確認します。
  5. 駒を動かしてボードの状態を更新します。
  6. その駒が相手の駒を取ったかどうかを計算します。
  7. チェックメイトを確認し、true の場合はゲームを終了します。
  8. 更新されたボードの状態を Cloud Save に保存します。
  9. プッシュメッセージ でリアルタイム更新を発信し、相手に動きを通知します。
  10. Cloud Code が移動を処理したというレスポンスをプレイヤーのクライアントに返します。