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"
    }
  ]
}
有効化条件必須デフォルト値の制限説明
version2019-09-17マスターデータのフォーマットバージョン
categoriesList<CategoryModel>~ 1000 itemsカテゴリーモデル

CategoryModel

カテゴリーモデル

カテゴリ毎に異なるランキングを作成できます。

カテゴリには登録できるスコアの最小値・最大値を設定でき、その範囲外のスコアは破棄されます。
ランキングを集計する際にスコアを小さいものを上位(昇順)にするか、大きいものを上位(降順)にするかを設定できます。

ランキングの種類として グローバルスコープ を選択できます。
グローバルは全プレイヤーが同じ結果を参照するもので、スコープはフレンド内ランキングや、ギルド内ランキングのようなゲームプレイヤー毎に結果の異なるランキングです。

グローバルランキングはカテゴリごとにランキングの集計間隔を15分~24時間で設定できます。
スコープランキングはリアルタイムで集計結果が反映されます。

ランキングデータには世代という設定があり、世代を変更することで登録されたスコアをリセットすることができます。

有効化条件必須デフォルト値の制限説明
categoryModelIdstring~ 1024文字カテゴリGRN
namestring~ 128文字カテゴリ名
metadatastring~ 1024文字メタデータ
minimumValuelong~ 9223372036854775805スコアの最小値
maximumValuelong~ 9223372036854775805スコアの最大値
sumboolfalse登録を受け付けたスコアを合算し、合計値を競う
orderDirectionenum {
    “asc”,
    “desc”
}
~ 128文字スコアのソート方向
scopeenum {
    “global”,
    “scoped”
}
~ 128文字ランキングの種類
globalRankingSettingGlobalRankingSetting{scope} == “global”グローバルランキング設定
entryPeriodEventIdstring~ 1024文字スコアの登録可能期間 GS2-Schedule イベントGRN
accessPeriodEventIdstring~ 1024文字ランキングデータへのアクセス可能期間 GS2-Schedule イベントGRN

orderDirection に指定する列挙型の定義

定義説明
asc昇順
desc降順

scope に指定する列挙型の定義

定義説明
globalグローバル
scopedスコープ

Ranking

ランキング

ランキングには「参加者全員が同じボード上で競い合う」 グローバルランキング と、「購読したプレイヤーのスコアと競い合う」 スコープランキング があります。

有効化条件必須デフォルト値の制限説明
ranklong1 ~ 9223372036854775805順位
indexlong~ 92233720368547758051位からのインデックス
categoryNamestring~ 128文字カテゴリ名
userIdstring~ 128文字ユーザーID
scorelong~ 9223372036854775805スコア
metadatastring~ 512文字メタデータ
createdAtlong作成日時 (UNIX時間 単位:ミリ秒)

Scope

集計スコープ

グローバルランキングモードで使用可能。
通常グローバルランキングは登録されたスコア全てを対象にランキングの集計が行われます。

有効化条件必須デフォルト値の制限説明
namestring~ 128文字スコープ名
targetDayslong1 ~ 365集計対象日数

GlobalRankingSetting

グローバルランキング設定

グローバルは全プレイヤーが同じ結果を参照するものです。
ランキングの集計間隔を15分~24時間で設定できます。

ランキングデータには世代という設定があり、世代を変更することで登録されたスコアをリセットすることができます。

有効化条件必須デフォルト値の制限説明
uniqueByUserIdbooltrueユーザID毎にスコアを1つしか登録されないようにする
calculateIntervalMinutesint15 ~ 1440スコアの集計間隔(分)
calculateFixedTimingFixedTimingスコアの固定集計開始時刻
additionalScopesList<Scope>~ 10 itemsスコープリスト
ignoreUserIdsList<string>~ 10000 itemsランキングに反映しないユーザーIDリスト
generationstring~ 256文字ランキングの世代

FixedTiming

集計時刻固定設定

グローバルランキングの集計タイミングを固定するための設定です。

有効化条件必須デフォルト値の制限説明
hourint~ 23スコアの固定集計開始時刻(時)
minuteint~ 59スコアの固定集計開始時刻(分)

CalculatedAt

最終集計日時

有効化条件必須デフォルト値の制限説明
categoryNamestring~ 128文字カテゴリ名
calculatedAtlong集計日時 (UNIX時間 単位:ミリ秒)