プラットフォーム認証

ゲームを Google Play ゲームサービス(PGS)と統合する最初の手順は、プラットフォーム認証の実装です。実績、ランキング、イベントなどの他のすべての機能にアクセスするには、これが必要です。

Play ゲームサービス SDK はゲームの起動時にプラットフォーム認証を自動的に実行するため、ゲームに PGS v2 SDK を統合し、推奨される認証フローを実装して、Google Play Games レベルアップのユーザー エクスペリエンス ガイドラインを実装し、満たす準備を整える必要があります。

認証のコンセプト

Play ゲームサービス v2 では、「ログイン」のコンセプトが 2 つの異なるレイヤ(プラットフォーム認証ゲーム内認証)に分離されています。

プラットフォーム認証

Play ゲームサービスは、プラットフォーム エンゲージメント レイヤを提供します。ゲーマー プロフィールを使用して、プレーヤーと Google Play Games エコシステムの関連性を管理し、実績、リーダーボード、クエストなどの機能にアクセスします。プラットフォーム認証には、次の主な特徴があります。

  • サイレントかつ自動: ゲームの起動時に、認証がバックグラウンドで自動的に行われます。Play ゲームサービスでは、手動の [ログイン] ボタンは必要ありません。
  • プレーヤー ID: プラットフォーム認証が成功すると、Play ゲームサービスは安定したプレーヤー ID を提供します。この ID は、同じゲームであればデバイス間で一貫しています。この ID は主に、アチーブメントの進行状況などのプラットフォーム機能をトラッキングするために使用します。
  • 分離: プレーヤーのゲーム内アカウント(IGA)、ゲームの進行状況、インベントリを管理するために、ゲームの主要な ID システムとして Google Play ゲームサービスを使用することはできません。Play ゲームサービスは永続的なプラットフォーム ID として機能します。

プレーヤー ID

プレーヤー ID は、Play ゲームサービスのプレーヤー アカウントの識別子です。ゲームは、Play ゲームサービスの認証を使用してゲームにログインしたプレーヤーのプレーヤー ID を取得できます。ゲーム クライアントの統合ゲームサーバーの統合クラウド保存サービスは、この ID を使用して Play ゲームサービスからプレーヤー データに安全にアクセスできます。

ユーザーが複数のデバイスでゲームをプレイする場合、プレーヤー ID は変わりません。ただし、ゲーム間で常に一貫しているとは限りません。詳しくは、次世代のプレーヤー ID をご覧ください。

ゲーム内認証

ゲーム内アカウント(IGA)を管理します。これは、ゲーム内のプレーヤーの進行状況、インベントリ、通貨をバインドする ID システムです。

  • プライマリ ID: 独自のバックエンド、Google でログイン(SiWG)、または他のプロバイダをプライマリ ログイン方法として使用できます。
  • 独立性: プレーヤーは、特定の IGA(ゲスト アカウントや特定の SiWG アカウントなど)にログインしたまま、Play ゲームサービス(プラットフォーム ID)にログインしてアチーブメントを獲得できます。
  • 複数の IGA の管理: Play ゲームサービスはプラットフォーム認証のみを処理します。ゲームは、プレイヤーの IGA へのプライマリ認証を管理します。つまり、プレーヤーが IGA を切り替えるためのゲームの既存のフローに変更はありません。プレーヤーがアカウントを切り替えても、PGS を通じて Play Games プラットフォームに対する認証は維持され、実績やその他の PGS 機能に関連するデータは、永続的なプレーヤー ID に対して引き続き送信されます。

SiWG によるクロス プラットフォームの継続性

プレーヤーが Android、iOS、ウェブで進行状況を引き継げるように、ゲーム内の主な認証方法として Google でログインを使用します。次の点を考慮してください。

  • [Google でログイン] ボタン: PGS v1 では、[Google Play] ボタンでプラットフォームとゲームの両方のログインを処理することがよくありました。v2 では、これらは別々のプロセスです。プレーヤーが認証して IGA にアクセスするための標準の Google でログインボタンを実装します。
  • Google ログイン SDK:
    • Android と iOS の両方で、標準の Google ログイン SDK を使用して、プレーヤーを IGA に認証します。
    • Google Open ID をプレーヤーのゲーム内アカウントのプライマリ識別子として使用します。
    • Play ゲームサービス プレーヤー ID を使用して、実績などの Play ゲーム機能でのプレーヤーの進捗状況を報告します。

推奨される統合

ゲームを Play Games サービスと統合するには、次の手順をおすすめします。

初期化と認証

この手順は、ゲームを初期化して認証するために必要です。

起動時に Play ゲームサービス v2 SDK を初期化して、プラットフォーム認証を実装します。詳しくは、Android ゲームのプラットフォーム認証をご覧ください。この手順は、実績やリーダーボードなどの Play ゲームサービス機能にアクセスするために必要です。

