More Related Content Similar to DeNAの最新のマスタデータ管理システム Oyakata の全容
Similar to DeNAの最新のマスタデータ管理システム Oyakata の全容 (20) More from sairoutine (11) DeNAの最新のマスタデータ管理システム Oyakata の全容1. Copyright © DeNA Co.,Ltd. All Rights Reserved.
DeNAのマスタデータ管理システム
Oyakata の全容
マスターデータ Night #1
ゲーム事業部
共通基盤部
人西 聖樹 | Masaki Hitonishi
2. Copyright © DeNA Co.,Ltd. All Rights Reserved.
自己紹介
人西 聖樹(Hitonishi Masaki)
ゲーム事業部 共通基盤部
⁃ ゲームタイトル横断で使われるライブラリやツールを開発
する部署
経歴
⁃ Mobage の大規模ゲームタイトルの開発・運用
⁃ 共通基盤側に部署異動して共通システムの新規開発
好きなもの
⁃ 東方Project
⁃ 個人ゲーム制作
3. Copyright © DeNA Co.,Ltd. All Rights Reserved.
今日話すことのスコープの話
ゲーム開発者
(プランナー)
ここをどうしようとしているかの話
ゲーム
入力からゲームに反映するまでの流れ
4. Copyright © DeNA Co.,Ltd. All Rights Reserved.
ゲームのパラメータを設定するもの
ゲームプランナーが編集する
例:ボスの攻撃力とか、アイテムのドロップ確率
とか、ガシャの排出率とか
レベルデザイン(3Dアクションのマップ)的なもの
は本発表ではマスターデータと呼ばないことにし
ます。
マスタデータとは
6. Copyright © DeNA Co.,Ltd. All Rights Reserved.
弊社の某タイトルの例
ゲームは Unity 製
マスタデータの管理は Google Spread Sheet
Jenkins 上で SpreadSheet -> ゲームデータ
(json)に変換
バージョン管理は git 及び Github
7. Copyright © DeNA Co.,Ltd. All Rights Reserved.
■マスターデータについて -制作フロー
共通のSpreadSheetにデー
タを作る
Jenkinsのジョブを叩く
企画
gitリポジトリの更新
Jenkins
SpreadSheetからDL
リリースされてる分と
マージ
ランタイム向けにデータ
加工
マスタデータをスクリプ
トでチェック
Asset 化
コミットしてPullRequest
エンジニア
マージ
リポジトリ
エラーがあればJenkinsの
Viewで確認し修正
差分チェック
9. Copyright © DeNA Co.,Ltd. All Rights Reserved.
12月1週目にリリースするイベント
12月2週目にリリースするイベント
ボスパラメータを編集中
別のパラメータを編集中
ボスパラメータが編
集中なのでゲームが
動かない
10. Copyright © DeNA Co.,Ltd. All Rights Reserved.
並行での開発に対応しきれてない
⁃ 複数のイベントを並行で開発する必要があると
き、イベント間で、編集の影響範囲が切り分け
られていない
⁃ ある前段のイベント開発でシートを編集中だと、
後続のイベントも編集の影響を受けてしまう
⁃ 前段のイベントがエラーになるような値を入力
してると、後続も影響を受けてエラーになる
11. Copyright © DeNA Co.,Ltd. All Rights Reserved.
マスタをゲームデータに
変換するために Jenkins
ジョブ実行
ゲームに反映→
編集
実機確認するために待ちが発生する
編集
編集
Jenkins で順番待ちが発生
12. Copyright © DeNA Co.,Ltd. All Rights Reserved.
実機確認までに時間がかかる
⁃ マスタデータのゲームデータへの変換が
jenkins 頼み
⁃ jenkins のビルドを長時間待たないと、入
力したマスタをゲーム実機で確認できな
い
13. Copyright © DeNA Co.,Ltd. All Rights Reserved.
Github 上でのマスタデータ変更のレビュー
差分の目視確認が辛い
14. Copyright © DeNA Co.,Ltd. All Rights Reserved.
差分が見にくい
⁃ マスタデータの変更のレビュー時、差分
の確認が視認しづらい
⁃ ゲームデータ変換後のデータを github 上
での差分の確認することになる
⁃ json とか csv のテキスト差分は人間の目
に非常に優しくない
⁃ 誤った編集の見落としなどにつながる
16. Copyright © DeNA Co.,Ltd. All Rights Reserved.
これらの課題解決のために
Oyakata というマスタデータの編
集・管理システムを開発してます
21. Copyright © DeNA Co.,Ltd. All Rights Reserved.
Web 上での編集/Excelファイルでの編集の両方に対応
またゲームで利用するために JSON や CSV に変換可能
変換はブラウザ上で wasm で実行しており、
サーバー側の処理負荷にならない。
28. Copyright © DeNA Co.,Ltd. All Rights Reserved.
これまでの仕組みと何が違うの?
ブランチ管理をサポートしている
⁃ 他の人の作業の影響を受けなくなる
⁃ エンジニアが git で当たり前のように受けている恩恵を
プランナーにも
ゲームデータへの変換をローカルPC上でできる
⁃ Jenkins 待たずに実機確認可能
マスタデータ形式に特化した差分表示ができる
⁃ 表形式には表形式の見やすい表示の仕方がある
⁃ json や csv をテキスト差分確認するのはやめよう
29. Copyright © DeNA Co.,Ltd. All Rights Reserved.
まとめ
弊社はこれまで Google Spread Sheet や Jenkins
でマスタデータ管理の仕組みを構築してきた
そしたら以下のような課題が出てきた
⁃ SpreadSheet では並行開発の影響範囲切り分
けしづらい
⁃ Jenkins に依存しきってしまって管理や順番待
ちが発生した
⁃ csv や json の目視確認はただ辛い
すべてを解決するマスタデータ管理の共通基盤シ
ステムを作っている
⁃ 新規タイトル複数で利用中