Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

DeNAの最新のマスタデータ管理システム Oyakata の全容

727 views

Published on

マスタデータNight #1

https://masterdata.connpass.com/event/155533/

Published in: Software
  • Be the first to comment

DeNAの最新のマスタデータ管理システム Oyakata の全容

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

×