【Android】Google Game Service 実装時のまとめ

Google の Game Service を実装した時に参考にしたサイトをまとめました。

また、実装までに参考にしたサイト、サンプルの紹介もします。

今回は、

・Google Developer Console にて Game を設定。

・初期設定

・サインイン

・スコアの送信

・Leaderboards

・その他

を実装しました。

■ サンプルソースのチェック

・まずは、仕様の確認も兼ねてサンプルソースの確認をお勧めします。

・利用したい機能を抜粋して利用しました。

・せっかくなので、 GameHelper を改造して利用しました。

・サンプルソースは Game Service に特化したソースなのと、

量は多くないので一読すると実装方法、仕様がスムーズに理解出来ます。

また、GameHelper を改造して自分の環境にあったソースにすることをお勧めしますので、

一読 → 改造をお勧めします。

英語のドキュメント

https://developers.google.com/games/services/android/quickstart

Google Play Gameのサンプルを動かす

http://qiita.com/items/93b928581534040b167a

■ Google Developer Console にて Game を設定。

・iOS にてゲームセンターを利用したことがあったのでドキュメントを参照しなくても

なんとなく設定できました。

・Achievements に関しては、5個以上登録しないとリリースできませんので、

今回は利用しないのですが、適当に5個作成しました、ちなみに実装、またリリース後に

Achievements を利用していませんが、特に問題は無さそうです。ただ、設定で非表示に

しないと恐らくユーザに見られてしまうので、非表示で設定しました。

・リリース後に設定を変更できない項目もありますので注意して下さい。できない項目には

鍵のマークがあります。

・Google Apis Access の認証をしてください。

ここで、Certificate fingerprint (SHA1): の設定に関しては、.keystore と

合わせて下さい。

・また、はじめて Google Apis を利用する場合は、下記にアクセスして初利用の承認をしてください。

https://code.google.com/apis/console

承認をしないと連携の処理でうまくいきませんでした。

英語のドキュメント

https://developers.google.com/games/services/console/enabling

■ 初期設定

・ほぼサンプルを利用しました。

英語のドキュメント

https://developers.google.com/games/services/android/init

■ サインイン

・自動サインインを利用したかったので、下記のように onCreate にて

自動でサインインを呼ぶように実装しました。

・開発時(未公開の場合)はログインできませんのでテストユーザを登録してください。

後で説明します。

@Override

protected void onCreate(Bundle b) {

super.onCreate(b);

mHelper = new GameHelper(this);

mHelper.setup(this, mRequestedClients);

mHelper.beginUserInitiatedSignIn();

}

■ スコアの送信

mGamesClient.submitScore(LEADERBOARD_ID, 1337);

英語のドキュメント

https://developers.google.com/games/services/android/leaderboards

■ Leaderboards

startActivityForResult(mGamesClient.getLeaderboardIntent(LEADERBOARD_ID), REQUEST_LEADERBOARD);

英語のドキュメント

https://developers.google.com/games/services/android/leaderboards

■ その他

・テストユーザの登録をしないとリリース前だとうまくログインできません。

英語のドキュメント

https://developers.google.com/games/services/console/testpub#enabling_accounts_for_testing

・下記のエラーが発生した場合、

Unable to sign in – application does not have a registered client ID

http://stackoverflow.com/questions/16580885/google-play-game-services-unable-to-sign-in?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+stackoverflow%2FOxiZ+(%5Bandroid+questions%5D)

つまり、Google Apis の Certificate fingerprint (SHA1): と .keystore が一致してない可能性が高い。

・Google+ のガイドライン

画像の規定、画像のサプルなど

英語のドキュメント

https://developers.google.com/+/branding-guidelines?hl=ja#sign-in-button

・AndroidManifest.xml にて下記をお忘れなく。

<meta-data android:name=”com.google.android.gms.games.APP_ID”

android:value=”@string/app_id” />

・res/values/ids.xml を設定してください。

apk の作成時に values-ja にids.xml がないとの Lint のエラーが発生しました。

多分、Lint で ja は利用しないとの設定をすると思うのですが、

今回は、急いでいたので、ja にもコピーして対応しました。

フォローする