マスターデータの管理
用語の定義
用語 | 意味 |
---|---|
モデルマスター | マスターデータエディタが一時的に登録する ゲームプレイヤーごとに変わらないデータ |
モデル | ゲーム内から使用する ゲームプレイヤーごとに変わらないデータ |
プロパティ | モデルをもとに作成したゲームプレイヤーごとに異なるデータ |
ゲームを構成する要素には、所持アイテムのパラメータやクエストの構成データなど、 ゲームプレイヤーごとには変わらないデータがあります。 このようなデータをGS2では モデル と呼んでいます。 そして、モデルをもとにゲームプレイヤーの所持するデータになったものを プロパティ と呼んでいます。
一般的なマスターデータは GS2 においては モデル にあたり、GS2 においては モデルマスター という概念が存在します。 モデル モデルマスター の違いは、データの内容は同一ですが、実際にゲームからアクセスされる状態にあるかどうか、という違いがあります。
GS2 の管理画面上で編集できるデータは モデルマスター で、それを実際にゲーム内から使用できる状態に変換すると モデル に変わります。 この変換の工程が必要な理由は、 モデルマスター に対する変更を一括してゲーム内に反映するためです。 この工程がない場合、管理画面でデータを更新していく過程で、途中のデータがゲーム内に反映されてしまうことになります。
マスターデータの作成
この変換工程は、すべての モデルマスター を一旦 JSON 形式のファイルにエクスポートし、そのJSONファイルをアップロードすることで一括して モデル として反映する仕組みになっています。 GS2 の管理画面で モデルマスター を操作して JSON 形式のファイルにエクスポートして利用しても構いませんが、Excel や独自の管理ツールを作成し GS2 上に モデルマスター を一切登録せずに モデル にデータを反映することもできます。
また、GS2-Deploy のテンプレート内でマスターデータを管理することもできます。この場合 git などの バージョン管理ツール で取り扱いやすくなりますので、こちらも検討してみてください。
運営上都合の良い方法でマスターデータを管理してください。
GS2TemplateFormatVersion: "2019-05-01"
Description: GS2 master data template Version 2010-06-26
Globals:
Alias:
NamespaceName: inventory
Resources:
Namespace:
Type: GS2::Inventory::Namespace
Properties:
Name: ${NamespaceName}
NamespaceSettings:
Type: GS2::Inventory::CurrentItemModelMaster
Properties:
NamespaceName: ${NamespaceName}
Settings: # ここから下のデータが本来はJSONで指定する部分ですが、yaml として記述して反映できます
version: 2019-02-05
inventoryModels:
- name: item
metadata: ITEM
initialCapacity: 40
maxCapacity: 60
itemModels:
- name: item-0001
metadata: ITEM_0001
maxCount: 99
sortValue: 1
- name: item-0002
metadata: ITEM_0002
maxCount: 99
sortValue: 2
- name: item-0003
metadata: ITEM_0003
maxCount: 99
sortValue: 3
- name: character
metadata: CHARACTER
initialCapacity: 30
maxCapacity: 50
itemModels:
- name: character-0001
metadata: CHARACTER_0001
maxCount: 1
sortValue: 1
DependsOn:
- Namespace