Google Play Games サービスの品質チェックリスト

ゲームの品質はインストール数、プレーヤーによる評価やレビュー、エンゲージメント、プレーヤーの継続率といった点でゲームの長期的な成功に影響します。ゲームを公開する前に、魅力的な機能や直感的で優れた UI デザインを提供し、ゲーム プレーヤーの基本的な期待値を満たせるよう準備することが重要です。

このドキュメントでは、ゲームの成功に大きく影響するゲーム開発の重要な要素について説明します。品質、機能セット、ユーザー インターフェース(UI)に重点を置いています。

このドキュメントでは、各重点分野について次の情報を提供します。

  • 最小要件の詳細を記載したチェックリスト。
  • ゲームを強化するためのベスト プラクティス。

高品質なゲームを公開し、プレーヤーに最良のサービスを提供できるよう、これらの推奨事項をできる限り取り入れることをおすすめします。

1. プラットフォーム認証

ゲームにプレーヤー認証機能を実装する場合は、次のチェックリスト タスクをご利用ください。認証の仕組みと実装方法の詳細については、プラットフォーム認証をご覧ください。モバイルゲームで認証を実装する方法に関するコード例については、 Android でのプラットフォーム認証をご覧ください。

ID 重要度 説明
1.1 必須 Google Play Games サービスでプレーヤーを認証する。
1.1.1. Google Play Games サービス SDK を初期化し、プレーヤーが認証されているかどうかを確認します。プレーヤーが自動的に認証されない場合は、手動ログイン オプションを提供します。

自動認証すると、プレーヤーはすばやく認証され、Google Play Games サービスで提供されるすべての機能を利用できるようになります。

ユーザーが同意しなかった場合、ゲームはユーザーが後で認証する機会を提供する必要があります(ゲームメニューのボタンなど)。ログインボタンは、プレーヤーが簡単に見つけられるようにする必要があります。たとえば、メイン画面からアクセスできるようにするか、設定画面に配置する必要があります。ゲームメニューから複数の階層を経た場所には埋め込まないでください。

1.2 おすすめの方法 Google のブランドの取り扱いガイドラインを遵守する。

魅力的で一貫したエクスペリエンスをプレーヤーに提供できるよう、Google Play Games サービスのブランドの取り扱いガイドラインを適用してください。

1.3 おすすめの方法 認証済みであることをプレーヤーに通知する。

ゲームで特定のアクションが自動的に実行される際に、認証済みのプレーヤーに対して適切な通知またはヒントを表示します。たとえば、認証済みのプレーヤーが特定のレベルをクリアした場面で、次のようなメッセージを表示してスコアと実績が自動的にアップロードされることを伝えます: 「You are authenticated with Google. Your achievements and scores will be saved automatically.(Google にログインしているため、実績とスコアは自動的に保存されます。)」

1.4 必須 Play ゲームサービス ID を使用してプレーヤーの進捗状況をバックアップする。

デバイスの切り替えやリセットをする、または複数のデバイスでプレイする際にプレーヤーの進捗状況が失われないようにするには、進捗状況をクラウド保存ソリューションにバックアップし、Play ゲームサービス ID をキーとして使用します。独自のバックエンド ゲームサーバーを使用する場合は、Play ゲームサービス ID を安全に使用してください。プレーヤーが Play ゲームサービス ID で認証すると、そのアカウントに進捗状況が存在するかどうかを確認し、存在する場合はプレーヤーがゲームを中断したところから再開できるようにします。独自のクラウド保存ソリューションまたは Play ゲームサービスの保存済みゲームを使用できます。

ユーザーが認証されていない場合、プレーヤーの進捗状況をローカルで維持し、プレーヤーが最終的に認証されたときに、その進捗状況を同期できるようにします。これにより、プレーヤーがゲームの認証を延期した際に、ゲームの進捗状況のデータが失われるのを防止できます。

2. 実績

ゲームに実績機能を実装する場合は、次のチェックリスト タスクをご利用ください。

ID 重要度 説明
2.1 必須 ゲームの全期間にわたって、10 個以上の実績を表示可能にする。

少なくとも 10 個の表示可能な実績が周知状態である必要があります。

2.2 必須 少なくとも 4 つの実績は、プレイするすべてのユーザーが 1 時間以内に達成できる合理的なものである必要があります。

2.3 必須 すべての実績に一意の名前と説明が必要です。これらの説明により、ユーザーはアチーブメントを獲得するために必要な操作を明確に理解できます。

2.4 必須 すべての実績に一意のアイコンが必要です。

アイコンは、背景が透明な 512 x 512 の PNG、JPEG、または JPG ファイルとして作成する必要があります。詳しくは、アイコンのガイドラインをご覧ください。

