ディープロックギャラクティックを連れてくるサバイバーからAndroidへ60 FPSで

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
ディープロックギャラクティックSurvivorは、ディープロックギャラクティックの宇宙を舞台にした、トップダウン型のシングルプレイヤーサバイバーライクな自動シューターです。元々はFunday GamesによってPCおよびXbox向けに開発され、Ghost Ship Publishingによって公開されています。
Unity Studio Productionsは、Funday Gamesによって招聘され、AndroidポートとGoogle Play向けPCビルドを主導し、別のiOS共同開発チームおよびGoogle自身のプラットフォームプログラムと連携して、3つのビルドすべてを単一の同時発売日に導きました。Unityチームは、重要なパフォーマンス最適化とGoogleプラットフォームサービスの統合に注力しました。
52%
使用メモリ総量の削減(2.35 GB → 1.12 GB)
60%
ピークフレームにおけるナビゲーションCPUコストの削減
70%
最大物理演算更新実行時間の削減(ピークコストを元の30%に削減)
私たちがしたこと
敵の群れのための経路検索の再構築
メインスレッドのスタールを引き起こしていたシングルスレッドのナビメッシュ経路検索は、代わりにワーカー スレッドで実行されるカスタムの Burst コンパイルされたフローフィールド経路検索ソリューションに置き換えられました。これがナビゲーションコスト削減の最大のドライバーです。
カスタムの物理演算および衝突システム
非効率な物理演算衝突判定を修正するために、カスタムの2DD空間分割および衝突判定システムを設計し、物理演算クエリの順序を変更して、より安価なチェック(範囲のような)がより高価なチェック(視界のような)の前に実行されるようにしました。これがチームが必要としていた物理演算のパフォーマンス向上をもたらしたものです。
モバイルグラフィックスとコンテンツの最適化
ランタイムメモリとアプリをチームが設定したベースラインに引き下げるため、ゲームプレイに重要なVFX GraphエフェクトをShurikenに変換しました(以前指摘されたOpenGLESの非互換性とVulkanの不安定性を修正)。環境メッシュは約50%削減され、デカールレンダリングレイヤーが削除され、持続的なパフォーマンスのためにVkQualityとADPFが統合され、レベルオーディオと固定キャラクターはPlay Asset Delivery Fast-Followパッケージにオフロードされました。これらが記憶容量とインストールサイズを削減する要因です。

課題
数百体の画面上の敵を出すアクション性の高い自動シューターをモバイルデバイスに移植することは、パフォーマンス、メモリ、熱に関する大きな課題を提示しました。すべての敵はプレイヤーを見つけなければならず、シングルスレッドのナビメッシュ経路検索がゲームの残りの部分が依存しているメインスレッドを停止させていた。敵と他のゲームオブジェクト間の衝突判定は、そのスケールでは同じくらいコストがかかりました。視覚効果 (VFX)は別の問題でした。それらはVFX Graphで構築されており、古いOpenGLESグラフィックスAPIを使用する携帯電話では動作せず、Vulkanでは不安定でした。
これらすべてを修正しつつ、ゲームが使用するメモリとストレージのスペースを削減する必要があった。ランタイムメモリは2.35 GBで、快適なモバイルバジェットを超えていました。初期ダウンロードは迅速にインストールできるように十分に小さくする必要があり、ターゲットはハイエンドなデバイスだけでなく、幅広いデバイスで安定した60 FPSを維持することでした。
私たちが使ったもの
上記のボトルネックに対処するため、チームは焦点を絞った一連のエンジンツールと技術に頼りました。
エンジンとレンダリング:Unity 2022.3とUniversal Render Pipeline (URP)、そして古いモバイルハードウェアでスムーズに動作する必要のある視覚効果 (VFX) 用のShurikenパーティクルシステム
パフォーマンスとスレッディング:BurstコンパイラーとUnityのJobs Systemは、高価な計算をメインスレッドオフオフロードして、画面上に何百もの敵がいてもゲームが応答性を保つようにするために使用され、Unity独自のプロファイリングツール(プロファイラー、Memory Profiler、Profile Analyzer)は、時間とメモリが正確にどこに使われているかを特定し測定するために使用されました。
コンテンツとビルドサイズ:AddressablesパッケージとPlay Asset Delivery (PAD)は、ゲームをインストール後に一度に大きなダウンロードをするのではなく、より小さな断片に分けてコンテンツをダウンロードできるようにするものです。
プラットフォームの統合VulkanグラフィックスAPIと、デバイスの熱と持続的なパフォーマンスを管理するためのAndroidの適応 (する) 動作フレームワーク(ADPF)、およびクラウドセーブと実績のためのGoogle Play Games Services(PGS v2)を組み合わせたもの
このツールキットと、チームが同時に複数のプラットフォームでのローンチを調整した経験が、次に説明する修正を可能にしたものです。
“私たちの目標はディープロックギャラクティックをすることでしたサバイバーは携帯電話上のPCと同一の再生をします。Unityのヘルプのおかげで、私たちはビジュアルやデバイスリーチを妥協することはありませんでした。代わりに、そのゲームは盤石なままで何百万人もの新規プレイヤーを獲得しています。これほど範囲デバイスやプラットフォームでゲームがこれほど良く動作していることは、Unityチームが持つスキルを証明しています。”

Emil Kjæhr - Funday Games
Head of Product & Partners
結果
Androidポートは2025年11月12日に、iOSおよびPC向けGoogle Playゲームのサポートと同時にリリースされました。ランタイムメモリは52%削減され(2.35 GBから1.12 GBへ)、Play Asset Deliveryを介して初期アプリストールサイズは280 MBに減少しました。ナビゲーションゲーションコストはピークフレームで60%削減され、最大物理演算実行時間は元のコストの30%に削減され、ゲームはターゲットの60 FPSパフォーマンスを達成しました。AndroidのリリースはGoogle Playで4.8-star averageを獲得しています。このエンゲージメントを超えて、Deep Rock Galactic:Survivor は、適応 (する) 動作、サーフェス キャッシュ GI、および Unity 6.6 への Input System の移行を含む、今後の Unity の機能をリリース前に検証するために使用される、Unity の内部 Code 共有およびプロダクション検証 (PV) プログラムにおけるリファレンスプロジェクトとなっています。特筆すべきは、Unity自身の物理演算チームが、このプロジェクトのために構築されたカスタムKD樹木最適化を研究し、Unityのネイティブ物理演算エンジンへの改善にヘルプたこと、これはFundayのために行われた作業であり、現在Unity自体にフィードバックされています。
