- この記事は、Google Playゲームサービスに関する記事を和訳したものです。
- 原文: Leaderboards
- 元記事のライセンスは CC-BYで、この和訳記事のライセンスは CC-BYです。
- 自己責任でご利用ください。
- 和訳した時期は 2019年7月ころです。
リーダーボードはあなたのプレイヤー間の競争を駆動するための楽しい方法になることができます、それは、あなたの最もハードコアなファン(パブリックなリーダーボードにてトップの座を戦うことができる人たち)と、あなたのよりカジュアルなプレイヤー(彼らの進行状況を彼らの友人のものと比較することに興味がある人たち)の両方のためのものです。
あなたのプラットフォーム用のリーダーボードを実装する方法については、クライアントの実装を参照してください。
リーダーボードを理解する
リーダーボードを作成すると、Google Playゲームサービスはあなたのためのこのリーダーボードの多くの側面を管理することを引き受けるでしょう。 典型的なプロセスは次のように動作します:
- ゲームの最後に(あるいはあなたが決定した適切な瞬間に)、ゲームはゲーム用に作成した 1つ以上のリーダーボードにプレイヤーのスコアを提出します。
- Google Playゲームサービスは、このスコアがプレイヤーの現在のリーダーボードのデイリー、ウィークリー、あるいは全期間のスコアのエントリよりも優れているかどうかをチェックします。 もしそうであれば、Google Playゲームサービスは新しいスコアとともに対応するリーダーボードを更新します。
- Google Playゲームサービスはスコアレポートをゲームクライアントに返信します。 このレポートは、クライアントに新しいデイリー、ウィークリー、あるいは全期間のハイスコアであるかどうかをクライアントに通知します。 もしそうでなければ、Google Playゲームサービスはクライアントに、このプレイヤーのための現在のデイリー、ウィークリー、あるいは全期間のハイスコアを通知します。
- プレイヤーのリーダーボードの結果を取得するために、タイムフレーム(デイリー、ウィークリー、あるいは全期間)をリクエストし、ユーザがソーシャルあるいはパブリックなリーダーボードを見たいかどうかを指定することができます。 ゲームサービスはすべての必要なフィルタリングを実行し、それから、結果をクライアントに送り返します。
- レポートするためのスコアがたくさんある場合には、ゲームサービスはトップリーダーボードのスコアのデータのみを返信します。 さらには、トップスコア、あるいは、プレイヤーに隣接したスコアの生のスコアデータを取得することもできます。
複数のリーダーボード
ゲームは複数のリーダーボードを持つことができます、それは、最大 70までです。 例えば、複数レベルのゲームはレベルごとに異なるリーダーボードを提供するかもしれません、そして、レースゲームはトラックごとに別々のリーダーボードを持つかもしれません。
リーダーボードのタイムフレーム
Playゲーム SDKは自動的に、作成したすべてのリーダーボードのデイリー、ウイークリー、そして全期間のバージョンを作成します。 それぞれの時間フレーム用に個別のリーダーボードを作成する必要はありません。
デイリーのリーダーボードは、一年中、UTC-7(つまり、"midnight Pacific Daylight Time" )にリセットされます。
ウィークリーのリーダーボードは、デイリーのリーダーボードと同じタイムゾーン(UTC-7)にて、土曜日と日曜日の間の真夜中にリセットされます。
パブリックなリーダーボードとソーシャルなリーダーボード
Playゲーム SDKは、それぞれのリーダーボードの 2つの異なるバージョンをプレイヤーに表示することができます:
ソーシャルなリーダーボードは、ユーザーに自分たちのゲームプレイのアクティビティを共有することを決定したユーザーサークル(あるいは、より正確には、ユーザがあなたのアプリケーションと共有することを選択したサークルのメンバです)の人たちで構成されたリーダーボードです。
パブリックなリーダーボードは、彼らのゲームプレイのアクティビティをパブリックに共有することを選択しているプレイヤーで構成されたリーダーボードです。 もしあなたのプレイヤーが彼らのゲームプレイのアクティビティをパブリックに共有することを選択していなければ、彼らはこのリーダーボードに表示されないでしょう。
リーダーボードを表示する
モバイルクライアントライブラリでは、ライブラリはリーダーボードのすべての形式と表示を引き受けます。 プレイヤーが、特定のリーダーボードを見ることができるか、彼らが選んだあなたのリーダーボードのすべてのリストを見ることができるかを指定することができます
クライアントのライブラリから直接データにアクセスすることによって、リーダーボードの独自のバージョンを実装することもできます。
属性
リーダーボードを作成し管理するには、これらのリーダーボードの属性に精通していたいでしょう:
基本
これらの基本的な要素は、すべてのリーダーボードに関連付けられています:
- IDは Google Play Consoleがあなたのために生成したユニークな文字列です。このユニークな IDをあなたのゲームクライアントでリーダーボードを参照するために使用するでしょう。
- Nameはリーダーボードの短い名前です(例えば "High Scores" あるいは "Level 3")。 これは 100文字まで可能です。
- Iconは、リーダーボードに関連付けられる四角いアイコンです。 リーダーボードのアイコンを作成する際のベストプラクティスについては、下記のアイコンのガイドラインセクションを参照してください。
- List orderは、プレイヤーがあなたのゲームに関連したリーダーボードを表示したとき、リーダーボードが表示される順序です。
-
Limitsは、リーダーボードにて許可されるスコアの上限と下限を定義するためのオプションの値です。
これは、明らかに不正であるスコアの提出を破棄することに役立ちます。
あなたのアプリのすべてのリーダーボードから不正なスコアを提出したと信じるプレイヤーを非表示にするために
Players.hide
を使用することもできます。
オーダー
リーダーボードは 2つのオーダー型のいずれかを持つことができます:
- Larger is betterなリーダーボードはデフォルトです。 これはプレイヤーがポイントを獲得するほとんどのゲームで見る典型的なものです。
- Smaller is betterなリーダーボードは、時折、小さなスコアがより良い場合に使用されています。 リーダーボードのこの型の最も一般的な例はレーシングゲームです、そこでは、スコアは、レースを終えるためのプレイヤーの時間を表しています。
スコアの形式
すべてのスコアはリーダーボードに提出され、内部的には long整数として格納されている一方、ゲームサービスはそれらをユーザーに多数の異なる形式で提示することができます:
-
Numericなリーダーボードは、スコアを数字として表します。
これらは整数として、あるいは小数点以下の数が固定された実数として表示することができます。
スコアを整数として提出し、小数点は指定された場所に挿入されます。
314159
のスコアは、例えば、指定した小数点以下の桁数に応じて、3.14159
、3141.59
、あるいは314159
として表示されます。 -
Timeなリーダーボードは、スコアを時間 / 分 / 秒 / 100分の 1秒の形式で表します。
スコアをミリ秒で提出しなければなりません、そのため、
66032
は1:06.03
として解釈されるでしょう。 -
Currencyなリーダーボードは、スコアを通貨の形式で示します。
主要な通貨単位の 1 / 1,000,000としてスコアを提出します。
例えば、あなたの通貨を USDとして指定したと仮定すると、19,950,000のスコアは
$19.95
として解釈されるでしょう。
Numericなリーダーボードは、カスタム単位もサポートしています。 例えば、もしあなたのゲームがメートルでハイスコアを測定するならば、あなたのリーダーボードのデフォルトの単位として "meters" を指定することができます。
翻訳とスコアの形式
モバイルクライアントのライブラリがゲームサービスからリーダーボードのデータをリクエストするとき、それらはそれらのスコアを表示するための言語とロケールを指定します。 REST APIは、同様にロケールベースの言語を指定できようにします。 ゲームサービスはその言語とロケールに適したフォーマットされたリーダーボードのスコアを返します。 これらのフォーマットされたスコアは、リーダーボードの翻訳を追加したかどうかに関わらず表示されます。
Numericなリーダーボードの場合、数の書式は言語ごとに異なって表示されます(例えば、USでは 12,345.78
となり、フランスでは 12 345,78
となります)。
もしカスタム単位を使用していて、あなたのゲームに翻訳を追加したならば、追加したすべての言語にそれぞれ対応する翻訳された単位を提供しなければなりません。
サービスは、それから、適切な場合には、これらの翻訳された単位を表示します。
選択した言語に応じて、あなたの単位の名前の異なるバージョンを供給する必要があるかもしれません。 英語では、1つのアイテムとその他すべてのものに対応するバージョンが必要になります(例えば、"meter" と "meters")。 ポーランド語では、一方で、1つの単位、少数の単位、多数の単位、および、他のすべてのものに対応するバージョンを提供する必要があります。 複数形のルールの詳細については、Quantity Strings (Plurals)を参照してください。
Timeなリーダーボードの場合、時刻の形式はプレイヤーの言語とロケールに応じて表示されます。
これは、主に、秒の分数を使用している、あるいは、3桁以上の時間の値を持つ場合に、顕著になるでしょう(例えば、アメリカでは 4,815:16:23.42
で、ドイツでは4.815:16:23,42
です)。
Currencyなリーダーボードの場合、通貨の形式はプレイヤーの言語とロケールに応じて表示されるでしょう。
しかしながら、通貨の単位を変更することはできません。
例えば、もしあなたの通貨を USDに指定するならば、ゲームはアメリカでは $19.95
、フランスでは 19,95 $
と表示されます。
しかし、あなたのゲームは、アメリカではドルを、フランスではユーロを表示ように指定することはできません。
アイコンのガイドライン
アイコンは 512× 512の PNGあるいは JPEGファイルとして作成される必要があります。 あなたのアイコンはほとんどのゲームクライアントでは縮小されるので、あまりにも精密なアイコンを作成することは避ける必要があります。 アルファチャンネルつきのアイコンを提出することができ、透明度は保持されます。 リーダーボードのアイコンは、Android端末上ではやや濃い灰色の背景に対して表示されるので、この状況でもうまく動作することができるアイコンを選択します。
同じアイコンがすべてのロケールで使用されるので、アイコン内にいかなるテキストあるいはローカライズされたコンテンツを含めないことをお勧めします。
リーダーボードを作成する
新しいゲームの場合
新しい、および、未公開のゲーム用のリーダーボードを作成するには、あなたのゲームの Google Play Consoleのエントリーに行き、左側の Leaderboardタブを選択し、それから Add new Leaderboardボタンをクリックします。

