石井 健三	  Google	  Play	  Game	  Services
Android、iOS、WEBで作られたゲームに、Google+のIDでログインさせることで以下の機能を追加し、サークル上の友人達とゲームの体験を共有出来る	•  Achievements(実績)	  •  Social	  and	  pub...
Google	  playのデベロッパーコンソール上でゲームの追加を行う。	  実績やランキングの設定と、Android,iOS,Web用それぞれでGoogle+を	  利用するためOauthキーの発行も行う	新しいデベロッパーコンソールで	 ...
Android	Play	  ServicesはFroyo(2.2)以上で利用が可能。拡張ライブラリを組み込むことで利用する	  GameClientと呼ばれる大きなメインクラスがあり、	  AcEvityから利用し、各種機能を呼び出し、Cal...
//	  Leaderboardへのデータの登録	  mGamesClient.submitScore(LEADERBOARD_ID,	  1337);	//	  Leaderboardの表示(AcEvityはライブラリに含まれている)	  s...
NaEveでの利用方法	  NaEveAcEvityを拡張してJNIで呼び出す
iOS	Google+用のSDKとPlay	  Game	  Services用のSDKを組み込めば簡単に利用出来る	  (マルチプレイヤー以外)Androidと同程度のライブラリが用意されている	  //	  Leaderboardの表示(V...
WEB	お好きな言語、ライブラリでOauth認証し、RESTで各種APIを呼び出す	  (マルチプレイヤー以外)全ての情報にアクセス出来るので、ランキング情報をWEBで	  公開したりといった使い方も出来る	  
サンプルプロジェクト	Githubにいくつかのサンプルアプリが登録されています。	  hps://github.com/playgameservices/android-­‐samples	また、Google	  I/O会場で行われたコードラボ...
リアルタイム対戦(Android)
マルチプレイは	  room	  と呼ばれる概念の中で行われる。始め方は大きく3通りあり、	  自分でroomを作成し、ランダムで人を招待する方法(quick	  game)、	  自分でroomを作成し、特定の人を選択して招待する方法(sen...
友人を招待することでルームを作成する
//	  get	  the	  invitee	  list	  	  	  	  	  	  	  	  	  final	  ArrayList<String>	  invitees	  =	  data.getStringArrayLis...
アプリがインストールされていない場合は	  Google	  Play	  ストアへ	  	  アプリがインストールされている場合は	  アプリが立ち上がる	招待された側には通知が飛ぶ
Roomに参加する。	  招待された側はIDが通知されているので、それを使ってRoomに加わる	ユーザーの増減やメッセージ受信を行うListenerの設定は	  自分でRoomを作成する時と同じ
Room内でのメッセージの受け渡しはユーザー同士のp2pで行われるが、	  ファイアウォールなどで通信出来ない場合はGoogleのサーバーがリレーする	Roomの作成が終わったら、マルチプレイを開始する。	  多人数でゲームをするということは、...
メッセージの送信方法は2種類あり、ネットワークのTCPとUDPに似ている	Reliableメッセージは1対1の送受信に使う。送信後にcallbackで送信結果を受け取る事が出来る	  Unreliableメッセージは複数人に同時に送信する事が出...
メッセージの受信はRoom作成時に設定したcallbackで受け取る
Upcoming SlideShare
Loading in...5
×

Google Play Game Servicesについて

7,581

Published on

Published in: Technology, Business
0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
7,581
On Slideshare
0
From Embeds
0
Number of Embeds
30
Actions
Shares
0
Downloads
0
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Google Play Game Servicesについて

  1. 1. 石井 健三  Google  Play  Game  Services
  2. 2. Android、iOS、WEBで作られたゲームに、Google+のIDでログインさせることで以下の機能を追加し、サークル上の友人達とゲームの体験を共有出来る •  Achievements(実績)  •  Social  and  public  leaderboards(ランキング)  •  Cloud  saves(クラウド上へのデータの保存)  •  Real-­‐Eme  mulEplayer(リアルタイム対戦)  ←現在Androidのみサポート
  3. 3. Google  playのデベロッパーコンソール上でゲームの追加を行う。  実績やランキングの設定と、Android,iOS,Web用それぞれでGoogle+を  利用するためOauthキーの発行も行う 新しいデベロッパーコンソールで  ゲームの追加
  4. 4. Android Play  ServicesはFroyo(2.2)以上で利用が可能。拡張ライブラリを組み込むことで利用する  GameClientと呼ばれる大きなメインクラスがあり、  AcEvityから利用し、各種機能を呼び出し、Callbackを受け取る
  5. 5. //  Leaderboardへのデータの登録  mGamesClient.submitScore(LEADERBOARD_ID,  1337); //  Leaderboardの表示(AcEvityはライブラリに含まれている)  startAcEvityForResult(                      mGamesClient.getLeaderboardIntent(LEADERBOARD_ID),                                            REQUEST_LEADERBOARD);  AndroidでLeaderboard(ランキング)を扱う例
  6. 6. NaEveでの利用方法  NaEveAcEvityを拡張してJNIで呼び出す
  7. 7. iOS Google+用のSDKとPlay  Game  Services用のSDKを組み込めば簡単に利用出来る  (マルチプレイヤー以外)Androidと同程度のライブラリが用意されている  //  Leaderboardの表示(ViewControllerはライブラリに含まれている)    -­‐  (IBAcEon)showLeaderboard:  (UIBuon  *)sender  {        //  You  get  this  leaderboard  Id  from  the  Developer  Console      GPGLeaderboardController  *leadController  =  [[GPGLeaderboardController  alloc]  initWithLeaderboardId:@"abcde"];      leadController.leaderboardDelegate  =  self;      [self  presentModalViewController:leadController  animated:YES];  }
  8. 8. WEB お好きな言語、ライブラリでOauth認証し、RESTで各種APIを呼び出す  (マルチプレイヤー以外)全ての情報にアクセス出来るので、ランキング情報をWEBで  公開したりといった使い方も出来る  
  9. 9. サンプルプロジェクト Githubにいくつかのサンプルアプリが登録されています。  hps://github.com/playgameservices/android-­‐samples また、Google  I/O会場で行われたコードラボも公開されています。  こちらを上から順番にやっていくことで一通りの動作を試す事が出来ます。    hp://wolffexperiments.appspot.com/staEc/io2013/lesson0.html  
  10. 10. リアルタイム対戦(Android)
  11. 11. マルチプレイは  room  と呼ばれる概念の中で行われる。始め方は大きく3通りあり、  自分でroomを作成し、ランダムで人を招待する方法(quick  game)、  自分でroomを作成し、特定の人を選択して招待する方法(send  invitaEon)、  他人の作ったroomに参加する方法(show  invitaEons)がある。  
  12. 12. 友人を招待することでルームを作成する
  13. 13. //  get  the  invitee  list                  final  ArrayList<String>  invitees  =  data.getStringArrayListExtra(GamesClient.EXTRA_PLAYERS);    //  create  the  room                  Log.d(TAG,  "CreaEng  room...");                  RoomConfig.Builder  rtmConfigBuilder  =  RoomConfig.builder(this);                  rtmConfigBuilder.addPlayersToInvite(invitees);                  rtmConfigBuilder.setMessageReceivedListener(this);                  rtmConfigBuilder.setRoomStatusUpdateListener(this);                  if  (autoMatchCriteria  !=  null)  {                              rtmConfigBuilder.setAutoMatchCriteria(autoMatchCriteria);                  }                  switchToScreen(R.id.screen_wait);                  keepScreenOn();                  resetGameVars();                  getGamesClient().createRoom(rtmConfigBuilder.build());                  Log.d(TAG,  "Room  created,  waiEng  for  it  to  be  ready..."); ユーザ選択AcEvityの結果からRoomを作成する。  Roomを作成する際に、ユーザーの増減やメッセージの受信を行う  Listenerを設定する。
  14. 14. アプリがインストールされていない場合は  Google  Play  ストアへ    アプリがインストールされている場合は  アプリが立ち上がる 招待された側には通知が飛ぶ
  15. 15. Roomに参加する。  招待された側はIDが通知されているので、それを使ってRoomに加わる ユーザーの増減やメッセージ受信を行うListenerの設定は  自分でRoomを作成する時と同じ
  16. 16. Room内でのメッセージの受け渡しはユーザー同士のp2pで行われるが、  ファイアウォールなどで通信出来ない場合はGoogleのサーバーがリレーする Roomの作成が終わったら、マルチプレイを開始する。  多人数でゲームをするということは、メッセージのやりとりを行うということ。
  17. 17. メッセージの送信方法は2種類あり、ネットワークのTCPとUDPに似ている Reliableメッセージは1対1の送受信に使う。送信後にcallbackで送信結果を受け取る事が出来る  Unreliableメッセージは複数人に同時に送信する事が出来るが、送信結果を受け取る事が出来ない
  18. 18. メッセージの受信はRoom作成時に設定したcallbackで受け取る

×