ゲームを Google Play Games サービス(PGS)と統合する最初の手順は プラットフォーム認証の実装です。実績、リーダーボード、イベントなどの他のすべての 機能にアクセスするには、この手順が必要です。
Play ゲームサービス SDK はゲームの起動時にプラットフォーム認証を自動的に実行するため、PGS v2 SDK をゲームに統合し、推奨される認証フローを実装する必要があります。これにより、Google Play Games レベルアップのユーザー エクスペリエンスに関するガイドラインを実装して満たすことができます。
認証のコンセプト
Play ゲームサービス v2 では、「ログイン」のコンセプトが、2 つの 異なるレイヤ プラットフォーム認証とゲーム内認証に分離されています。
プラットフォーム認証
Play ゲームサービスは、プラットフォーム エンゲージメント レイヤを提供します。ゲーマー プロフィールを使用して、Google Play Games エコシステムとのプレーヤーの関係を管理し、実績、リーダーボード、クエストなどの機能にアクセスします。プラットフォーム認証 には、次のような主な特徴があります。
- サイレントかつ自動: 認証は、ゲームの起動時に バックグラウンドで自動的に行われます。Play ゲームサービスでは、 手動の [**ログイン**] ボタンは必要ありません。
- プレーヤー ID: プラットフォーム認証が成功すると、Play ゲームサービスは安定したプレーヤー ID を提供します。この ID は、同じゲームであればデバイス間で 一貫しています。この ID は主に、実績の進捗状況などの プラットフォーム機能を追跡するために使用します。
- 分離: Play ゲームサービスを、ゲームのプライマリ ID システムとして使用して、プレーヤーのゲーム内アカウント(IGA)、ゲームの 進行状況、インベントリを管理することはできません。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、ウェブで進行状況を引き継げるようにするには、Sign in with Google をプライマリ ゲーム内認証方法として使用します。次の点を考慮してください。
- Google でログインボタン: PGS v1 では、[Google Play] ボタンでプラットフォームとゲームの両方のログインを処理することがよくありました。v2 では、これらは別々のプロセスです。 プレーヤーが認証して IGA にアクセスできるように、標準の [Google でログイン] ボタンを実装します。
- Google ログイン SDK:
- Android と iOS の両方で、標準の Google ログイン SDK を使用して、 プレーヤーを IGA に認証します。
- Google Open ID をプレーヤーのゲーム内 アカウントのプライマリ ID として使用します。
- Play ゲームサービスプレーヤー ID を使用して、実績などの Play Games 機能でのプレーヤーの進捗状況 を報告します。
推奨される統合
ゲームを Play ゲームサービスと統合するには、次の推奨手順に沿って操作します。
初期化と認証
ゲームを初期化して認証するには、次の手順が必要です。
起動時に Play ゲームサービス v2 SDK を初期化して、プラットフォーム認証を実装します。詳しくは、 Android ゲームのプラットフォーム認証をご覧ください。 実績やリーダーボードなどの Play ゲームサービス機能にアクセスするには、この手順が必要です。
認証は、ゲームの起動時にサイレント バックグラウンド プロセスとして実行されます。既存の Play ゲームサービス ユーザーには、認証が成功するとウェルカム メッセージが表示されます。 Play ゲームサービス プロフィールがないユーザーには、SDK の初期化時に プロフィールを作成するよう求められます。

