Upgrade to Pro — share decks privately, control downloads, hide ads and more …

モバイルゲームを支えるリソース管理基盤のつくりかた【DeNA TechCon 2021】/te...

DeNA_Tech
March 03, 2021

モバイルゲームを支えるリソース管理基盤のつくりかた【DeNA TechCon 2021】/techcon2021-10

大規模なモバイルゲーム開発におけるリソース管理では、高頻度の動的配信、高速なダウンロード、高速な暗号化と、高速なビルド、リソース解析によるネタバレ防止、柔軟なアドレッシングなど、安定したゲーム運用を高効率で支えるために様々な要求に応える必要があります。
本セッションでは、大規模なモバイルゲーム開発におけるリソース管理へ求められる性質と、DeNAがそれらに対してどのようなアプローチでどのようなモジュール構成で解決を図ったのかを解説します。

DeNA_Tech

March 03, 2021
Tweet

More Decks by DeNA_Tech

Other Decks in Technology

Transcript

  1. • 大竹 悠人 (Haruto Otake) • 経歴 ◦ 2009~2013 ドワンゴ

    ◦ 2013~ DeNA ▪ ブラウザやUnity製ゲームの新規開発/運用 ▪ 現在はUnity用ライブラリやSDK開発に従事
  2. • Android ◦ 2021年後半からAndroid App Bundle(AAB)の適 用が義務化(OBBが利用不可に) ◦ OBBでは2GBまで配信可だが、AABでは150MB 以上は配信不可

    ▪ PlayAssetDeliveryの導入で1GB迄配信可 ◦ apk(zip)として格納されるため、ファイルアクセス の手段に制限が生まれる
  3. • Google Play Plugins for Unityを利用 • Play Asset Deliveryの任意のAsset

    Pack内に保 存したAladinのTreeを読み込む ◦ ファイルパスとOffsetとSizeを得られるため、範囲 を制限しただけのFileStreamとして少ないオー バーヘッドで読み込める
  4. • Addressable Assets Systemの一部のみを利用 ◦ AddressableのバックエンドであるResource Manager, Scriptable Build Pipelineを利用

    ◦ ロード状況を見れるEvent Viewerも利用 • Addressable本体のAssetBundle管理機能は利用 しない
  5. • Scriptable Build Pipelineでカスタムしたパイプ ライン • Gitから以前のビルド以降で変化したアセットの リストを取得 ◦ interface経由で他のVCSにも対応可能な設計

    • アセット間依存を元に、ビルドする必要のある AssetBundleを特定した上で実ビルド • カタログを差分更新
  6. • AssetBundle構成はinterface経由で実装を注入 ◦ バンドル名, ファイルパス, アドレスの組のリストを 返せることと、幾つかの逆引きも要求 ◦ このinterfaceをPackRuleと呼ぶ •

    フォルダ単位のシンプルな物は標準実装 ◦ フレームワークやゲーム側でのポリシーにあわせ て個別に実装する
  7. Aladin Abdool Sharin.Resources AssetFetcher Sharin’の その他の様々な モジュール Abdool + Aladin

    インテグレーション vfs ゲームタイトル devwire DebugFileSyste mから利用 TechCon2020で の講演を参照
  8. 65