2014/06/22

Developing a Turn-based Multiplayer Game in Androidの翻訳(途中)

Google Play Game Services — Google Developers
の翻訳です。未完ですが、眠らせておくのももったいないので公開します。

 重要:Play Games services APIは、Google Play servicesのための簡略化したGoogle APIクライアントプログラミングモデルをサポートするように改訂されました。以前のGames clientは2014/02/07から非推奨になりました。既存または新規の開発者は 非推奨の GamesClient(リンクはない模様) に代わりに GoogleApiClientを使用することを強く推奨します。

このガイドは、Androidアプリにおける、Play Games services を使用したターンベースマルチプレイヤーゲームを実装する方法を示します。

はじめる前に

まだ(開発を)行っていない場合、turn-based multiplayer game concepts を見ると参考になるかもしれません。

ターンベースマルチプレイヤーゲームのコードを書く前に:
  • Google Play Developer Console内で、ゲームがターンベースのマルチプレイヤーサポートを有効になっていることを確認してください。
  • ダウンロードページより、ターンベースのマルチプレイヤーゲームのサンプルコードをダウンロードしレビューしてください。
  • ゲーム開発を簡単にするために、Accessing the Game APIsに説明しているように、メインゲームのActivityをBaseGameActivityクラスのサブクラスにすることができる。BaseGameActivityクラスはGoogleApiClient 接続とユーザーログインを操作するラッパーを提供しています。
  • Implementing Sign-In in Androidに説明しているガイドラインを参照するとよいでしょう。
一度、プレイヤーがログインし GoogleApiClientに接続したら、ゲームはターンベースのマルチプレイヤーAPIを使用することができます。

マッチを始める

ターンベースのマッチを始めるには、ゲームは、他の参加者と試合したい相手を指定する方法や、いくつかの規定した基準を使用した試合を構築した方法を選択することをプレイヤーに促すことができます。Play Games servicesは、ゲームにターンベースマッチのオブジェクトを返すためにゲームからマッチコンフィギュレーションデータを使用しています。このオブジェクトは、ターンベースマッチのライフサイクル上の全ての参加者と非同期に更新・共有されます。

試合を始めるには、これらのステップに従います:
  1. アプリ内で、プレイヤーがプレイしたいターンベースマッチの種類の詳細を収集し、試合に参加することができます。
    • ゲームは、SDKが提供する内蔵のプレイヤー選択ユーザーインターフェース(UI)を表示したり、このデータを収集するために独自のカスタムUIを使用することができます。プレイヤー選択UIの使用方法を学ぶには、デフォルトユーザーインターフェースによるプレイヤー選択を参照してください。
    • 別の方法として、ユーザーがプレイヤー選択UIを避けられるようにクイックスタートボタンを実装することができ、いくつかの規定した基準を使用して試合を構築する代わりになります。
  2. TurnBasedConfigObject内のマッチコンフィギュレーションデータを設定するTurnBasedMatchConfig.Builderを使用します。
  3. createMatch() を呼び、生成したTurnBasedConfigObjectを通します。自動マッチングが指定されている場合は、Play Games servicesは既存のゲームにマッチしようとします。詳細は、自動マッチングを実装を参照してください。
ターンベースマッチを生成するにあたり、ゲームはこれらのメソッドを呼ぶことができます:

-->
メソッド詳細
getSelectOpponentsIntent()オプション。デフォルトのプレーヤー選択UIを起動するためのインテントを返します。このUIから、ユーザーはランダムなGoogle+のユーザーと自動マッチする要求したり、他のGoogle+ユーザーをマッチするユーザーとして招待することを選択することができます。
createMatch()新しいターンベースマッチオブジェクトを作成する、または、自動マッチングが要求された場合のユーザーの基準を満たしている既存の試合をロードします。オートマッチングが要求された場合、返される試合は新しい試合または他のプレイヤーがすでにターンを取っている既存の試合のいずれかになります。新しい試合が返された場合、ユーザーは最初のターンを取る必要があります。ゲームは、新規または既存の試合がロードされているかどうかにかかわらず、交替を処理する責任があります。

デフォルトユーザーインターフェースによるプレイヤー選択

Play Games servicesは
public void onStartMatchClicked(View view) {
    Intent intent = 
        Games.TurnBasedMultiplayer.getSelectOpponentsIntent(getApiClient(), 1, 7, true);
    startActivityForResult(intent, RC_SELECT_PLAYERS);
}
以降、未翻訳です。
続きはGoogle Play Game Services — Google Developersを参照してください。


このページのコンテンツはクリエイティブ・コモンズの表示 3.0 ライセンスにより使用許諾されます。サンプル コードは Apache 2.0 ライセンス(リンク先は英語)により使用許諾されます。