認証は、ゲームの起動中にサイレント バックグラウンド プロセスとして実行されます。既存の Play ゲームサービス ユーザーは、認証が成功するとウェルカム メッセージが表示されます。Play ゲームサービス プロフィールを持っていないユーザーには、SDK の初期化時にプロフィールを作成するよう求められます。

自動ログイン プロンプト

プロフィールの作成

プレーヤーがプラットフォームを利用するには、Play ゲームサービス プロフィールが必要です。ゲームを開始したときに Play ゲームサービス プロフィールを持っていないプレーヤーもいます。これらのプレーヤーには、作成を求めるメッセージが表示されます。

Play ゲームサービス プロフィールなしでゲームを起動すると、デフォルトで自動トリガー プロフィールの作成を求めるプロンプトが自動的に表示されます。

ゲームを起動したときにプロファイルの作成を求めるメッセージが表示される。
ゲームの起動時に表示されるプロファイル作成のプロンプト(クリックして拡大)。

ゲーム内認証

プラットフォーム認証が正常に実行されたら、現在のゲームの状態に応じて、プレーヤーが IGA にアクセスできるように、デベロッパーは次の手順を実装する必要があります。

  1. デバイスにアクティブなゲーム セッションが存在する場合は、プレーヤーが現在のセッションを再開できるようにします。
  2. アクティブなゲーム セッションがない場合:
    1. 最後にプレイした IGA が PGS プレーヤー ID に関連付けられているシームレスな復元シナリオの場合は、関連付けられている IGA の自動復元に進みます。
    2. それ以外の場合は、アプリの指定されたログイン画面またはアカウント作成画面をプレーヤーに表示します。その後、プレーヤーは希望する認証方法を選択して、既存の IGA を確立するか、ログインします。

OAuth スコープ

Play ゲームサービスは OAuth システムを使用して、プレーヤーがゲームからアカウントにアクセスできるようにします。Play ゲームサービスにはゲームに固有のスコープ(games-lite)があり、ゲームが保存済みゲーム機能を使用している場合は、別のスコープ(drive.appdata)に依存します。保存済みゲーム機能では、ユーザーの Google ドライブ アカウントにアクセスできます。このアカウントには、ゲームのデータが保存されています。

Play ゲームサービス v2 SDK を使用する場合、追加の OAuth スコープをリクエストできます。追加の OAuth スコープが必要な場合は、requestServerSideAccess を呼び出すことをおすすめします。詳しくは、サーバー認証コードを取得するまたはサーバー認証コードを取得するをご覧ください。

理想的な認証フローのユーザー エクスペリエンスに関するガイドライン

次のガイドラインでは、PGS v2 との統合で推奨される認証フローについて説明します。新規ユーザー、既存ユーザー、リピーター、ゲストモードのシナリオをカバーします。

新しいプレーヤー

このフローは、ゲームのプレイ履歴がないデバイスでユーザーが初めてゲームを起動する場合に適用されます。

  1. 起動時に、PGS SDK が初期化され、ユーザーのプラットフォーム ID(PGS プレーヤー ID)が認証されます。
  2. このバックグラウンド ハンドシェイクの後、ゲームは IGA 作成オプション([新しいアカウントを作成]、[Google でログイン]、その他のソーシャル ログイン方法など)をプレーヤーに表示します。
  3. プレーヤーが IGA を作成または選択すると、ゲームはこのアカウントをバックエンドで選択したプライマリ ID にバインドします。
  4. また、ゲームはこの選択された IGA を PGS プレーヤー ID にバインドし、シームレスな復元のために最後にプレイされた IGA としてマークします。
ログイン済みの PGS プロフィールを持つ新規プレーヤー
ログインした PGS プロファイルを持つ新しいプレーヤー(クリックして拡大)。
PGS プロファイルのない新規プレーヤー
PGS プロファイルのない新しいプレーヤー(クリックして拡大)
PGS プロフィールでログインしている新規プレーヤー
ログイン済みの PGS プロファイルを持つ新規プレイヤー(クリックして拡大)

アクティブなセッションがあるプレーヤー

このシナリオでは、アクティブなセッションがすでに存在するデバイスでプレーヤーがゲームを起動する場合について説明します。目標は、シームレスなエントリー エクスペリエンスを提供することです。

  1. プレーヤーがアプリを起動すると、PGS はバックグラウンドでサイレント認証を行い、プレーヤー ID を提供します。この ID を使用して、実績やその他の Play ゲーム機能に対する進捗状況を追跡できます。
  2. 同時に、該当する場合は、ゲームはログイン画面をバイパスし、プレイヤーをアクティブな IGA セッションまたはプレイヤー ID に関連付けられた最後にプレイした IGA にすぐにサインインさせ、すぐにゲームプレイを再開できるようにします。