2.5 必須 すべての実績を必ず獲得できるようにする。

作成されたすべての実績のロック解除をプレーヤーが行えるようにします。

2.6 ベスト プラクティス 増分実績を使用して進行状況を表示します。

増分実績は、複数のゲーム セッションを通じて累積されます。

プレーヤーの進捗状況(23%)を示す増分実績の例
プレーヤーの進捗状況(23%)を示す増分実績。
2.7 ベスト プラクティス ゲームのライフタイム全体にわたって、40 個以上の実績を実装します。これには、プレーヤーを驚かせたり喜ばせたりする実績、マイルストーンを認識する実績、プレーヤーの進行状況を把握する実績が含まれます。

ゲームのライフサイクル全体にわたって、任意の状態で少なくとも 40 個の実績。

2.9 ベスト プラクティス 非公開の実績を使用して、驚きと喜びの要素を取り入れる。

非公開の実績とは、詳細がまだプレーヤーに明らかにされていない実績です。

2.10 ベスト プラクティス ゲームに新しいレベルやエピソードが追加されたときに、新しいアチーブメントを追加します。

詳しくは、ポイントと経験値をご覧ください。

2.11 ベスト プラクティス 実績のスコアを適切に記録する。

実績のポイントは、その実績を獲得するのに必要な時間またはスキルの量に比例する必要があります。

2.12 ベスト プラクティス さまざまな難易度レベルの実績を設計する。

プレーヤーが気軽にゲームをプレイして獲得できる簡単な実績をいくつか、スキルやプレーヤーの努力が必要な中級の難易度の実績を複数、熱心なプレーヤー向けの獲得が非常に難しい実績を 1 つか 2 つ取り入れます。

次のスクリーンショットは、獲得が難しい実績の一例です。こうした実績によって、プレーヤーのやる気を高め、関心を維持します。

宝石 5,000 個の獲得が必要な難易度の高い実績 宝石 5,000 個の獲得が必要な難易度の高い実績。
2.13 ベスト プラクティス 早い段階で実績を授与しない。

まだ熱中していない新規プレーヤーに、ゲームプレイ開始 5 分間で複数の実績を授与することは避けましょう。

実績がゲームプレイの初期段階で意図せずに授与されることのないように定義してください。たとえば、「ダメージを受けずにレベルをクリアする」といった、ゲームの初期段階でも簡単に獲得しやすい実績には注意してください。

2.14 ベスト プラクティス 魅力的なゲーム内アクティビティに関する実績を定義する。

ゲームの魅力を高め、もう一度プレイしたくなるような実績を構築できる指標を選択してください(たとえば、「倒したゾンビの数」は「キャラクターの歩数」よりも高い関心を得られる指標です)。

2.15 ベスト プラクティス 色付きの実績アイコンを使用する。

Play ゲームサービスでは、実績を獲得済みかどうかを示すためにグレースケール バージョンの実績アイコンを使用します。真っ黒(または真っ白)の実績アイコンを使用しなければならない場合は、これらのアイコンを色付きの背景に表示します。

2.16 ベスト プラクティス 非公開の実績の使用を最小限に抑える。

実績を非公開とするのはゲームのネタバレを避ける場合のみとし、標準的に実績を非公開にしないようにしてください。

2.17 ベスト プラクティス 運に頼りすぎる実績は避ける。

「宝箱に入っている可能性が 1% のアイテムを見つける」実績よりも「宝箱を 100 個見つける」実績をおすすめします。

2.18 ベスト プラクティス 「実績ハンター」の立場で考える。

中には、作成されたすべての実績を獲得しようとするプレーヤーもいます。このようなプレーヤーの要望に応える実績を用意するようにしてください。プレーヤーが制御できない要素に頼りすぎる、またはプレーヤーがゲーム中になんらかの決断を下した後は獲得できなくなる実績は作成しないでください。

質の高いアチーブメントを設計するうえで役立つ例をいくつかご紹介します。

良い例

次のスクリーンショットは、達成項目の良い例を示しています。固有の名前アイコン説明を持つ実績。説明には、アチーブメントを獲得するために必要なことが記載されています。

固有の名前、アイコン、説明が設定された優れたアチーブメント。
固有の名前、アイコン、説明が設定された優れた実績(クリックして拡大)

悪い例

次のスクリーンショットは、アチーブメントの悪い例を示しています。

名前、アイコン、説明が重複している不適切なアチーブメント。
名前、アイコン、説明が重複している実績の例(クリックして拡大)。

3. リーダーボード

ゲームにリーダーボード機能を実装する場合は、次のチェックリスト タスクをご利用ください。

ID 重要度 説明
3.1 推奨 メインメニューと主な場面遷移の後にリーダーボードが表示されるようにする。

