Android で C++ 用 Play Games サービスを使ってみる

Google ログイン API の非推奨に伴い、2026 年に Google Play Games サービス v1 の SDK を削除します。2025 年 2 月以降、Google Play Games サービス v1 の SDK と新たに統合されたタイトルを Google Play で公開することはできなくなります。代わりに Google Play Games サービス v2 の SDK を使用することをおすすめします。
以前のゲーム v1 統合を使用している既存のタイトルは、今後数年間は引き続き機能しますが、2025 年 6 月から v2 への移行を開始することをおすすめします。
このガイドは、Play Games サービス v1 SDK の使用を対象としています。Play ゲームサービス v2 の C++ SDK はまだ提供されていません。

このデベロッパー ガイドでは、Google Play Games サービス API を使用する C++ ゲームを Android でコンパイルして実行する方法について説明します。始める前に、次の要件をダウンロードして構成します。

このデベロッパー ガイドでは、Android Native Development Kit(NDK)を使用します。NDK に慣れていない場合は、続行する前に NDK のドキュメントとサンプルを参照してください。

ステップ 1: 環境を設定する

  1. Android SDK と Android NDK をダウンロードして、マシンに抽出します。環境内で、SDK_ROOT を Android SDK フォルダの場所に、NDK_ROOT を Android NDK フォルダの場所に設定します。
  2. C++ のサンプルゲームをダウンロードします。このデベロッパー ガイドでは、マシン上のサンプルの場所を SAMPLES_DIR と表記します。
  3. Google Play ゲームサービス C++ SDK をダウンロードします。SDK を開発マシンに展開します。環境で、変数 NDK_MODULE_PATHgpg-cpp-sdk ディレクトリののディレクトリを指すように設定します。ディレクトリ構造は次のようになります。
    NDK_MODULE_PATH/
    gpg-cpp-sdk/
  4. Eclipse を開きます。まだ設定していない場合は、[Preferences] > [Android] > [NDK] をクリックして、NDK をインストールした場所を Eclipse に指定します。
  5. Google Play 開発者サービス ライブラリ プロジェクトを Eclipse ワークスペースにインポートします。

    1. Eclipse で、[File] > [Import] > [Android] > [Existing Android Code into Workspace] の順にクリックします。
    2. SDK_ROOT/extras/google/google_play_services/libproject/google-play-services_lib を選択します。ここで、SDK_ROOT は Android SDK の場所です。
    3. [Finish] をクリックします。
  6. 最小限のサンプル プロジェクトを Eclipse ワークスペースにインポートします。

    1. Eclipse で、[File] > [Import] > [Android] > [Existing Android Code into Workspace] の順にクリックします。
    2. [SAMPLES_DIR/samples-android/minimalist] を選択します。
    3. [Finish] をクリックします。
  7. MinimalistActivity プロジェクトを右クリックして、[プロパティ] をクリックします。[Android] で、[ライブラリ] セクションまでスクロールし、google-play-services_lib プロジェクトが正しく参照されていることを確認します。参照が追加されていない場合は、参照を削除して、ワークスペースから再度追加します。

Eclipse はプロジェクトの Java ソースと Android ソースを自動的にコンパイルしますが、jni フォルダ内のネイティブ コードは個別にコンパイルする必要があります。手動で行うには、jni フォルダに移動して ndk-build を実行します。jni フォルダ内で変更を加えた後は、必ずこの操作を行ってください。

これでプロジェクトはコンパイルされますが、まだ動作しません。まず、Google Play Console でゲームを設定する必要があります。

手順 2: Google Play Console でゲームをセットアップする

Google Play Console にゲームのエントリを作成します。この手順では、そのアプリでゲームサービスを有効にし、まだお持ちでなければ、OAuth 2.0 クライアント ID を作成します。

  1. Google Play ゲームサービスのセットアップに記載の手順のとおり、ゲームのエントリを作成します。
  2. AndroidManifest.xml で、<manifest> タグの package 属性を、Google Play Console の設定時に選択したパッケージ名に変更します。この変更を行った後、プロジェクト全体で(特に生成された R クラスへの)参照を修正する必要がある場合があります。
  3. res/values/ids.xml を開き、アプリ ID を入力します。アプリ ID はクライアント ID とは異なります。Google Play Console の [ゲームの詳細] ページでゲーム名の横に表示される番号がアプリ ID です。

ステップ 3: サンプルを実行する

サンプルを実行するには、Google Play 開発者サービスがインストールされた物理的な Android デバイスまたはエミュレータが必要です。

  1. ndk-build を実行してネイティブ コードをコンパイルします。
  2. Eclipse で、[Run > Run As > Android Application] をクリックして、デバイスでサンプルを実行します。
  3. サンプルが開いたら、画面上の任意の場所をタップします。Google Play Games のロゴが表示されます。アプリが正しく設定されていれば、ログインを求めるメッセージが表示されます。

省略可: Eclipse で自動的にビルドする

次の手順では、jni フォルダ内のファイルを変更したときに ndk-build を自動的に実行するように Eclipse を構成する方法について説明します。

  1. MinimalistActivity プロジェクトを右クリックして、[プロパティ] をクリックします。[プロパティ] ウィンドウで、[ビルダー] ペインを選択します。
  2. [新規] をクリックして新しいビルダーを追加し、[プログラム] を選択して [OK] をクリックします。
  3. [名前] フィールドに「NDK Builder」と入力します。
  4. [Location] で [Browse File System] をクリックし、NDK_ROOT ディレクトリに移動して ndk-build コマンドを選択します。
  5. [Working Directory] で [Browse Workspace] をクリックし、MinimalistActivity プロジェクト フォルダを選択します。
  6. [更新] タブをクリックします。[Refresh resources upon completion(完了時にリソースを更新)] チェックボックスがオンになっていることを確認します。
  7. [特定のリソース] ラジオボタンを選択し、[リソースを指定] をクリックします。表示されたダイアログで、MinimalActivity の下の jni フォルダを選択します。
  8. [適用]、[OK] の順にクリックして、ビルダーの作成を完了します。

これで、jni フォルダ内のファイルを編集するたびに、Eclipse が ndk-build を実行し、出力を Eclipse Console に出力します。