移行の概要

Google Play Games サービス、ゲーム v1 SDK は、非推奨となり、2025 年に Google Play 開発者サービス Auth SDKcom.google.android.gms:play-services-auth)から削除される Google ログイン for Android に依存しています。新しいゲームアプリは、2025 年までゲーム v1 を使用できます。Google ログインを削除すると、既存のゲームアプリで依存関係の問題が発生します。既存のゲームアプリを Google Play Games サービス v1 の SDK から Google Play Games サービス v2 の SDK に移行すると、Google ログインの削除によって発生した依存関係の問題が解決されます。

Google Play Games サービス v1 から v2 への移行は、開発を簡素化し、クロス プラットフォームのゲームをサポートする重要なアップデートです。Google Play Games サービス v2 は、プラットフォームとゲーム内 ID を分離し、起動時にプレーヤーを自動的に認証するプラットフォーム レベルの ID システムとして機能します。プラットフォーム ID は、ゲーム内のメイン アカウント システムから分離されました。このシステムは、Google でログインなどのツールや独自のバックエンドを使用して個別に管理する必要があります。Play Games サービス v2 SDK の統合では、既存のオンボーディング フローやログインフローを変更することなく、実績やリーダーボードなどのプラットフォーム機能にプレーヤー ID を使用します。

このドキュメントでは、ゲームアプリとさまざまな SDK の間のやり取りについて説明します。公式のサポート終了スケジュールに従い、プレーヤーの継続性を確保するため、この移行ガイドのアーキテクチャの原則、パス、プレーヤーとのコミュニケーション戦略に沿って移行する必要があります。

SDK のインタラクション

次の図は、Android のゲーム アプリケーション、Google モバイル サービス(GMS)コア、Play Games サービス、サードパーティ(3P)ゲームサーバー間のインタラクションを示しています。この例では、アプリが認証とゲーム機能に Google のサービスを使用しながら、別のサードパーティ システムとも連携していることを示しています。

games v2(現在)

Android、GMS Core、Play Games サービス、サードパーティ(3P)ゲームサーバー上のゲーム アプリケーション間のインタラクション。
Android、GMS Core、Play Games サービス、サードパーティ(3P)ゲームサーバー間のゲーム アプリケーションのやり取り(クリックして拡大)。

games v1(以前のバージョン)

Android、GMS Core、Play Games サービス、サードパーティ(3P)ゲームサーバー上のゲーム アプリケーション間のインタラクション。
Android、GMS Core、Play Games サービス、サードパーティ(3P)ゲームサーバー間のゲーム アプリケーションのやり取り(クリックして拡大)。

コンポーネントと SDK の概要は次のとおりです。

  • ゲーム アプリケーション。
    • これは、Android 搭載デバイスで実行されているユーザーのゲーム アプリケーションを表します。
    • 主なコンポーネントは次の 2 つです。
      • games v1 または games v2 SDK。Play Games サービスとのやり取りを担当するクライアントサイド SDK。
      • Auth SDK。Google Play 開発者サービス Auth SDK は、ゲーム v1 でのユーザー認証と認可のフローを処理します。
    • どちらの SDK も AIDL(Android インターフェース定義言語)を使用して通信します。これは、異なるプロセスまたはサービス間の通信パターンを示しています。
  • GMS Core は Google Play 開発者サービスとも呼ばれます。
    • これは Android の Google 独自のレイヤです。
    • ゲーム アプリケーションは、次の 2 つの GMS Core モジュールを使用します。
      • ゲーム モジュールは、リーダーボード、実績、ゲームの状態管理などのゲーム固有の機能を提供します。
      • Auth モジュール。ユーザー認証と認可のオペレーションを処理します。
    • ゲーム アプリケーションの Games SDK と Auth SDK は、 AIDL インターフェースを使用して対応するモジュールと通信します。これはプロセス間通信(IPC)を示しています。

  • Play Games サービスのゲートウェイ。
    • GMS Core と Play Games サービス サーバー間の通信を仲介する論理ゲートウェイ。
    • サーバー通信の API リクエスト、データ変換、認証を処理します。
  • Play Games サービス サーバー。
    • ゲームデータの保存、ユーザー アカウントの管理、マルチプレーヤー機能の実現を担当する Play Games サービス バックエンド サービスを表します。
  • サードパーティ製ゲームのゲートウェイ。
    • ゲーム アプリケーションがサードパーティ(3P)アプリケーションとして認定されている場合、クライアント ライブラリはサードパーティ ゲームサーバーを介して Play Games サービス サーバーと通信します。
    • アプリケーションが別のサービス プロバイダで認証できることを意味します。
  • サードパーティのゲームサーバー。
    • ゲーム アプリケーションがやり取りできるオプションの外部サーバーを表します。カスタム機能やデータ管理に使用される可能性があります。
    • アプリケーションとの通信は、サードパーティ ゲーム ゲートウェイを介して行われます。

タイトルを Play Games サービス v2 に移行する理由

Play ゲームサービス v1 から v2 への移行は、開発を簡素化し、クロス プラットフォームのゲームをサポートする大規模なアーキテクチャの近代化です。

ゲーム内の主要な ID システムとして機能していた v1 とは異なり、Play ゲームサービス v2 ではプラットフォームとゲーム内の ID が分離されています。これは、起動時にプレーヤーを自動的に認証して、実績やリーダーボードなどの機能を管理するプラットフォーム レベルの ID システムとして機能します。

ゲームのメインのゲーム内アカウント システムは、Google でログインや独自のバックエンドなどのツールを使用して個別に管理する必要があります。Play ゲームサービス v2 SDK を使用すると、既存のオンボーディング フローやログインフローを変更することなく、Play ゲームサービス プレーヤー ID を使用してプラットフォーム機能にアクセスできます。このドキュメントでは、移行のアーキテクチャ原則、パス、プレーヤー コミュニケーション戦略について説明します。公式の非推奨タイムラインが設定されているため、プレーヤーの継続性を確保するには、このドキュメントに沿って移行することが重要です。