リーダーボードは、ゲームの読み込み時にすぐにアクセスできるようにします。ゲーム内で重大な場面遷移があった後(レベル終了時やプレーヤーの死亡時など)は、すぐに関連するリーダーボードへのリンクをプレーヤーに表示します。

3.2 推奨 送信できるスコアの上限を定義する。

可能であれば、スコアが明らかに虚偽である場合はリーダーボードの定義時に破棄されるよう制限を追加してください。

3.3 推奨 カスタム アイコンを使用する。

定義した各リーダーボードのカスタム アイコンを作成します。Google Play Games アプリでは表示の解像度が低下するため、ゲームのアイコンをそのまま使用しないでください。

3.4 推奨 スコア送信の頻度を適切に設定する。

レベルの終了時やプレーヤーのゲーム キャラクターの死亡時など、ゲーム内の重要な場面遷移の後にスコアを送信します。重要な場面遷移がないゲーム(「エンドレス ランナー」系のゲームなど)の場合は、スコアを送信する頻度を適切に判断してください。連続して、または毎秒スコアを送信することは避けます。

3.5 おすすめの方法 スコアタグを利用する。

スコアタグとは、スコアの送信時に追加できるデータのことです。たとえば、プレーヤーの送信スコアが有効であることを確認するフラグとしてスコアタグを実装できます。

カスタム リーダーボードにも、このタグデータを読み込むことができます。スコアタグがプレーヤーのゲームプレイを含む YouTube 動画の ID で構成されている場合、ゲームのリーダーボード内にそのビデオを表示するためのリンクを作成することができます。

3.6 おすすめの方法 独自のリーダーボード UI をクリエイティブに設計する。

リソースがある場合は、ソーシャル リーダーボード データ上に独自のカスタム リーダーボード ビューを作成します。通常、プレーヤーにとってソーシャル リーダーボードは公開リーダーボードよりも魅力的なものになります。まず、ソーシャル リーダーボードのエントリがあるかないかを確認し、ない場合は代わりに公開リーダーボードを使用してください。

3.7 おすすめの方法 競争順位をプレーヤーに示す。

リーダーボードの API では、スコア ウィンドウの表示がサポートされています(例: +/-10 位以内のプレーヤーのランキング)。カスタムビューを作成している場合、これはプレーヤーのエンゲージメントを高めるのに有用です。スコア ウィンドウは、ゲームの重要な場面遷移(レベルの終了時やプレーヤーのゲーム キャラクターの死亡時など)の直後に表示できます。プレーヤーがクリックすることなく、ランキング情報を確認できるようにします。

4. 友だち

ゲームに友だちサービスを実装する場合は、次のチェックリスト タスクをご利用ください。

ID 重要度 説明
4.1 必須 プレーヤーがリストに表示されたときに、Play ゲーム プロフィールを持つユーザーの横に Play ゲームサービス アイコンを表示します。

このリストは、既存の友だちのリスト、最近プレイした友だちのリスト、またはその他の友だちのリストです。

4.1.1. Play ゲームサービス アイコンがクリック可能であることが必要です。
ユーザーがアイコンを押した場合、ゲームは getCompareProfileIntent() または getCompareProfileIntentWithAlternativeNameHints() を呼び出して、ユーザーが他のプレーヤーのプロフィールと比較できる UI を表示する必要があります。
4.1.2. プレーヤーのプロフィールと友だち招待のサポート。これにより、カスタマイズ可能なゲーム内プレーヤー名を使用できます。
プレーヤーがゲーム内で別の名前を設定し、Play ゲーム プロフィール名を使用しない場合は、getCompareProfileIntentWithAlternativeNameHints() を使用し現在のプレーヤーと表示中のプレーヤーの両方に対して、プロフィール ビューとビューから送信される友だちの招待状のコンテキストとして、代わりにゲーム内名を指定するようにします。任意のユーザー コンテンツではなく、値に対して永続的でグローバルなプレーヤー名のみを渡します。この要件は、ゲーム内から送信された友だちの招待状が、両方のプレーヤーに対してコンテキストを指定することを表します。
  • 受信者には、招待状送信者のゲーム内名とゲーム名が表示されます。
  • フレンドシップを見ると、送信者には、受信者のゲーム内名や、招待元のゲームが引き続き表示されます。
