Google Play Game Services サンプルの動かし方


Google Playに新たに追加されたゲームサービスのサンプルの動かし方です。
まずこちらのサイトからサンプルをダウンロードしてください。
https://github.com/playgameservices/android-samples

1.Google Play Services SDKのダウンロード
続いて、Google Play ServicesのSDKをSDKマネージャーからダウンロードしましょう。
SDKマネージャーを起動して、Extras > Google Play Services にチェックを入れてインストールします。
インストールすると/extras/google/google_play_services/libproject/google-play-services_libにライブラリが出来るので、Eclipseにインポートします。
パッケージ・エクスプローラで右クリック、インポートから「Existing Android Code Into Workspace」を選択して、インポートしてください。

2.サンプルのインポート
次は先ほどダウンロードしたサンプルをインポートします。
サンプルはいくつかありますが、今回は一番機能の多い「TypeANumber」と、「BaseGameUtils」をインポートします。
上記二つのプロジェクトはインポート直後はエラーになっているので、設定を変更してライブラリを正しく参照するようにします。
まず「BaseGameUtils」はプロジェクトを右クリック、プロパティーからAndroidを選択し、下部のライブラリー欄に同じくインポートした「google-play-services_lib」を追加します。ライブラリーのチェックが外れている場合はチェックを入れます。
「TypeANumber」も同様にライブラリーに「google-play-services_lib」と「BaseGameUtils」を追加します。こちらはライブラリーのチェックは入れません。
これで、二つのプロジェクトのエラーが解決されます。

3.パッケージ名の修正
「TypeANumber」のパッケージ名をデフォルトから修正します。これはアプリ登録時にパッケージ名を重複させないためと思われます。
「TypeANumber」のAndroidManifest.xmlを開き、パッケージ名を任意の名前に変更します。
変更した時、リソースを使っているクラスからの参照が切れてしまい、エラーになるので、各ソースの参照先を変更後のパッケージ名に修正します。

4.デベロッパーコンソールへ登録
デベロッパーコンソールへアプリを登録します。今回は開発者アカウントを所持している前提で進めます。
デベロッパーコンソールを開き、ゲームサービスのアイコンをクリックするとセットアップのための画面が表示されるので、「ゲームでGoogle APIをまだ使用していません」を選びます。
ゲームの名前と種類を任意のものに変更した後、「次へ」をクリックします。
ゲームの詳細を入力する画面が表示されますが、今回のテストに最低限必要なのは表示名のみです。入力し終わったら「保存」ボタンを押しましょう。

5.OAuth2.0クライアントIDの生成
保存が終わったら、左側のメニューから「2.リンク済みアプリ」を選択します。「Androidアプリのリンク」「iOSアプリのリンク」「ウェブアプリのリンク」のボタンが表示されますが、今回はAndroidのアプリなので「Androidアプリのリンク」を選択します。
するとアプリの情報を入力する画面が表示されるので、必要項目を入力しましょう。
「アプリの名前」は既に入力されているので、そのままで構いません。「パッケージ名」は変更後のパッケージ名を入力します。この時公開しているアプリがあればプルダウンリストが開き、パッケージ名を選択することが出来ます。
「マルチプレイヤー設定」、「著作権侵害対策」はデフォルトのまま、オフで構いません。
「保存して次へ」をクリックすると画面が切り替わるので、「今すぐアプリを承認」をクリックします。
「Branding Information」という画面が表示されるので、各項目を入力して「Continue」をクリックします。
「Client ID Settings」という画面が表示されます。
「Singning certificate fingerprint(SHA1):」に、Keystoreのフィンガープリントを登録します。Eclipseからテストを実行するのであればデバッグ用のKeystoreで構いません。
デバッグ用Keystoreのフィンガープリントを調べるには、コマンドプロンプトを開きcdコマンドでdebug.keystoreのあるディレクトリまで移動した後、以下のコマンドを実行します。

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v

パスワードの入力を求められるので、パスワードを入力します。デバッグ用のKeystoreのパスワードは「android」です。入力しても画面に変化がないので分かりにくいですが、入力が終わったらエンターキーで決定します。
出力されたログからSHA1:の後ろの文字列をコピーして、「Signing certificate fingerprint(SHA1):」の欄に貼り付け、「Create client」をクリックします。
生成されたクライアントIDが表示されます。このIDは「リンク済みアプリ」からいつでも確認出来ます。
アプリ名の右側に表示されているのが「アプリケーションID」といい、後ほど必要となるIDです。
また、登録するのに使ったKeystore(今回はDebug.keystore)も覚えておきましょう。

6.実績の作成
ゲーム中で使う実績を作成します。デベロッパーコンソールの「実績」タブをクリックして、「実績を追加」ボタンを押します。
以下のように実績の項目を追加してください。

[名前]            [説明]                    [特別な指定]
Prime           |Get a score that’s a prime number.   |なし
Humble          |Request a score of 0.           |なし
Don’t get cocky, kid  |Request a score of 9999 in either mode.|なし
OMG U R TEH UBER LEET! |Receive a score of 1337.         |初期状態を非表示にする
Bored           |Play the game 10 times.          |増分実績をチェックし、手順数に10を指定する
Really Really Bored   |Play the game 100 times.         |増分実績をチェックし、手順数に100を指定する

7.リーダーボードの作成
実績の作成が終わったら、次はリーダーボードを作成します。リーダーボードとは、いわゆるランキングのことです。
デベロッパーコンソールの「リーダーボード」タブを選択し、「リーダーボードを追加」ボタンを押して、以下のようにリーダーボードを追加してください。

[名前]         [スコアの形式]  [小数点以下の桁数]  [順番付け]
Easy High Scores  |整数      | 0         |スコアは高いほど良い
Hard High Scores  |整数      | 0         |スコアは高いほど良い

8.テストアカウントの追加
デベロッパーコンソールの「テスト」タブをクリックすると、テストアカウントを追加することが出来ます。
Google+が有効になっているgmailアドレスを登録しておきましょう。開発者アカウントのアドレスは最初から登録されているようなので、それを使う場合は必要ありません。

9.コードの修正
実績やリーダーボードのIDを登録したものに変更します。
res/values/ids.xmlを開き、各IDを書き換えてください。実績の場合はデベロッパーコンソールに表示されている順番とids.xmlの順番が違うので、名前をよく見て修正を行ってください。
また、今回のサンプルにはすでに記述されているので必要ありませんが、Google Play Services SDKを使用する場合はAndroidManifest.xmlに以下の記述が必要です。

<meta-data android:name="com.google.android.gms.games.APP_ID"
        android:value="@string/app_id" />

10.テスト
最後に、動作テストを行います。
今回は登録したKeystoreがデバッグ用のものなので、Eclipseから直接実行すれば確認できます。
もしデバッグ用以外のKeystoreを使っている場合はそのKeystoreで署名して、端末にapkをインストールして実行しましょう。

起動後表示される画面で、一番下のサインインボタンでGoogle+でサインインすると、スコアの送信や実績、リーダーボードの確認が出来ます。

Comments

comments

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です