プラットフォーム認証とゲーム内認証を比較する

Play Games サービス v2 では、「ログイン」のコンセプトが 2 つの異なるレイヤに分離されています。

  • プラットフォーム ID。SDK がプラットフォーム認証を処理します。
  • ゲーム内の ID。

プラットフォーム認証

Play ゲームサービスは、プラットフォーム エンゲージメント レイヤとして厳密に機能します。特定のゲーム アカウントやインベントリへの認証ではなく、Google Play ゲーム エコシステム(実績、リーダーボード、イベント)とプレーヤーの関係を管理します。

  • サイレント & 自動: ゲームの起動時にバックグラウンドで認証が自動的に行われます。Play ゲーム サービス自体に必要な手動の [ログイン] ボタンはありません。
  • プレーヤー ID: プラットフォーム認証が成功すると、Play Games サービスは安定したプレーヤー ID を提供します。この ID は、同じゲームであればデバイス間で一貫していますが、主にプラットフォームの統計情報(実績の進行状況など)を追跡するために使用する必要があります。
  • 分離: Play Games サービス v2 を、ゲームの進行状況やインベントリとともにプレーヤーのゲーム内アカウントを管理するためのゲームの主要な ID システムとして使用してはなりません。Play Games サービス v2 は、厳密にセカンダリの永続的なプラットフォーム ID として機能します。

ゲーム内認証

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

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

移行要件: Play Games サービス プレーヤー ID ではなく Google Open ID でゲーム内アカウントをバインドする

Play ゲームサービス v1 では、デベロッパーは Play ゲームサービスをプライマリ ID プロバイダとして使用していました。[Google Play] ボタンは、プレーヤーのゲーム内アカウント(IGA)を Player ID に直接リンクします。

Play ゲームサービス v2 では、起動時に自動でサイレントなプラットフォーム認証を提供することで、この問題を解決しています。生成された Player ID は、メイン アカウントのログインとは別に、リーダーボードや実績などのプラットフォーム機能専用に使用されるようになりました。

ゲームは、専用のログイン画面で「Google でログイン」(SiWG)などの方法や他のソーシャル アカウントを提供することで、プライマリ ID を個別に管理する必要があります。重要な点として、Play Games サービス v2 をメインの ID システムとして使用することはできません

このアーキテクチャの変更に伴い、デベロッパーがアカウント データを構成する方法も変更する必要があります。ゲーム内アカウント(IGA)は、主に Player ID にバインドされないように分離する必要があります。

代わりに、IGA は Play Games サービスに依存しない安定したプライマリ識別子にバインドする必要があります。推奨される識別子は、Google でログイン(SiWG)フローによって提供される Open ID です。この Open ID は、システム内のプレーヤーのメイン アカウントの一意の永続キーとして機能します。

ただし、IGA はセカンダリ バインディングとして Player ID にリンクできます。このセカンダリ リンクには、次の 2 つの重要な機能があります。

  1. これにより、ゲームは特定のプレーヤーに関連付けられている Play ゲーム機能(実績など)の進捗状況の追跡と更新を継続できます。
  2. これにより、「シームレス復元」機能が有効になり、新しいデバイスまたは再インストール後に、ゲームでプレーヤーが最後に使用した IGA に自動的にログインできるようになります。

この分離された ID モデルを理解することが、ゲームの正しい技術的な移行パスを特定するための鍵となります。

機能の比較

次の表は、ゲーム v1 SDK とゲーム v2 SDK の機能の比較を示しています。


特徴

games v1 SDK

games v2 SDK

認証

play-services-auth との統合が必要です。

簡素化され、合理化されています。play-services-auth は不要です。

承認

成功、失敗、再試行の追加コード。

SDK によって管理される

サーバー アクセス トークン

GoogleSigninClient を使用して、追加の OAuth 2.0 スコープをリクエストできます。

認証中のエラー処理用の追加コード。

Play ゲームサービス ウェブ API へのサーバーサイド アクセスをリクエストする際に、GamesSignInClient で 3 つの基本的な OAuth 2.0 ID スコープをリクエストできます。

詳細については、 Play Games サービスに対するサーバーサイドのアクセス サーバー認証コードを取得するをご覧ください。


ログイン プロセス

GoogleSigninClient を使用します。

自動認証とエラー処理のボイラープレート コードを処理するための追加コード。

GamesSignInClient を使用します。

SDK は、ボイラープレート コード、自動認証、エラー処理を処理します。「ログイン」は、次の 2 つの異なるレイヤに分かれています。
  • プラットフォーム認証: Play Games サービス v2 SDK によって処理されます。
  • ゲーム内認証: ゲームによって処理されます。

Welcome Popup

追加のコードが必要です。
デベロッパーは、配置とタイミングを制御できます。

追加のコードは必要ありません。ゲーム v2 SDK で構成されたすべてのゲームで一貫したユーザー インターフェース。

依存関係

play-services-auth が必要。

Games モジュールは認可と認証を処理します。追加の依存関係を追加する必要はありません。
ログアウト

GoogleSignInClient.signOut を使用します。

Google Play Games サービス v2 は永続的なプラットフォーム ID であるため、ログアウト API は必要ありません。

複数の Play ゲームサービス アカウントとゲームごとの設定

ゲーム内でアカウント管理が可能です。

ユーザーは、モバイル デバイスの設定で Play ゲームサービス プロフィールを変更できます。詳しくは、 モバイルで Play Games プロフィールを切り替える方法をご覧ください。