GS2-Ranking マスターデータリファレンス
{
"version": "2019-09-17",
"categories": [
{
"name": "[string]カテゴリ名",
"metadata": "[string?]メタデータ",
"minimumValue": "[long?]スコアの最小値",
"maximumValue": "[long?]スコアの最大値",
"sum": "[bool]登録を受け付けたスコアを合算し、合計値を競う",
"orderDirection": "[string]スコアのソート方向",
"scope": "[string]ランキングの種類",
"globalRankingSetting": {
"uniqueByUserId": "[bool]ユーザID毎にスコアを1つしか登録されないようにする",
"calculateIntervalMinutes": "[int]スコアの集計間隔(分)",
"calculateFixedTiming": {
"hour": "[int?]スコアの固定集計開始時刻(時)",
"minute": "[int?]スコアの固定集計開始時刻(分)"
},
"additionalScopes": [
{
"name": "[string]スコープ名",
"targetDays": "[long]集計対象日数"
}
],
"ignoreUserIds": [
"[string]ランキングに反映しないユーザーID"
],
"generation": "[string?]ランキングの世代"
},
"entryPeriodEventId": "[string?]スコアの登録可能期間 GS2-Schedule イベントGRN",
"accessPeriodEventId": "[string?]ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN"
}
]
}
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
version | ✓ | 2019-09-17 | マスターデータのフォーマットバージョン | |||
categories | List<CategoryModel> | ~ 1000 items | カテゴリーモデル |
CategoryModel
カテゴリーモデル
カテゴリ毎に異なるランキングを作成できます。
カテゴリには登録できるスコアの最小値・最大値を設定でき、その範囲外のスコアは破棄されます。
ランキングを集計する際にスコアを小さいものを上位(昇順)にするか、大きいものを上位(降順)にするかを設定できます。
ランキングの種類として グローバル
と スコープ
を選択できます。
グローバルは全プレイヤーが同じ結果を参照するもので、スコープはフレンド内ランキングや、ギルド内ランキングのようなゲームプレイヤー毎に結果の異なるランキングです。
グローバルランキングはカテゴリごとにランキングの集計間隔を15分~24時間で設定できます。
スコープランキングはリアルタイムで集計結果が反映されます。
ランキングデータには世代という設定があり、世代を変更することで登録されたスコアをリセットすることができます。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
categoryModelId | string | ✓ | ~ 1024文字 | カテゴリGRN | ||
name | string | ✓ | ~ 128文字 | カテゴリ名 | ||
metadata | string | ~ 1024文字 | メタデータ | |||
minimumValue | long | ~ 9223372036854775805 | スコアの最小値 | |||
maximumValue | long | ~ 9223372036854775805 | スコアの最大値 | |||
sum | bool | ✓ | false | 登録を受け付けたスコアを合算し、合計値を競う | ||
orderDirection | enum { “asc”, “desc” } | ✓ | ~ 128文字 | スコアのソート方向 | ||
scope | enum { “global”, “scoped” } | ✓ | ~ 128文字 | ランキングの種類 | ||
globalRankingSetting | GlobalRankingSetting | {scope} == “global” | ✓ | グローバルランキング設定 | ||
entryPeriodEventId | string | ~ 1024文字 | スコアの登録可能期間 GS2-Schedule イベントGRN | |||
accessPeriodEventId | string | ~ 1024文字 | ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN |
orderDirection に指定する列挙型の定義
定義 | 説明 |
---|---|
asc | 昇順 |
desc | 降順 |
scope に指定する列挙型の定義
定義 | 説明 |
---|---|
global | グローバル |
scoped | スコープ |
Ranking
ランキング
ランキングには「参加者全員が同じボード上で競い合う」 グローバルランキング と、「購読したプレイヤーのスコアと競い合う」 スコープランキング があります。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
rank | long | ✓ | 1 ~ 9223372036854775805 | 順位 | ||
index | long | ✓ | ~ 9223372036854775805 | 1位からのインデックス | ||
categoryName | string | ✓ | ~ 128文字 | カテゴリ名 | ||
userId | string | ✓ | ~ 128文字 | ユーザーID | ||
score | long | ✓ | ~ 9223372036854775805 | スコア | ||
metadata | string | ~ 512文字 | メタデータ | |||
createdAt | long | ✓ | 作成日時 (UNIX時間 単位:ミリ秒) |
Scope
集計スコープ
グローバルランキングモードで使用可能。
通常グローバルランキングは登録されたスコア全てを対象にランキングの集計が行われます。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
name | string | ✓ | ~ 128文字 | スコープ名 | ||
targetDays | long | ✓ | 1 ~ 365 | 集計対象日数 |
GlobalRankingSetting
グローバルランキング設定
グローバルは全プレイヤーが同じ結果を参照するものです。
ランキングの集計間隔を15分~24時間で設定できます。
ランキングデータには世代という設定があり、世代を変更することで登録されたスコアをリセットすることができます。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
uniqueByUserId | bool | ✓ | true | ユーザID毎にスコアを1つしか登録されないようにする | ||
calculateIntervalMinutes | int | ✓ | 15 ~ 1440 | スコアの集計間隔(分) | ||
calculateFixedTiming | FixedTiming | スコアの固定集計開始時刻 | ||||
additionalScopes | List<Scope> | ~ 10 items | スコープリスト | |||
ignoreUserIds | List<string> | ~ 10000 items | ランキングに反映しないユーザーIDリスト | |||
generation | string | ~ 256文字 | ランキングの世代 |
FixedTiming
集計時刻固定設定
グローバルランキングの集計タイミングを固定するための設定です。
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
hour | int | ~ 23 | スコアの固定集計開始時刻(時) | |||
minute | int | ~ 59 | スコアの固定集計開始時刻(分) |
CalculatedAt
最終集計日時
型 | 有効化条件 | 必須 | デフォルト | 値の制限 | 説明 | |
---|---|---|---|---|---|---|
categoryName | string | ✓ | ~ 128文字 | カテゴリ名 | ||
calculatedAt | long | ✓ | 集計日時 (UNIX時間 単位:ミリ秒) |