# チート防止

> Isolate critical game logic on servers to prevent players from hacking or cheating through the client.

Cloud Code を使用して、クリティカルなゲームロジックをサーバー上で分離し、プレイヤーがハックまたはチートを行えないようにします。潜在的に被害を受けやすいクライアントではなく、ゲームの状態に関して信頼できる情報源としてサーバーを使用します。Cloud Code は、Remote Config、Cloud Save などの他の UGS サービスとシームレスに統合でき、完全なバックエンドを構築します。

例えば、重要なゲームイベント (ゲームレベルの開始や終了など) が発生したときに、プレイヤークライアントを使用して Cloud Code の関数を呼び出すことができます。

* レベルの開始時には、プレイヤークライアントによって、レベル番号やプレイヤーが使用するバフ (パワーアップ) の数などの値を示すパラメーターが渡されます。Cloud Code 関数は、このレベル開始情報を、プレイヤーに関連付けられた Cloud Save オブジェクトに保存します。また、そのプレイヤーが使用できるバフ数を 1 つずつ減らすこともできます。

* レベルの終了時には、プレイヤークライアントによって、完了したレベル番号、プレイヤーのスコア、プレイヤーが使用したアイテム数などの値を示すパラメーターが渡されます。その後、サーバーが、完了したレベルと開始したレベルが一致することを確認できます。スコアがそのレベルの有効範囲内であることを調べ、プレイヤーのアイテムのインベントリを 1 つずつ減らすことができます。

* プレイヤーのスコアがしきい値を超えて、次の一連のレベルが解放された場合、Cloud Code 関数は、プレイヤーの進捗を更新して、新しいレベルに進めるようになったことを知らせるデータを返すことができます。

> **Note:**
>
> チートを防止するために、クラウドサーバーでゲームの状態をモデリングする方法の詳細な例については、[ゲーム状態管理](./game-state-management.md) を参照してください。
