Making a quick prototype for an android game and when built I noticed it seemed locked at 30 fps. Googled around a little and found that unity sets the target frame rate to 30 for mobile devices.
Using Application.targetFrameRate I can set the target frame rate to 60, and my game runs at a solid 60 fps.
Are there many drawbacks to doing this to get a higher frame rate? I couldn’t really find a reason not to other than maybe taking more cpu and using some more battery?
It’s mostly that it uses more battery.
The higher the framerate, the more power is consumed, the hotter the device gets. If the device gets too hot, it might decide to downclock and you’ll get unstable performance in the process. This is called thermal throttling. To avoid this, you could switch to 30 FPS in menus and 60 FPS in game play scenes. Another way to avoid thermal throttling is to make sure that your game racing towards the next frame as fast as possible by e.g. using DOTS and spreading workload across all threads and cores, and targeting your frame time budget lower than you’d need for 60 FPS. The rest of the frame, you’re game would then just idle on all cores, giving them time to cool of.
Also, some players prefer to take the lower frame rate and visual fidelity to conserve battery (and avoid them burning their hands while playing) so you could also offer a “Battery Saving Mode” option in your game’s settings menu.
1 Like
Thank you both, for most games 30 fps is probably fine too.
Some good tips there Martin, will make sure to implement all of that.
1 Like