リーダーボードは、熱心なファン(公開リーダーボードでトップの座を争うプレーヤー)と、カジュアルなプレーヤー(友だちと進捗を比較して楽しむプレーヤー)のどちらにとっても、プレーヤー間の競争が盛り上がる楽しい方法です。
プラットフォームにリーダーボードを実装する方法については、クライアントの実装をご覧ください。
リーダーボードとは
リーダーボードを作成すると、Google Play Games サービスがほとんどの 役立ちます通常は次のようなプロセスで機能します。
- ゲームの終了時点(または任意の時点)で、そのゲーム用に作成した 1 つ以上のリーダーボードにプレーヤーのスコアを送信します。
- Google Play Games サービスは、このスコアがプレーヤーの現在のスコアよりも優れているかどうかを確認します。 日別、週別、または全期間のスコアのリーダーボード エントリ。存在する場合、 Google Play Games サービスにより、対応するリーダーボードが新しいスコアで更新されます。
- Google Play Games サービスは、ゲーム クライアントにスコアレポートを送信します。このレポートでは、日別、週別、または全期間の新しいハイスコアであるかどうかがクライアントに示されます。そうでない場合、Google Play Games サービスは、 毎週、または全期間のハイスコアです。
- リーダーボード用にプレーヤーの成績を取得するには、期間(日別、週別、または全期間)をリクエストし、ユーザーがソーシャルまたは公開のリーダーボードの表示を希望するかどうかを指定します。Games サービスは、 必要なフィルタリングが行われてから、その結果をクライアントに送り返します。
- 報告するスコアが多い場合、ゲームサービスは、 上位のリーダーボードのスコアのデータのみを返します。未加工データを取得して 上位スコアまたはプレーヤーの隣接スコアのスコアデータ。
複数のリーダーボード
ゲームのリーダーボードは複数作成できます(70 個まで)。たとえば、マルチレベル ゲームではレベルごとに異なるリーダーボードを用意でき、レーシング ゲームではトラックごとに別々のリーダーボードを用意できます。
リーダーボードの期間
Play Games SDK で日次、週次、全期間の各バージョンが自動的に作成される 記録する必要があります別のクラウドプロバイダを おすすめします。
日別のリーダーボードは、年間を通じて UTC-7 時(つまり太平洋夏時間の午前 0 時)にリセットされます。
週別のリーダーボードは、日別のリーダーボードと同じタイムゾーン(UTC-7)における、土曜日と日曜日の間の午前 0 時にリセットされます。
公開リーダーボードとソーシャル リーダーボード
Play ゲーム SDK は、各リーダーボードの 2 種類のバージョンをプレーヤーに表示できます。
ソーシャル リーダーボードは、ユーザーのサークル(正確には、ユーザーがアプリと共有することを選択したサークルのメンバー)のうち、このユーザーとゲームプレイ アクティビティを共有することにした人たちで構成されるリーダーボードです。
公開リーダーボードは、ゲームプレイ アクティビティを公に共有することを選択したプレーヤーで構成されるリーダーボードです。プレーヤーがゲームプレイ アクティビティを公に共有することを選択していない場合、このリーダーボードには表示されません。
リーダーボードの表示
リーダーボードのフォーマット設定と表示に必要な処理はすべてモバイル クライアント ライブラリが行います。プレーヤーに特定のリーダーボードを表示するか、プレーヤーが選択できるすべてのリーダーボードのリストを表示するかを指定できます。
また、クライアント ライブラリからデータに直接アクセスすることで、独自のバージョンのリーダーボードを実装することもできます。
属性
リーダーボードを作成して管理するには、以下のリーダーボード属性について理解している必要があります。
基本情報
すべてのリーダーボードに、以下の基本要素が関連付けられます。
- ID: Google Play Console で使用される一意の文字列 自動的に生成されます。この一意の ID を使用して、ゲーム クライアント内のリーダーボードを参照します。
- Name: リーダーボードの短い名前(「ハイスコア」、「レベル 3」など)。100 文字まで設定できます。
- Icon: リーダーボードに関連付ける正方形のアイコン。リーダーボード アイコンを作成する際のおすすめの方法については、後述するアイコンのガイドラインのセクションをご覧ください。
- List order: ゲームに関連付けられているリーダーボードを表示するときに、リーダーボードが表示される順序。
- Limits: リーダーボードに表示できるスコアの下限と上限を定義するオプション値。これにより、明らかに不正なスコア送信を破棄できます。また
Players.hide
を使用すると、アプリのすべてのリーダーボードで、不正なスコアを送信したと思われるプレーヤーを非表示にできます。
順位付け
リーダーボードの順序は、次の 2 種類のいずれかになります。
- 大きいほど上位のリーダーボードがデフォルトです。プレーヤーがポイントを獲得するタイプのゲームで一般的な方式です。
- 小さいほど上位のリーダーボードは、スコアが小さいほうが優れている場合に使用します。最も一般的な例としては、レースゲームのリーダーボードが挙げられます。この場合、スコアはプレーヤーの完走時間を表します。
スコアの形式
一方で、すべてのスコアはリーダーボードに送信され、 整数値を使用すると、ゲーム サービスではさまざまな形式でユーザーにそれらの整数を表示できます。 形式:
数値リーダーボードは、スコアを数値として表します。これらの値は、整数、または小数点の位置を固定した実数として表示できます。スコアを整数として送信すると、指定した位置に小数点が挿入されます。たとえば
314159
というスコアは、指定した小数点の位置に応じて3.14159
、3141.59
、314159
などと表示されます。時間リーダーボードは、時 / 分 / 秒 / 100 分の 1 秒の形式でスコアを示します。スコアはミリ秒単位で送信する必要があるため、
66032
は1:06.03
と解釈されます。通貨リーダーボードは、スコアを通貨形式で示します。スコアは、メインの通貨単位の 1/1,000,000 として送信します。たとえば 19,950,000 というスコアは、通貨に米ドルを指定した場合、
$19.95
と解釈されます。
数値リーダーボードでは、独自の単位もサポートされます。たとえば、ハイスコアをメートル単位で測るゲームの場合、リーダーボードのデフォルトの単位として「メートル」を指定できます。
翻訳とスコアの形式
モバイル クライアント ライブラリがゲームサービスにリーダーボード データをリクエストすると、 これらのスコアを表示する言語とロケールを指定します。REST API を使用すると、地域ベースの言語も指定できます。ゲームサービスはフォーマットされたリーダーボード スコアを返します。 表示することもできます。こうした形式のスコアは、リーダーボードに翻訳を追加したかどうかに関係なく表示されます。
数値リーダーボードの場合は、言語によって表示される数値の形式が変わります(たとえば米国では 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 ゲーム サービス >設定と管理 >[リーダーボード] をクリックし、 [リーダーボードを作成] ボタン。
![メインの [リーダーボード] パネルの [リーダーボードを追加] ボタン](https://developers-dot-devsite-v2-prod.appspot.com/static/games/services/images/leaderboardAddNew.png?authuser=6&hl=ja)
次に、このリーダーボードに必要な情報を入力します。
![「Best single round」というリーダーボードの入力フォーム](https://developers-dot-devsite-v2-prod.appspot.com/static/games/services/images/leaderboardSampleForm.png?authuser=6&hl=ja)
[未公開として保存] をクリックすると、リーダーボードが「未公開」の状態になります。ゲームを公開すると、一緒にゲームのリーダーボードがすべて公開されます。
公開中のゲームのリーダーボードを作成する
すでに公開されているゲームに追加するリーダーボードを作成する場合も、手順は同様です。ゲームの更新版のテストについては、ゲームの変更の公開に関するページをご覧ください。
リーダーボードをテストして問題がなければ、新しいリーダーボードとともにゲームを再公開し、世界中に配信できます。
リーダーボードを編集する
作成したリーダーボードを編集するには、 Google Play Console の [リーダーボード] タブ。このとき、最初にリーダーボードを作成したときと同じフォームが表示され、任意のフィールドを編集できるようになります。
リーダーボードの編集が完了したら、[未公開として保存] ボタンをクリックします。新しく編集したリーダーボードが、テストできる「未公開」の状態になります。
正常に動作していれば、リーダーボード フォームの上部にあるボックスで [変更を公開] を選択します。更新済みのすべてのリーダーボードとともに、ゲームを再公開できます。
編集を元に戻す
新しく編集したリーダーボードに問題があり、以前の状態に戻す場合は、リーダーボード フォームの上部にあるボックスで [元に戻す] を選択します。これで、リーダーボードが以前公開していたバージョンに戻ります。
リーダーボードを削除する
「未公開」の状態または公開済みのリーダーボードは削除できます。Google Play Console でリーダーボードを削除するには、 リーダーボードをクリックし、フォームの上部にある [リーダーボードを削除] をクリックします。
または、Players.hide
を呼び出すと、アプリ内でプレーヤーのリーダーボードを非表示にできます。
リーダーボードをリセットする
未公開のリーダーボードであれば、プレーヤーの進行状況のデータをリセットできます。
- Google Play Console でリーダーボードをリセットするには、右上の [進行状況をリセット] をクリックします。 そのイベントのフォームの一番上に表示されます。
- リーダーボード データをプログラムでリセットするには、Management API の
Scores
メソッドを呼び出します。
リーダーボードの翻訳を追加する
ゲームに関連付けられているリーダーボードに、独自の翻訳を指定できます。その場合はまず、ゲームの翻訳の追加に記載されている手順を完了してください。また、ゲームのリーダーボードを 1 つ以上作成しておく必要があります。
リーダーボードに独自の翻訳を追加するには、リーダーボードの [リーダーボード] タブを開き、 Google Play Console でゲームを選択し、既存のリーダーボードを選択します。リーダーボードの詳細ページで、以前に [ゲームの詳細] タブで追加した言語のタブをクリックします。その言語のリーダーボードの詳細ページにあるフォームで、リーダーボードの翻訳を編集します。[保存] をクリックして、翻訳済みのリーダーボードの詳細を保存します。
リーダーボードのスコアを非表示にする
Google Play Games サービスには、リーダーボードの改ざん対策機能として、 改ざんの疑いのあるスコアがないかチェックし、自動的に非表示にします。この機能は Android ゲームでのみ利用できます。
改ざん対策は、Android ゲーム用に作成した新しいリーダーボードではデフォルトで有効になっていますが、既存のリーダーボードでは無効になっています。すでに公開されている既存のリーダーボードの改ざん対策を有効にする手順は次のとおりです。
- Google Play Console で [ゲームサービス] タブを開き、 選択します。
- [リーダーボード] タブを開き、改ざん対策を有効にするリーダーボード インスタンスを選択します。
- [リーダーボードの改ざん対策を有効にする] オプションをオンにします。
- [保存] をクリックして次に進みます。
- ゲームを公開します。
Google Play Console でリーダーボードの改ざん対策を有効にすると、 この機能が有効になるまで 24 時間ほどかかる場合があります。改ざん対策を有効にする前に送信されたスコアが遡及的に非表示になることはありません。
状況によっては、改ざん対策を無効にすることをおすすめします(ゲームが Android だけでなくウェブでも動作し、これらのプラットフォーム間でリーダーボードを共有する場合など)。
クライアントの実装
プラットフォームのリーダーボードを実装する方法については、以下のリソースをご覧ください。