リーダーボード

リーダーボードは、熱心なファン(公開リーダーボードでトップの座を争うプレーヤー)と、カジュアルなプレーヤー(友だちと進捗を比較して楽しむプレーヤー)のどちらにとっても、プレーヤー間の競争が盛り上がる楽しい方法です。

プラットフォームにリーダーボードを実装する方法については、クライアント の実装をご覧ください。

リーダーボードについて

リーダーボードを作成すると、Play Games サービスがリーダーボードのほとんどの面を管理します。通常は次のようなプロセスで機能します。

  1. ゲーム終了時(または設定したタイミング)に、そのゲーム用に作成した 1 つ以上のリーダーボードにプレーヤーのスコアが送信されます。
  2. Play Games サービスは、そのスコアがプレーヤーの現在のリーダーボード エントリ(日別、週別、または全期間)を超えているかどうかをチェックします。超えている場合、Play Games サービスは、該当するリーダーボードを新しいスコアで更新します。
  3. Play Games サービスがゲーム クライアントにスコアレポートを返します。このレポートでは、日別、週別、または全期間の新しいハイスコアであるかどうかがクライアントに示されます。超えていない場合、Play Games サービスは、このプレーヤーの日別、週別、または全期間の現在のハイスコアをクライアントに示します。
  4. リーダーボード用にプレーヤーの成績を取得するには、期間(日別、週別、または全期間)をリクエストし、ユーザーがソーシャルまたは公開のリーダーボードの表示を希望するかどうかを指定します。Play Games サービスは必要なフィルタリングをすべて行い、結果をクライアントに返します。
  5. レポートするスコアが多い場合、Play Games サービスは上位のリーダーボード スコアのデータのみを返します。上位のスコアやプレーヤーの前後のスコアを未加工データとして取得することもできます。

複数のリーダーボード

ゲームのリーダーボードは複数作成できます(70 個まで)。たとえば、ゲームに複数のレベルがある場合は、レベルごとに異なるリーダーボードを用意でき、レーシング ゲームではトラックごとに別々のリーダーボードを用意できます。

リーダーボードの期間

Play Games SDK は、作成されたすべてのリーダーボードの、日別、週別、全期間の各バージョンを自動的に作成します。期間ごとに別々のリーダーボードを作成する必要はありません。

日別のリーダーボードは、年間を通じて UTC-7 時(つまり太平洋夏時間の午前 0 時)にリセットされます。

週別のリーダーボードは、日別のリーダーボードと同じタイムゾーン(UTC-7)における、土曜日と日曜日の間の午前 0 時にリセットされます。

一般公開リーダーボードとソーシャル リーダーボード

Play Games SDK は、各リーダーボードの 2 種類のバージョンをプレーヤーに表示できます。

ソーシャル リーダーボードは、ユーザーのサークル(正確には、ユーザーがアプリと共有することを選択したサークルのメンバー)のうち、このユーザーとゲーム アクティビティを共有することにした人たちで構成されるリーダーボードです。

公開リーダーボードは、ゲームプレイ アクティビティを公に共有することを選択したプレーヤーで構成されるリーダーボードです。プレーヤーがゲームプレイ アクティビティを公に共有することを選択していない場合、このリーダーボードには表示されません。

リーダーボードを表示する

リーダーボードのフォーマット設定と表示に必要な処理はすべてモバイル クライアント ライブラリが行います。プレーヤーに特定のリーダーボードを表示するか、プレーヤーが選択できるすべてのリーダーボードのリストを表示するかを指定できます。

クライアント ライブラリから直接データにアクセスして、独自のバージョンのリーダーボードを実装することもできます。

属性

リーダーボードを作成して管理するには、以下のリーダーボード属性について理解している必要があります。

基本情報

すべてのリーダーボードに、以下の基本要素が関連付けられます。

  • ID: Google Play Console によって生成される一意の文字列。この一意の ID を使用して、ゲーム クライアント内のリーダーボードを参照します。
  • Name : リーダーボードの略称(「ハイスコア」、「レベル 3」など)。100 文字まで設定できます。
  • Icon : リーダーボードに関連付けられる正方形のアイコン。リーダーボード アイコンを作成する際の ベスト プラクティスについては、アイコン のガイドラインをご覧ください
  • List order : プレーヤーがゲームに関連付けられたリーダーボードを表示したときに、リーダーボードが表示される順序。
  • Limits : リーダーボードに表示できるスコアの下限と上限を定義するオプション値。これにより、明らかに不正なスコア送信を破棄できます。Players.hide を使用して、不正なスコアを送信したと思われるプレーヤーをアプリ内のすべての リーダーボードから非表示にすることもできます。

