シームレスな復元とは、プレーヤーが新しいデバイスにゲームをインストールしたり、ゲームを再インストールしたりしたときに、ログイン画面で手間取ることなく、すぐに進行状況に再接続できる仕組みのことです。 シームレスな復元が適用されるシナリオでは、ゲームはプレーヤーが最後にプレイしたゲーム内アカウントを復元する必要があります。
ゲームは、次のシナリオでプレーヤーが最後にプレイしたゲーム内アカウントを復元します。
実装ガイドライン
シームレスな復元を使用する方法については、次のガイドラインをご覧ください。
シームレスな復元を使用する場合
- 新しいデバイス / 新規インストール: プレーヤーが新しいデバイスにゲームをインストールした場合、ゲームは Google Play Games サービス プレーヤー ID にリンクされている最後にプレイしたゲーム内アカウント(IGA)を復元する必要があります。プレーヤーは、最後に保存した進行状況からプレイを再開できることを期待しています。
- 再インストール: プレーヤーが任意のデバイスにゲームをインストールした場合、新しいデバイスへのインストールとして扱い、シームレスな復元を実装します。
シームレスな復元を使用しない場合
- アプリのアップデート: プレーヤーがアプリをアップデートした場合、ローカルデータはすでに存在しているはずです(たとえば、プレーヤーが Google Play からアプリをアップデートした場合など)。この場合は、シームレスな復元をトリガーせず、ローカルの状態を尊重してください。 ただし、ローカルデータがなく、最後にプレイした IGA が PGS プレーヤー ID に関連付けられている場合は、ゲームはこの IGA を復元するか、ゲームのログイン画面をプレーヤーに表示できます。
- 明示的なログアウト: プレーヤーが IGA から明示的にログアウトした場合、アカウントを切り替えるか、ゲームからログアウトしたままにするのが目的である可能性が高くなります。この場合は、次回の起動時に以前のアカウントを強制的に復元しないでください。代わりに、ログイン画面を表示します。これにより、プレーヤーは複数のゲーム内アカウントを切り替えることができます。
競合の解決:
ゲームが理想的な認証フローのユーザー エクスペリエンス ガイドライン
を実装し、シームレスな復元の実装ガイドラインに準拠している場合、ゲームで競合の解決が発生することはありません。ただし、プレーヤーがローカルに進行状況が大幅に進んでいる Guest アカウントを持っていて、PGS にリンクされている最後にプレイした IGA のクラウド バックアップもある場合、ゲームはローカルデータを自動的に上書きしないでください。代わりに、2 つの状態から選択するよう求めるプロンプトをプレーヤーに表示します。
たとえば、 「クラウド保存が見つかりました。レベル 50 を復元しますか、それともローカルのレベル 5 を維持しますか? 」というプロンプトを表示します。
最後にプレイした IGA を PGS プレーヤー ID にバインドする
シームレスな復元を実装するには、ゲームで、プレーヤーが最後にプレイした IGA と認証済みの PGS プレーヤー ID の関連付けがあることを確認する必要があります。これを行うには、次のいずれかの方法を使用します。
- 独自のバックエンド: バックエンドでプレーヤー ID と ゲーム内 ID の関連付けを維持し、最後に プレイした状態をゲーム内 ID にマッピングします。これにより、 プラットフォーム認証後にプレーヤー ID を取得したらすぐに、 プレーヤーが最後にプレイした IGA を取得できます。
Recall API(推奨): 独自の堅牢な ID バックエンドがない場合は、Recall API を使用してシームレスな復元を実装することをおすすめします。これにより、Google はユーザーのプレーヤー ID と内部のゲーム内アカウント ID(ペルソナ)のリンクを保存できます。 Recall API の仕組みは次のとおりです。
保存: ユーザーがプレイするときに、「リコール トークン」 (IGA への暗号化されたリンク)を Google に送信します。
取得: 新しいデバイスで、PGS 認証後に Recall API をクエリします。トークンが存在する場合は、トークンを復号して IGA ID を見つけ、進行状況をすぐに復元します。