iOS ゲームを開発したばかりですが、ユーザーからバッテリーの消耗が激しいという苦情が寄せられています。毎秒 60 フレームで再生し、独自のゲーム エンジン (C# で記述) を使用します。それらの 1 つが問題である可能性がありますか、それとも最初に調査する必要がある他の一般的な要因はありますか?
4 に答える
Appleの iOS プログラミング ガイドには、消費電力を削減するためのガイドラインがいくつか記載されています。
いくつかのヒントを始めるのに適した場所です。
まず、Instruments を介してコードを実行し、それが CPU 使用率にどのように影響するかを確認します (常に高い CPU を使用すると、バッテリーが消耗します)。また、GPS や WIFI などのデバイス機能を使用していますか? これらはバッテリーをさらに消耗させます。
第 2 に、アプリを一時停止する必要があるときにバックグラウンド プロセスを実行していて、バッテリーを消耗している可能性がありますか?
デバイスのログで消費電力を確認し、変更を加えて別のログを保存することで、強化したパフォーマンスを追跡できます。
1 つの簡単な答えがあるかもしれません。ゲームを 30 FPS または 24 FPS で実行してみてください。あなたがそれをとても速く走らせる必要がある本当の理由はありますか???
ちなみに、「技術的に」あなたの目(大多数の人間にとって)が検出できる最速であるため、24と述べました。
ビデオでは、記録プロセスから見られるアーティファクトがあるため、より高くしようとしますが、ゲームではシーンが生成されているため、通常は 24 より高くする必要はありません。
最初のステップとして、フレームレートを 30 FPS に下げることをお勧めします。妥当なゲームであれば、60 FPS はやり過ぎです。フレームレートがスキップしていない限り、ある時点で、あなたの目は違いを見分けることができません. そのレートは約 24 ~ 30 FPS で発生するため、ビデオやゲームに最もよく使用されます。
ただし、リアルタイム ゲーム (特に反射神経に基づくゲーム) を使用している場合は、別のスレッドでゲーム ロジックを実行するように注意してください。そうしないと、他のゲームにある次のような欠陥が発生する可能性があります。
Call Of Duty: Modern Warfare 3 のエンジン設計には重大な欠陥があり、銃の発砲速度はバックグラウンド スレッドではなく、ゲームのフレーム レートのみによって決定されます。
これにより、特定の武器が他の武器よりも危険になります。フレーム レートが約 60 FPS の場合、1 ショットあたりの時間が整数になるためです。
そうは言っても、フレームレートを下げてみてください。それだけで、おそらくバッテリーのほとんどを消費しています。