ログイン済みの PGS プロファイルを使用して同じデバイスでゲームを起動します
ログイン済みの PGS プロファイルで同じデバイスでゲームを起動する(クリックして拡大)。
PGS プロファイルからログアウトした状態で同じデバイスでゲームを起動する
PGS プロファイルからログアウトした状態で同じデバイスでゲームを起動する(クリックして拡大)
PGS プロファイルがない同じデバイスでゲームを起動する
PGS プロファイルなしで同じデバイスでゲームを起動する(クリックして拡大)
ログイン済みの PGS プロファイルとリンクされた IGA を使用して新しいデバイスでゲームを起動する
ログイン済みの PGS プロファイルとリンクされた IGA を使用して新しいデバイスでゲームを起動する(クリックして拡大)。
ログイン済みの PGS プロフィールがあり、リンクされた IGA がない状態で新しいデバイスでゲームを起動する
ログイン済みの PGS プロファイルがあり、IGA がリンクされていない新しいデバイスでゲームを起動する(クリックして拡大)。
PGS プロファイルがログアウトされた新しいデバイスでゲームを起動する
PGS プロファイルからログアウトした状態で新しいデバイスでゲームを起動する(クリックして拡大)。
PGS プロファイルのない新しいデバイスでゲームを起動する
PGS プロファイルのない新しいデバイスでゲームを起動する(クリックして拡大)

アカウントを切り替えるプレイヤー

このフローは、アクティブなセッションがあるプレーヤーがゲーム設定に移動してアカウントを切り替えるときに発生します。たとえば、メイン アカウントからログアウトして別のアカウントを使用する場合などです。

  1. プレーヤーは現在の IGA からログアウトしますが、PGS プラットフォームの接続はアクティブなままです。
  2. プレーヤーが別の IGA でログインすると、ゲームはシームレスな復元のためだけに、この新しいアカウントを最後にプレイした IGA として現在の PGS プレーヤー ID にバインドします。
PGS プロファイルにバインドされていない IGA に切り替える
PGS プロファイルにバインドされていない IGA に切り替える(クリックして拡大)。
同じログイン済み PGS プロファイルにバインドされた IGA に切り替える
同じログイン済み PGS プロファイルに関連付けられた IGA に切り替える(クリックして拡大)。
別の PGS プロファイルにバインドされた IGA に切り替える
異なる PGS プロファイルに関連付けられた IGA に切り替える(クリックして拡大)。
デバイスに PGS プロファイルがない状態で IGA を切り替える
デバイスに PGS プロファイルがない場合の IGA の切り替え(クリックして拡大)。
ログアウトした PGS プロファイルでの IGA の切り替え
ログアウトした PGS プロファイルでの IGA の切り替え(クリックして拡大)
存在しない IGA に切り替える
存在しない IGA に切り替える(クリックして拡大)。

復帰したプレーヤー向けのシームレスな復元

このシナリオは、プレーヤーが非アクティブ期間の後、再インストール後、またはまったく新しいデバイスでゲームを起動した場合に適用されます。ゲームでは、シームレスな復元を実装することが推奨されます。

  1. 起動時に、PGS はユーザーを認証し、PGS プレーヤー ID をゲームに提供します。
  2. ゲームは、バックエンド(または Recall API を使用している場合は取得したリコール トークン)をチェックして、最後にプレイした IGA がこの PGS ID にすでにリンクされているかどうかを確認します。
  3. リンクが見つかった場合、ゲームはプレーヤーの進行状況を自動的に復元してログインし、手動ログイン画面を完全にスキップします。
  4. それ以外の場合、ゲームはプレーヤーにログイン画面を表示します。
    1. プレーヤーはログイン方法を選択し、IGA にログインします。
    2. ゲームは、この IGA を PGS プレーヤー ID とバインドして、シームレスな復元のための最後にプレイした IGA とします。
PGS プロファイルからログアウトした状態でゲームを再開するプレーヤー
PGS プロファイルからログアウトした状態でゲームを再開するプレーヤー(クリックして拡大)。
PGS プロファイルにログインし、IGA をリンクしている復帰ユーザー
PGS プロファイルにログインし、IGA をリンクしたリピーター(クリックして拡大)。
ログイン済みの PGS プロファイルがあり、IGA がリンクされていない復帰ユーザー
ログイン済みの PGS プロファイルがあり、IGA がリンクされていないリピーター プレーヤー(クリックして拡大)。
PGS プロファイルのない復帰ユーザー
PGS プロファイルのないリピーター(クリックして拡大)

ゲストモード

プレーヤーは、ローカルのゲスト アカウントを使用してゲームを起動してプレイできます。PGS はバックグラウンドで認証を続行します。プレーヤーが [進捗状況を保存] を選択すると、ゲームはゲスト セッションを永続的な IGA に変換し、PGS プレーヤー ID にバインドします。

ゲストモード - IGA が作成されない
ゲストモード - IGA が作成されていない(クリックして拡大)。
ゲストモード - IGA を作成しました
ゲストモード - IGA が作成されました(クリックして拡大)。