リーダーボードの順位付け

リーダーボードでは 2 種類の順位付けが可能です:

  • 大きいほど上位 のリーダーボードがデフォルトです。これは通常、プレーヤーがポイントを獲得するほとんどのゲームで表示されます。
  • 小さいほど上位 のリーダーボードは、スコアが小さいほうが優れている場合に使用します。最も一般的な例としては、レースゲームのリーダーボードが挙げられます。この場合、スコアはプレーヤーの完走時間を表します。

スコアの形式

スコアはすべてリーダーボードに送信され、長整数として内部的に保持されますが、Play Games サービスではさまざまな形式でユーザーに表示できます。

  • 数値 リーダーボードは、スコアを数値として表します。整数として表示することも、小数点以下の桁数を固定した実数として表示することもできます。スコアは整数として送信され、指定した位置に小数点が表示されます。たとえば、スコア 314159 は、指定した小数点以下の桁数に応じて、3.141593141.59314159 のいずれかで表示されます。

  • 時間 リーダーボードは、スコアを時間 / 分 / 秒 / 100 分の 1 秒の形式で表示します。スコアはミリ秒単位で送信する必要があります。したがって、660321:06.03 と解釈されます。

  • 通貨 リーダーボードは、スコアを通貨形式で示します。スコアは、メインの通貨単位の 1/1,000,000 として送信します。たとえば 19,950,000 というスコアは、通貨に米ドルを指定した場合、$19.95 と解釈されます。

数値リーダーボードでは、独自の単位もサポートされます。たとえば、ハイスコアをメートル単位で測るゲームの場合、リーダーボードのデフォルトの単位として「メートル」を指定できます。

翻訳とスコアの形式

モバイル クライアント ライブラリは、Play Games サービスにリーダーボード データをリクエストする際に、こうしたスコアを表示する言語と地域を指定します。REST API を使用すると、地域ベースの言語も指定できます。Play Games サービスから、指定した言語と地域に適した形式のリーダーボード スコアが返されます。こうした形式のスコアは、リーダーボードに翻訳を追加したかどうかに関係なく表示されます。

数値 リーダーボードの場合は、言語によって表示される数値の形式が変わります(たとえば米国では 12,345.78、フランスでは 12 345,78)。カスタム単位を使用しており、ゲームに 翻訳を追加している場合は、追加したすべての言語について翻訳された単位を指定する必要があります。サービスは、これらの翻訳された単位を適切な場所に表示します。

選択した言語によっては、複数の種類の単位名を用意する必要が生じる場合があります。英語では、単数形と複数形を区別する必要があります(「meter」と「meters」など)。一方、ポーランド語では、1 個の場合、数個の場合、それより多い場合、それよりもっと多い場合の単位を用意する必要があります。複数形ルールについて詳しくは、数量文字列(複数形)をご覧ください。

時間リーダーボードの場合は、時刻形式がプレーヤーの言語と地域に応じて表示されます。これは主に、秒の小数点以下が複数桁ある場合や時間の値が 3 桁以上になる場合、顕著になります(たとえば米国では 4,815:16:23.42、ドイツでは 4.815:16:23,42)。

通貨リーダーボードの場合は、通貨形式がプレーヤーの言語と地域に応じて表示されます。ただし、通貨単位を変えることはできません。たとえば通貨に米ドルを指定した場合、米国では $19.95、フランスでは 19,95 $ と表示されます。ただし、米国ではドルで表示し、フランスではユーロで表示する、と指定することはできません。

アイコンのガイドライン

アイコンは、512 x 512 の PNG ファイルまたは JPEG ファイルとして作成する必要があります。ほとんどのゲーム クライアントではアイコンが縮小して表示されるため、細部まで詳しく描かれたアイコンは避けるようにします。アイコンはアルファ チャンネルで送信でき、透明度はそのまま維持されます。リーダーボード アイコンは、Android デバイスでは濃いグレーの背景の上に表示されます。そのような場合でもはっきり識別できるアイコンを選択してください。

すべての言語 / 地域で同じアイコンが使用されるため、アイコンにはテキストやローカライズされたコンテンツを含めないようにすることをおすすめします。

リーダーボードを作成する

このセクションでは、新規または既存のゲームのリーダーボードを作成する方法について説明します。

リーダーボードを作成する

新しいゲームの場合

新しい未公開のゲームのリーダーボードを作成するには、ゲームの Google Play Console エントリにアクセスし、[ユーザーを増やす > Play Games サービス > 設定と管理 > リーダーボード] に移動して、[リーダーボードを作成] ボタンをクリックします。