4.2 ベスト プラクティス さまざまなアイコンを使用して、どの Play ゲームのユーザーがすでに友だちになっているか、また Play ゲームの友だちではなくまだ Play ゲームで認証されていないかを示すことができます。「友だち」用に 1 つ、「友だち以外」(または、友だちステータスが不明な場合)用に 1 つの、Play ゲームユーザー用の 2 つのアイコンを使用します。
友だちアイコン
「友だち以外」アイコン
4.3 ベスト プラクティス 認証するたびに loadFriends() を呼び出して友だちのリストを表示し、友だちリストが最新の状態であるようにします。更新されたリストがプレーヤーに表示されるようにします。
4.4 推奨 ゲームにゲーム内の友だちがすでに含まれている場合は、友だちサービスを使用して、Play ゲームの友だちを追加することで友だちのリストに追加します。プレーヤーがゲーム内の友だちリストに含まれており、Play ゲームの友だちでもある場合は、「友だち」のアイコンを表示します。
4.5 推奨 プレーヤーが友だちリストへのアクセス リクエストを拒否した場合は、ユーザーがアクセス権の付与を希望することを示す操作(例: [**Play ゲームの友だちのインポート**] ボタンを押す)を行わない限り、再度アクセスすることを求めるダイアログを表示しません。
4.6 推奨 プレーヤーが友だちリストへのアクセスを拒否した場合は、今後(例: [**Play ゲームの友だちをインポート**] ボタンを押してから)友だちリストへのアクセス権を付与する方法を指定します。
4.7 推奨 バックエンド サーバーでプレーヤー ID または友だちリストを使用する場合は、ID またはリストに安全にアクセスする必要があります。また、一部の古いゲームやプレーヤーについては、あるプレーヤーが Android SDK でプレーヤー ID を返す際に、他のプレーヤーが同じプレーヤーを表示した場合と同じ ID にならない可能性があります。この状態は、友だちリストを使用している場合に特に発生する可能性が高くなります。ただし、REST API 内で返される player_id は常に整合性のある、他のプレーヤーに表示される ID です。

5. 割り当てとレート制限

ゲームの割り当てとレート制限を管理するには、次のチェックリスト タスクをご利用ください。ゲームの割り当ての管理と、レート制限の超過を検出する方法について詳しくは、割り当ての管理とレート制限をご覧ください。

ID 重要度 説明
5.1 推奨 クライアント ライブラリを使用する。

モバイル クライアント ライブラリでは、サービスの呼び出しを減らすためにいくつかの戦略が採用されています。たとえば、実績とリーダーボードのデータはキャッシュされているため、プレーヤーはサービスへの呼び出しを何度も実行することなく、自分の実績を好きなだけ表示できます。

プレーヤーのスコアが最後に送信したスコアよりも低い場合、Android クライアント ライブラリはプレーヤーのスコアをサーバーに送信しません。また、Android ライブラリでは、レート制限を検出すると増分実績の頻繁な呼び出しを自動的にまとめて処理します。

5.2 おすすめの方法 増分実績の頻繁な呼び出しをまとめて処理する。

作成する対戦型ゲームに「パンチを 5,000 回繰り出す」という実績がある場合に、ユーザーがパンチを繰り出すたびに増分実績の呼び出しを送信しないようにします。ラウンドが終了するまで待ってから、increment(xxx) という呼び出しを 1 回送信します(xxx は該当するラウンドでユーザーが出したパンチの合計数です)。または、パンチが 50 回繰り出されるまで待ってから increment(50) という呼び出しを 1 回送信するようにします。

5.3 おすすめの方法 使用量を常に意識する。

Google Play Games サービスの呼び出し回数に留意してください。レート上限への到達を回避しても、呼び出し頻度が高ければネットワーク トラフィックが増大し、デバイスのバッテリー消耗が加速する原因となる可能性があります。このような問題を回避するには、次のような方法があります。

  • 保存済みゲームを実行する場合は、ボタンをクリックするたびに保存するのではなく、数分に 1 回の頻度で保存する。
  • プレーヤーがゲームオーバーになるまで待ってからハイスコアを送信する。
  • Google Cloud Platform のプロジェクト ダッシュボードに移動して、アプリの 1 日あたりの割り当て量を確認する。

6. 保存済みゲーム

ゲームに保存済みゲーム機能を実装する場合は、次のチェックリスト タスクをご利用ください。

ID 重要度 説明
6.1 必須 保存済みゲームの追加のコンテキストを指定するメタデータを追加する。

保存済みゲームを commit する際は、少なくとも次のメタデータを追加する必要があります。

  • カバー画像 - ゲームの進行状況を記録し、ゲームを中断した場所がわかるスクリーンショット。
  • 説明 - カバー画像の情報を追加する簡単な説明。
  • タイムスタンプ - プレーヤーが保存済みゲームをプレイした時間の長さ。
6.2 必須 プレーヤーに保存済みゲームの読み込みを許可する。

プレーヤーが Play ゲームアプリ、またはデフォルトの保存済みゲーム選択 UI のいずれかから選択した場合に、正しい保存済みゲームを読み込みます。