NAV
GS2-Deploy

GS2-Exchange

GS2-Deploy のテンプレートで使用できるリソース定義のリファレンス

エンティティ

Namespace

Namespace

Type: GS2::Exchange::Namespace
Properties:
  Name: namespace1
  Description: null
  EnableAwaitExchange: null
  EnableDirectExchange: null
  QueueNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:queue:queue-0001
  KeyId: grn:gs2:ap-northeast-1:YourOwnerId:key:namespace1:key:key-0001
  LogSetting: 
    LoggingNamespaceId: grn:gs2:ap-northeast-1:YourOwnerId:log:namespace1

ネームスペースは一つのプロジェクトで同じサービスを異なる用途で複数利用できるようにするための仕組みです。 GS2 のサービスは基本的にネームスペースというレイヤーがあり、ネームスペースが異なれば同じサービスでもまったく別のデータ空間として取り扱われます。

そのため、各サービスの利用を開始するにあたってネームスペースを作成する必要があります。

必須 デフォルト 値の制限 説明
name string ~ 32文字 ネームスペース名
description string ~ 1024文字 説明文
enableAwaitExchange bool false 交換結果の受け取りに待ち時間の発生する交換機能を利用するか
enableDirectExchange bool true 直接交換APIの呼び出しを許可する。許可しない場合はスタンプシート経由でしか交換できない
queueNamespaceId string ~ 1024文字 スタンプシートの実行に使用する GS2-JobQueue のネームスペース
keyId string ~ 1024文字 スタンプシートの発行に使用する GS2-Key のネームスペース
logSetting LogSetting ログの出力設定

RateModelMaster

RateModelMaster

Type: GS2::Exchange::RateModelMaster
Properties:
  NamespaceName: namespace1
  Name: rate-0001
  Description: null
  Metadata: N2R
  TimingType: null
  LockTime: null
  EnableSkip: null
  SkipConsumeActions: null
  AcquireActions: 
    - 
      Action: Gs2Inventory:AcquireItemSetByUserId
      Request: {"namespaceName": "namespace-0001", "inventoryName": "item", "itemName": "item-0002", "userId": "#{userId}", "acquireCount": 1}
  ConsumeActions: 
    - 
      Action: Gs2Inventory:ConsumeItemSetByUserId
      Request: {"namespaceName": "namespace-0001", "inventoryName": "item", "itemName": "item-0001", "userId": "#{userId}", "consumeCount": 10}

交換レートはリソースとリソースを交換する際に使用するレートを定義するエンティティです。

直ちに交換できるレートだけでなく、現実時間で一定時間経過したのちに交換できるレートを設定できます。 現実時間での時間経過が必要な交換レートには、更に即時交換を実行するために必要なリソースを定義することが可能です。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
name string ~ 128文字 交換レート名
description string ~ 1024文字 説明文
metadata string ~ 2048文字 メタデータ
timingType string "immediate" ~ 128文字 交換の種類
lockTime int {timingType} == "await" ~ 525600 交換実行から実際に報酬を受け取れるようになるまでの待ち時間(分)
enableSkip bool {timingType} == "await" false スキップをすることができるか
skipConsumeActions ConsumeAction[] {enableSkip} [] 時短消費アクションリスト
acquireActions AcquireAction[] [] 入手アクションリスト
consumeActions ConsumeAction[] [] 消費アクションリスト

CurrentRateMaster

CurrentRateMaster

Type: GS2::Exchange::CurrentRateMaster
Properties:
  NamespaceName: namespace1
  Settings: {\n  "version": "2019-08-19",\n  "rateModels": [\n    {\n      "name": "material_n_to_r",\n      "metadata": "N2R",\n      "timingType": "await",\n      "enableSkip": false,\n      "lockTime": 50,\n      "consumeActions": [\n        {\n          "action": "Gs2Inventory:ConsumeItemSetByUserId",\n          "request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0001\\", \\"userId\\": \\"#{userId}\\", \\"consumeCount\\": 10}"\n        }\n      ],\n      "acquireActions": [\n        {\n          "action": "Gs2Inventory:AcquireItemSetByUserId",\n          "request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0002\\", \\"userId\\": \\"#{userId}\\", \\"acquireCount\\": 1}"\n        }\n      ]\n    },\n    {\n      "name": "material_r_to_n",\n      "metadata": "N2R",\n      "timingType": "await",\n      "enableSkip": false,\n      "lockTime": 50,\n      "consumeActions": [\n        {\n          "action": "Gs2Inventory:ConsumeItemSetByUserId",\n          "request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0002\\", \\"userId\\": \\"#{userId}\\", \\"consumeCount\\": 1}"\n        }\n      ],\n      "acquireActions": [\n        {\n          "action": "Gs2Inventory:AcquireItemSetByUserId",\n          "request": "{\\"namespaceName\\": \\"category-0001\\", \\"inventoryName\\": \\"item\\", \\"itemName\\": \\"item-0001\\", \\"userId\\": \\"#{userId}\\", \\"acquireCount\\": 10}"\n        }\n      ]\n    }\n  ]\n}

GS2ではマスターデータの管理にJSON形式のファイルを使用します。 ファイルをアップロードすることで、実際にサーバーに設定を反映することができます。

JSONファイルを作成する方法として、マネージメントコンソール上でのマスターデータエディタを提供していますが よりゲームの運営に相応しいツールを作成し、適切なフォーマットのJSONファイルを書き出すことでもサービスを利用可能です。

JSONファイルの形式についてはドキュメントを参照ください。

必須 デフォルト 値の制限 説明
namespaceName string ~ 32文字 ネームスペース名
settings string ~ 5242880文字 マスターデータ