ADPF のベスト プラクティス

Android Dynamic Performance Framework(ADPF)により、デベロッパーは、ゲームがシステムとやり取りし、温度分析情報(予測ヘッドルームなど)を受け取り、動作に影響を与えられるようにすることで、デバイスの温度とパフォーマンスをプロアクティブに管理できます。ADPF を使用したインテリジェントな適応により、厳しいスロットリングを防ぎ、よりスムーズで長いゲームプレイが可能になります。このガイドでは、ADPF を効果的に使用するための実践的な戦略について説明します。これは、ゲーム固有の品質設定に直接関連付けられた、ADPF 熱データによって駆動される、カスタムできめ細かいスケーリングに重点を置いています。こうした方法を実装することで、熱をプロアクティブに管理し、長時間にわたってパフォーマンスが向上するゲームを作成でき、プレーヤーにとって信頼性が高く楽しいゲーム体験を実現できます。

パフォーマンスのスケーリングをカスタマイズする

デフォルトの ADPF プラグインのスケーリングでは、低、中、高などの一般的なエンジン プリセットをターゲットにできます。これらのデフォルトとは異なる独自のグラフィック品質オプションをゲームで使用する場合、プラグインの前提条件はコンテンツと一致しません。効果的に温度管理を行うには、一致しないデフォルトの設定に頼らずに、ゲーム固有の品質設定を直接制御するように ADPF ロジックをカスタマイズする必要があります。より良い結果を得るために、ADPF データを使用してきめ細かいスケーリング ロジックを作成します。

  • 重要な要因を特定する: ゲームをプロファイリングして、パフォーマンスや熱に最も影響を与えるグラフィックスまたはゲームプレイ機能(シャドウ、解像度、粒子、効果、視距離)を特定します。
  • 詳細な手順を開発する: ゲームの品質オプション内の個々の設定に対して、小さな増分調整を定義します。ADPF からのサーマル フィードバック(サーマル ヘッドルーム データの利用など)に基づいてこれらの変更を徐々に適用し、重大なスロットリングが発生する前にシステムへのプレッシャーをやさしく緩和します。
Unity MegaCity Metro の ADPF に関するレンダリングの問題。

上の動画は、Unity MegaCity Metro における ADPF のレンダリングに関する問題を示しています。ADPF は、特定のゲーム コンテンツに適した範囲ではなく、一般的なゲームエンジンの範囲に基づいて視距離を調整するため、デバイスが熱くなると視距離が過度に短くなり、建物が見えなくなるという問題が発生します。

グラフィック設定を分離する

プリセットの大幅な変更は避けてください。個々のグラフィック設定を個別に調整することで、熱条件に応答する際に、より細かい制御とスムーズなエクスペリエンスが得られます。設定を調整する際のヒントをご紹介します。

  • 影響の優先順位付け: プロファイリング中に特定された熱やパフォーマンスへの影響が最も大きい品質オプションの設定に重点を置きます。
  • 設定の分離: シャドウ、解像度、パーティクルなどの設定を必要に応じて独立して順番に変更します。
  • スムーズな遷移: 可能であれば、視覚的な設定を数フレームかけて徐々に移行し、不快感を和らげるようにします。

Netmarble が ADPF を使用して「ゲーム・オブ・スローンズ: キングスロード」をどのように最適化したかをご覧ください。 ダイナミック解像度スケーリングと適応型フレームレート調整を実装しました。

ユーザー コントロールの提供

プレーヤーの中には、動的な調整よりも一貫したビジュアルを好む人もいます。ADPF を活用したスケーリングを無効にするオプションを提供します。

  • オプションを実装する: グラフィック メニューに、明確にラベル付けされた設定(「動的パフォーマンス調整を有効にする」など)を追加します。
  • 選択を説明する: 自動品質調整が可能になり、よりスムーズなパフォーマンスと温度の管理が可能になることを簡単に説明します。
  • 動作を定義する: 有効にすると(推奨デフォルト)、カスタム ADPF スケーリング ロジックが実行されます。無効にすると、ゲームはユーザーが手動で選択した設定のみを使用し、スケーリングで熱データを無視します。

複数のデバイスでテストする

Android ハードウェアの熱容量とパフォーマンスは大きく異なります。さまざまなデバイスタイプで徹底的にテストします。

  • デバイス階層を定義する: さまざまなメーカーや SoC ベンダーの代表的なハイエンド、ミッドレンジ、ローエンドのデバイスでテストします。
  • 熱レスポンスをテストする: さまざまなデバイスでの負荷の処理方法と、各層での ADPF ロジック(およびユーザー切り替え)の効果を確認します。
  • パフォーマンス目標を検証する: ADPF がアクティブな各階層でゲームがパフォーマンス目標を達成し、無効にした場合も想定どおりに動作することを確認します。
  • フィードバックを収集する: ベータ版プログラムを使用して、実際のさまざまなデバイスからパフォーマンスと温度のデータを収集します。

パフォーマンスをモニタリングして反復する

ADPF を実装するには、持続的なパフォーマンス、温度制限、画質のバランスを取るために、継続的なモニタリングと調整が必要です。

  • ベースラインとターゲットを確立する: 許容可能なパフォーマンス(ターゲット FPS、フレーム時間)を定義し、最初に ADPF ロジックなしの動作を測定します。
  • プロファイリング ツールを使用する: Android Studio Profiler、GPU ベンダーツール、ゲーム内オーバーレイを定期的に使用して、ゲームプレイ中の FPS、フレーム時間、ADPF 熱データを追跡します。
  • テストと調整: さまざまな ADPF レスポンス戦略をテストします。熱入力に基づいて設定の迅速さと積極性のスケーリングを調整し、ゲームに最適なバランスを見つけます。
  • 長いセッションをテストする: ADPF がアクティブな状態での持続的な負荷パフォーマンスと熱安定性を観察するために、テストに延長プレイ時間(15 分以上)を含めます。