背景
Ares: Rise of Guardians は、アクション RPG シリーズの開発実績で知られる韓国のゲームスタジオ Second Dive が開発したモバイルから PC への SF MMORPG です。このゲームは Kakao Games によって公開されています。
アレスは、詳細で未来的な背景を持つ広大な宇宙を舞台に、胸躍るゲームプレイや、戦闘服を着た戦士の登場人物による美しい描写が満載です。しかし、細部まで鮮明なグラフィックにより、一部のユーザーのデバイスではゲームプレイの処理が困難になりました。
Eyecon の取り組み
ユーザーによっては、ゲームプレイの数分後にデバイスが過熱し、サーマル スロットリング状態になる場合があります。この状態では、CPU 周波数と GPU 周波数が低下するため、ゲームのパフォーマンスに影響し、1 秒あたりのフレーム数(FPS)が低下します。しかし、FPS の低下により熱状況が改善するとすぐに、FPS は再び上昇し、このサイクルが繰り返されました。FPS の変動でゲームがぎこちなく動きました。
この問題を解決するために、Kakao Games は、Android 適応性と Unity 適応パフォーマンスを使用して、ゲームのパフォーマンスと温度管理を改善しました。
Android 適応性とは、ゲームがパフォーマンス、温度、ユーザー状況の変化をリアルタイムで分析して対応できるようにするツールとライブラリのセットです。Android 適応性には、デバイスの温度状態に関する情報を提供する Android Dynamic Performance Framework(ADPF)Thermal API と、Android が最適な CPU 動作ポイントとコア配置を選択できるようにする PerformanceHintManager
API があります。どちらの API も Unity Adaptive Performance パッケージと連携して、ゲームの最適化に役立ちます。
Android の適応性と Unity のアダプティブ パフォーマンスは連携して、ユーザーのデバイスの機能に合わせてアプリやゲームのグラフィック設定を調整します。その結果、パフォーマンスの向上、サーマル スロットリングの低減、消費電力の低減、バッテリー寿命の延長が実現しました。
成果
適応型パフォーマンスを統合すると、ARES は熱状況を適切に管理できるようになり、スロットリングが減少します。より高いフレームレートを使用できるようになり、FPS の安定性が 75% から 96% に向上しました。
下のグラフの青い線は熱警報レベルを示しています。一番下の線(0.7)は警告がないことを意味し、中線(0.8)は間もなくスロットリング、上限の線(0.9)はスロットリングを示します。
最初のグラフに示すように、ARES が Android Adaptability を実装する前は、約 16 分間のゲームプレイ後にスロットリングが行われていました。2 番目のグラフは、Android 適応性の統合の結果を示しています。スロットリングは約 22 分まで行われません。
また、Kakao Games はデバイスの発熱を抑えたいと考えていましたが、グラフィック品質を絶え間なく設定しなければできないことがわかっていました。デバイスの温度が上昇するにつれてグラフィックの忠実度を徐々に下げて、フレームレートと熱平衡を一定に保つことをおすすめします。そこで Kakao Games は、Android の適応性を使用して、安定した FPS とデバイスの温度の低下を可能にする 6 ステップの変更シーケンスを作成しました。
忠実度の自動変更は、設定メニューのゲーム内のグラフィック品質設定(解像度、テクスチャ、シャドウ、エフェクトなど)に反映されます。デバイスのパフォーマンスがそのレベルで維持できなくても、最高のグラフィック品質を求めるユーザーもいるため、Kakao Games では、Unity のアダプティブ パフォーマンスを手動で無効にするオプションをユーザーに提供しました。
Android 適応性を使ってみる
Android 適応性と Unity Adaptive Performance は、Android 11(API レベル 30)、Thermal、Android 12(API レベル 31)、パフォーマンスのヒント API 以降のほとんどの Android デバイスで Unity Android プロバイダを使用しているすべての Android ゲーム デベロッパーが利用できるようになりました。Adaptive Performance 5.0.0 バージョンから Android プロバイダを使用できます。Thermal API はアダプティブ パフォーマンスと統合されており、デバイスの温度情報を取得できます。パフォーマンスのヒント API は、追加作業なしで Update()
ごとに自動的に呼び出されます。
参考情報
Android の適応性と Unity の適応パフォーマンスを使用して、ゲームの FPS を安定させ、サーマル スロットリングを軽減する方法を学習します。