メインの [リーダーボード] パネルの [リーダーボードを追加] ボタン
[リーダーボードを追加] ボタンは、メインの [リーダーボード] パネルにあります

次に、このリーダーボードに必要な情報を入力します。

「Best single round」というリーダーボードの入力フォーム
[Best round] リーダーボードの入力済みフォーム。

[未公開として保存] をクリックすると、リーダーボードが「未公開」 の状態になります。ゲームを公開すると、一緒にゲームのリーダーボードがすべて公開されます。

リーダーボードを作成する

公開済みのゲームの場合

すでに公開されているゲームに追加するリーダーボードを作成する場合も、手順は同様です。ゲームの更新版のテストについて詳しくは、 ゲームの変更の公開に関するページをご覧ください。

リーダーボードをテストして問題がなければ、新しいリーダーボードとともにゲームを再公開し、世界中に配信できます。

リーダーボードを編集する

作成済みのリーダーボードを編集するには、Google Play Console の [リーダーボード] タブで、リーダーボードをクリックします。この時点で、リーダーボードを初めて作成したときに使用したフォームが表示されます。必要に応じて、任意のフィールドを編集できます。

リーダーボードの編集が完了したら、[未公開として保存] ボタンをクリックします。新しく編集したリーダーボードは「未公開」の状態になり、テストできるようになります。

正常に動作していれば、リーダーボード フォームの上部にあるボックスで [変更を公開] を選択します。更新済みのすべてのリーダーボードとともに、ゲームを再公開できます。

編集を元に戻す

新しく編集したリーダーボードに問題があり、以前の状態に戻す場合は、リーダーボード フォームの上部にあるボックスで [元に戻す] を選択します。これで、リーダーボードが以前公開していたバージョンに戻ります。

リーダーボードを削除する

「未公開」の状態または公開済みのリーダーボードは削除できます。Google Play Console でリーダーボードを削除するには、リーダーボードのフォームに移動し、フォームの上部にある [リーダーボードを削除] をクリックします。

または、Players.hide を呼び出して、 アプリ内のプレーヤーのリーダーボードを非表示にすることもできます。

リーダーボードをリセットする

未公開のリーダーボードであれば、プレーヤーの進行状況のデータをリセットできます。

  • Google Play Console でリーダーボードをリセットするには、イベントのフォームの上部にある [進行状況をリセット] をクリックします。
  • リーダーボード データをプログラムでリセットするには、Management API Scores メソッドを呼び出します。

リーダーボードの翻訳を追加する

ゲームに関連付けられているリーダーボードに、独自の翻訳を指定できます。その場合はまず、 ゲームの翻訳の追加 に記載されている手順を完了してください。また、ゲーム用に 1 つ以上のリーダーボードを作成しておく必要があります。

リーダーボードの独自の翻訳を追加するには、Google Play Console でゲームの [リーダーボード] タブを開き、既存のリーダーボードを選択します。リーダーボードの詳細ページで、[ゲームの詳細] タブで以前に追加した言語のタブをクリックします。その言語のリーダーボードの詳細ページにあるフォームで、リーダーボードの翻訳を編集します。[保存] をクリックして、翻訳済みのリーダーボードの詳細を保存します。

リーダーボードのスコアを非表示にする

Google Play Games サービスには、改ざんの疑いがあるスコアをチェックして自動的に非表示にするリーダーボード改ざん対策機能が用意されています。この機能は Android ゲームでのみ使用できます。

Android ゲーム用に作成した新しいリーダーボードでは、改ざん対策がデフォルトで有効になっていますが、既存のリーダーボードでは無効になっています。すでに公開されている既存のリーダーボードで改ざん対策を有効にするには、次の手順を行います。

  1. Google Play Console で [ゲームサービス] タブを開き、リストからゲームを選択します。
  2. [リーダーボード] タブを開き、改ざん対策を有効にするリーダーボード インスタンスを選択します。
  3. [リーダーボードの改ざん対策を有効にする] オプションをオンにします。
  4. [保存] をクリックして次に進みます。
  5. ゲームを公開します。

Google Play Console でリーダーボードの改ざん対策を有効にしてから、この機能が有効になるまで、24 時間ほどかかることがあります。改ざん対策を有効にする前に送信されたスコアが遡及的に非表示になることはありません。

状況によっては、改ざん対策を無効にすることが必要な場合があります(たとえば、ゲームが Android に加えてウェブでも実行され、これらのプラットフォーム間でリーダーボードを共有している場合など)。

クライアントの実装

プラットフォームのリーダーボードを実装する方法については、以下のリソースをご覧ください。