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

このデベロッパー ガイドでは、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 Games サービス C++ SDK をダウンロードします。SDK を開発マシンに展開します。環境で、gpg-cpp-sdk ディレクトリの上にあるディレクトリを参照するように変数 NDK_MODULE_PATH を設定します。ディレクトリ構造は次のようになります。
    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] で [Library] セクションまでスクロールし、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. [更新] タブをクリックします。[完了時にリソースを更新] チェックボックスがオンになっていることを確認します。
  7. [特定のリソース] ラジオボタンを選択し、[リソースを指定] をクリックします。表示されたダイアログで、[MinimalActivity] の下の jni フォルダを選択します。
  8. [適用]、[OK] の順にクリックして、ビルダーの作成を完了します。

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