1
/
5

ゲームとデータのお話

こんにちは!
株式会社OGIX サーバーエンジニア、時々クライアントエンジニアのH.O.です。

みなさん、ゲームはお好きですかね?
私は子供のころ、こんなキャラクターがいて、こんなアイテムがあって
パラメーターはこんな感じで…
といった具合に妄想をデータとして紙だったりエクセルに書いてるのが好きでした。
そんなデータですが、実際の現場ではどんな感じに使われているか気になりません?
今回はゲームの設定に関するデータをどんな感じで管理しているか
どんな形式で持っているかをちょこっと紹介できればと思っています。

まずはじめに

ゲームで扱うデータはいろいろありますが
ゲームの設定に関するデータのことをマスターデータマスタと呼んでいます。
例えば

キャラクターのステータス
最大HP
攻撃力
防御力 etc...

アイテムの設定
アイテム名
種別
効果量 etc...
フレーバーテキスト etc...

といったものがマスターデータとして扱われます。
これらのデータは、コードとは分離して管理されます。

マスタの作成方法

マスタですが基本はプランナーさん、厳密にはレベルデザイナーさんが作成するものになります。

そのためエンジニアの知識がなくても入力が可能な方法として
Excelやスプレッドシートを利用して作成することが多いです。

作成の流れとしては、まず仕様に沿って雛形を作成し
それに沿ってデータを入力していく形になります。

一例として

こんなイメージがあった場合、まずゲームの設定となりうるものを洗い出していきます。
今回の場合は

名前
最大HP
攻撃力
防御力

を設定できるものとします。
(あとキャラクター画像もマスタの範囲内ですが今回はスルーで…!)

その場合は

こんな感じにエクセルで記載しています。

マスタのデータフォーマット

作ったExcelデータはバイナリデータのため、ゲーム上ではそのまま扱うことはなく
一度プログラムで読みやすい形にするため、テキストファイルに変換してあげる必要があります。
主に用いられるデータ形式を、先ほどのExcelデータを変換したイメージとともに3種類ほど紹介します。

CSV/TSV

カンマ( , )もしくはタブ文字(\t)でデータ区切りをする形式です。
CSVはエクセルの保存形式として、スプレッドシートからテキストエディタに張り付けた場合
TSVとして貼り付けが行われるので、非エンジニアでもエンジニアの助けなしに
簡単に出力できる形式です。
項目の増減の時にずれることで、データが崩壊するという点に注意が必要なことと
量が増えると見づらくなる傾向があるので、長期運用を想定した場合はお勧めしません。

JSON

項目と値がセットになっているのが特徴です。
やろうと思えば連想配列などを利用して入れ子型にすることもできます。
(がExcelで表現することが難しいのでやることはないかと)
一つ一つの要素が厳密に書かれているため、項目の増減に対して耐性があります。
UnityではJSONUtilityが用意されているため、Unityとの相性がよく利便性が高いです。
見やすさにおいては人力できれいに整えてあげる必要があります。

YAML

こちらも項目と値がセットになっているのが特徴です。
書式から人が見やすくなるように保証されています。
インデントによって階層の表現がされて少し不思議な感じがありますが
個人的には扱いやすいものだと思っています。

作ったマスタを扱う

さて、形式に変換したものを実際に使うときは
ファイル読み込みを行い、管理用のクラスに記録させます。

一例としてJSON形式のものをUnityで利用を想定した場合
まず各要素の部分の記録するクラスを用意し

マスタのリストを保管するクラスを用意

そのうえでデータを読み込む形にするとよいです。

実際に扱うときはこのように一度値のコピーを行いゲームを使っていく形になります。

まとめ

・ゲームにはマスターデータというルールや設定を司るデータがあるよ
・マスターデータはExcelやスプレッドシートで作成/管理されるよ
・プログラムではCSV/TSV,JSON,YAMLなどに変換して読み込むよ

一緒に働く仲間を募集しています!

株式会社OGIXでは一緒に働いてくれる仲間を募集しています!
エンタメ制作集団としてゲームのみならず、未来を見据えたエンタメコンテンツの開発を行っています。

皆様のご応募、心よりお待ちしております!

ゲームエンジニア
オープンポジション|ゲーム開発に携わりたい方!まずはお話してみませんか?
私たちは「ゲーミフィケーション」という”社会的な活動をゲーム化する”ことにより学習や反復のハードルを下げ、楽しく目的を達成するための支援をしています。 採用の企業説明やCSRの取り組みへの発信、営業資料、販促拡大など、複雑化しているものをシンプルにしたり、楽しく伝えるための仕組みを再構築して「体験してもらうコンテンツ」として生まれ変わらせます。 ”すべての人が仕事の楽しさやワクワクを原動力に動くために。” 企業様の挑戦や、かけてきた時間の成果などを社会に一緒に発信させていただくために私たちは活動しています。 【事業内容】 ■ohaco.事業 企業様の得意とするビジネスをエンターテインメント化するBtoBサービスです。 ▼ohaco.について詳しく知りたい方はこちら▼ https://ogix.co.jp/ohaco ■スマートフォンアプリ・ゲームの開発・運用事業 企画から開発、運用まで一貫して携わることができます。 ■その他 Webアプリケーション開発・運用事業、システム開発事業、コンシューマーゲーム開発支援等も行っております。
株式会社OGIX
株式会社OGIX's job postings
347 Likes
347 Likes

Weekly ranking

Show other rankings
Invitation from 株式会社OGIX
If this story triggered your interest, have a chat with the team?