米Unity Technologiesは、同社が開発・提供しているゲーム開発プラットフォームであるUnity最新版「Unity 2022 LTS」において、プロジェクトの最適化に役立つヒント、戦術、回避策を含むガイドブック「Optimize your game performance for mobile(モバイルにおけるゲームのパフォーマンス最適化)」と「Optimize your game performance for consoles and PC(コンソールとPCにおけるゲームのパフォーマンス最適化)」を提供している。
これらのガイドブックは、同社におけるもっとも上級のソフトウェアエンジニアで構成された、Accelerate Solutionsチームの有する知識に基づいて作成されており、ゲーム開発プロジェクトにおいて速度、安定性、効率を向上させるためのパフォーマンス最適化に役立つ。
それぞれのガイドには、プロファイリングツール、プログラミングとコードアーキテクチャ、アセットの操作、レンダパイプライン、UIなどに関する実用的なヒントが用意されている。また、その他のドキュメントやリソースへのリンクも含まれる。
ボトルネックの特定では、パフォーマンス最適化の基本的な方法論を理解し、Unity ProfilerとProfile Analyzerを使用する方法や、モバイルデバイスの温度を考慮する方法、特定のフレームバジェット内で作業する方法、プロジェクトがCPUバウンドまたはGPUバウンドかどうかを確認する方法が示されている。
メモリ管理では、メモリプロファイラの使用方法、ガベージコレクションの作業を軽減する方法、インクリメンタルガベージコレクタの使用方法について解説する。
プログラミングとコードアーキテクチャでは、高価なコードを最小限に抑える方法、文字列パラメータの代わりにハッシュ値を使用する理由、適切なデータ構造の選択、パフォーマンスを向上させるためのScriptableObjectsの使用方法を紹介している。
プロジェクト構成では、不要なプレイヤーまたは画質設定、および物理演算を無効にする方法、大規模な階層を回避し、Vsyncを使用する方法について解説する。
アセットでは、テクスチャを正しくインポートして圧縮する方法、ポリゴン数を確認する方法、AssetPostprocessorやUnity DataToolsを使用してインポート設定を自動化する方法、Addressable Asset Systemを活用する方法を紹介している。
グラフィックスとGPUの最適化(モバイル)では、ドローコールのバッチ処理のタイミング、ダイナミックライトが多すぎるのを避けたり、ライトレイヤを効果的に使用する方法、オクルージョンカリングを使用して非表示オブジェクトを削除する方法、モバイルネイティブ解像度を回避する方法、オーバードローとアルファブレンディングを最小限に抑える方法、ポストプロセスエフェクトを処理する方法などについて解説する。
グラフィックス(コンソール/PC)では、レンダパイプラインとシェーダグラフを最適化する方法、ビルトインシェーダ設定を削除する方法、シェーダバリアントを削除する方法、リフレクションプローブ、シャドウ、シェーダエフェクトを操作する方法を紹介している。
GPU の最適化(コンソール/PC)では、GPUのベンチマーク、フィルレートの最適化とオーバードローの削減、描画順とレンダキューの確認、バッチ数の削減、グラフィックスジョブのアクティブ化、テッセレーションシェーダの回避、ジオメトリシェーダをコンピュートシェーダで置き換える方法について解説する。
そのほか、UIや物理演算、オーディオなど、モバイル/PC/コンソール向けゲーム開発におけるパフォーマンス最適化に関連した、多彩な項目が含まれる。なお現時点では、英語版のみの公開となっている。
- 関連リンク
この記事は参考になりましたか?
- この記事の著者
-
CodeZine編集部(コードジンヘンシュウブ)
CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です