プロフィールの作成
プレーヤーがプラットフォームを利用するには、Play ゲームサービス プロフィールが必要です。ゲームを開始したときに、Play ゲームサービス プロフィールがないプレーヤーもいます。これらのプレーヤーには、プロフィールを作成するよう求められます。
Play ゲームサービス プロフィールなしでゲームを 起動すると、自動的にトリガーされるプロフィール作成プロンプトがデフォルトで自動的に表示されます。
ゲーム内認証
プラットフォーム認証が正常に実行されたら、デベロッパーは、現在のゲームの状態に応じて、プレーヤーが IGA にアクセスできるように次の手順を 実装する 必要があります。
- デバイスにアクティブなゲーム セッションが存在する場合は、プレーヤーが現在のセッションを再開できるようにします。
- アクティブなゲーム セッションがない場合:
- 最後にプレイした IGA が PGS プレーヤー ID に関連付けられているシームレスな復元 シナリオの場合は、関連付けられた IGA を自動的に復元します。
- それ以外の場合は、アプリケーションの指定されたログイン 画面またはアカウント作成画面をプレーヤーに表示します。プレーヤーは、希望する 認証方法を選択して、既存の IGA を確立またはログインできます。
OAuth スコープ
Play ゲームサービスは
OAuth システム
を使用して、プレーヤーがゲームからアカウントにアクセスできるようにします。Play ゲームサービスにはゲームに固有のスコープ(games-lite)があり、ゲームが保存済みゲーム機能を使用している場合は、別のスコープ(drive.appdata)に依存します。保存済みゲーム
機能では、ユーザーの Google ドライブ アカウントにアクセスできます。このアカウントには、ゲーム
のデータが保存されています。
Play ゲームサービス v2 SDK を使用する場合、追加の
OAuth スコープをリクエストできます。
追加の OAuth スコープが必要な場合は、requestServerSideAccess を呼び出すことをおすすめします。
詳しくは、
サーバー認証コードを取得するまたはサーバー認証コードを取得するをご覧ください。
理想的な認証フローのユーザー エクスペリエンスに関するガイドライン
次のガイドラインでは、PGS v2 統合による推奨される認証フローについて説明します。新規ユーザー、既存のユーザー、復帰ユーザー、 ゲストモードのシナリオについて説明します。
新規プレーヤー
このフローは、ゲームのプレイ履歴がないデバイスでゲームを初めて起動するユーザーに適用されます。
- 起動時に、PGS SDK が初期化され、ユーザーのプラットフォーム ID(PGS プレーヤー ID)が認証されます。
- このバックグラウンド ハンドシェイクの後、ゲームはプレーヤーに IGA 作成オプション([新しいアカウントを作成]、[Google でログイン]、その他のソーシャル ログイン方法など)を表示します。
- プレーヤーが IGA を作成または選択すると、ゲームはこのアカウントを バックエンドで選択したプライマリ ID にバインドします。
- また、ゲームはこの選択した IGA を PGS プレーヤー ID にバインドし、 シームレスな復元のために最後にプレイした IGA としてマークします。
アクティブなセッションがあるプレーヤー
このシナリオでは、すでにアクティブなセッションがあるデバイスでゲームを起動するプレーヤーについて説明します。目標は、シームレスなエントリー エクスペリエンスを提供することです。
- プレーヤーがアプリを起動すると、PGS はバックグラウンドでサイレント認証を行い、実績やその他の Play Games 機能に対する進捗状況を追跡するためのプレーヤー ID を提供します。
- 同時に、該当する場合は、ゲームはログイン画面をバイパスし、 プレーヤーをアクティブな IGA セッションまたはプレーヤー ID に関連付けられた最後に プレイした IGA にすぐにログインさせ、すぐにゲームプレイを再開できるようにします。
アカウントを切り替えるプレーヤー
このフローは、アクティブなセッションがあるプレーヤーがゲーム 設定に移動してアカウントを切り替えるときに発生します。 たとえば、メイン アカウントからログアウトして別のアカウントを使用する場合などです。
- プレーヤーは現在の IGA からログアウトしますが、PGS プラットフォーム 接続はアクティブなままです。
- プレーヤーが別の IGA でログインすると、ゲームはこの新しい アカウントを現在の PGS プレーヤー ID に、シームレスな復元のためだけに最後にプレイした IGA としてバインドします。
復帰プレーヤーのシームレスな復元
このシナリオは、プレーヤーが非アクティブ期間の後、 再インストール後、または完全に新しいデバイスでゲームを起動する場合に適用されます。ゲームでは、 シームレスな復元を実装することをおすすめします。
- 起動時に、PGS はユーザーを認証し、PGS プレーヤー ID をゲームに提供します。
- ゲームはバックエンドを確認して(Recall API を使用している場合は、取得したリコール トークンを確認して)、最後にプレイした IGA がこの PGS ID にすでに リンクされているかどうかを確認します。
- リンクが見つかった場合、ゲームはプレーヤーの 進行状況を自動的に復元してログインさせ、手動ログイン画面を完全にスキップします。
- それ以外の場合は、ゲームにログイン画面が表示されます。
- プレーヤーはログイン方法を選択して IGA にログインします。
- ゲームは、この IGA を PGS プレーヤー ID に、シームレスな復元のために最後に プレイした IGA としてバインドします。
ゲストモード
プレーヤーは、ローカルのゲスト アカウントを使用してゲームを起動してプレイできます。 PGS はバックグラウンドで認証を行います。プレーヤーが [Save Progress] を選択すると、ゲームはゲスト セッションを永続的な IGA に変換し、PGS プレーヤー ID にバインドします。