それから、単純にこのリーダーボードに必要とされる情報を記入します。

Saveをクリックします、そうすれば、あなたのリーダーボードは "Ready to publish" モードで利用可能になります。 ひとたびあなたのゲームを公開すれば、あなたのゲームのリーダーボードのすべてがそれに伴って公開されるでしょう。
公開されたゲームの場合
既に公開されているゲーム用に追加のリーダーボードを作成するには、上記と同じ手順で行います。 唯一の違いは、Saveボタンが Save as draftボタンとして改称され、あなたのリーダーボードが "Ready to test" モードになるということです。 ゲームのアップデート版のテストの詳細については、あなたのゲームの変更を公開するを参照してください。
ひとたびリーダーボードのテストを完了しそれに満足したならば、新しいリーダーボードを伴ったあなたのゲームを再公開することができます、そして、それらは世界にプッシュされるでしょう。
リーダーボードを編集する
既に作成したリーダーボードを編集するには、Google Play Consoleの Leaderboardsタブにあるリーダーボードをクリックします。 この時点では、最初にリーダーボードを作成するときに使用したものと同じフォームが表示され、望むようにいかなるフィールドを編集することができます。
リーダーボードの編集を終えたならば、Save as draftボタンをクリックします。 新しく編集されたリーダーボードは、"ready to test" の段階になり、それをテストすることができます。 もしそれが正常に動作するならば、ドロップダウンリストから Republishを選択し、あなたのすべての更新されたリーダーボードと一緒に、一般の人々にあなたのゲームを再公開します。
編集をアンドゥする
もしあなたの新しく編集されたリーダーボードが好きではないと決定し、それを以前の方法に引き返したいならば、単純に、ドロップダウンリストから "Revert" を選択すると、あなたのリーダーボードのすべては、既に公開されたバージョンに戻ります。
リーダーボードを削除する
ドラフト状態にあるか公開されているリーダーボードを削除することができます。 Google Play Consoleにてリーダーボードを削除するには、そのリーダーボード用のフォームの下部にある "Delete" というボタンをクリックします。
あるいは、アプリにてプレイヤーのリーダーボードを非表示にするために Players.hide
を呼び出すことができます。
リーダーボードをリセットする
あなたのドラフトのリーダーボード用のプレイヤーの進捗データのみをリセットすることができます。
- Google Play Consoleにてリーダーボードをリセットするには、そのイベントのフォームの下部にある Reset leaderboard progressとラベルされたボタンをクリックします。
-
プログラム的にリーダーボードのデータをリセットするには、Management API
Scores
methodsを呼び出します。
リーダーボード用の翻訳を追加する
あなたのゲームに関連しているリーダーボード用に独自の翻訳を指定することができます。 これを実行する前に、あなたのゲームに対応する翻訳を追加するに記述された手順を完了してください。 また、あなたのゲームのために 1つ以上のリーダーボードを作成していなければなりません。
リーダーボード用に独自の翻訳を追加するには、Google Play Consoleにてあなたのゲームの Leaderboardsタブを開き、それから既存のリーダーボードを選択します。 リーダーボードの詳細ページにて、以前 Game detailsタブにて追加した言語用のタブをクリックします。 その言語用のリーダーボードの詳細ページでは、そのリーダーボード用のあなたの翻訳を使用してフォームを編集します。 あなたの翻訳されたリーダーボードの詳細を保存するために Saveをクリックします。
リーダーボードのスコアを非表示にする
Google Playゲームサービスは、タンパーされた疑いがあるスコアをチェックし自動的に非表示にする、リーダーボードのタンパープロテクション機能を提供します。 この機能は Androidゲームでのみ利用可能です。
タンパープロテクションは、あなたの Androidゲーム用に作成した新しいリーダーボードではデフォルトで有効になっています、しかし、既存のリーダーボードでは無効になっています。 既に公開されている既存のリーダーボード用にタンパープロテクションを有効にするには、次の手順を実行します:
- Google Play Consoleにて Games servicesタブを開き、それから、リストからあなたのゲームを選択します。
- Leaderboardsタブを開き、それから、あなたがタンパープロテクションを有効にしたいリーダーボードのインスタンスを選択します。
- Enable leaderboard tamper protectionオプションを ONにします。
- Saveをクリックし、続けます。
- あなたのゲームを公開します。
ひとたびタンパープロテクションが Google Play Consoleにてリーダーボード用に有効にされたならば、この機能が効果を得るために最大 24時間かかるかもしれません。 タンパープロテクションを有効にする前に提出されたスコアは、過去に遡って非表示になることはありません。
幾つかの状況では、タンパープロテクションを無効にしたいかもしれません(例えば、あなたのゲームが Androidに加えてウェブでも実行されていて、これらのプラットフォームに渡ってリーダーボードを共有するとき)。
クライアントの実装
あなたのプラットフォーム用のリーダーボードを実装する方法については、次のリソースを参照してください: