7
\$\begingroup\$

The higher the framerate, the better the game looks, but the faster it drains the battery.

What's a happy medium?

(I'm making a relatively simple 2D game with sprites moving constantly. I want the movement to appear smooth but I know how irritating it is when a simple game sucks your battery dry.)

\$\endgroup\$

closed as primarily opinion-based by Vaillancourt Feb 20 '18 at 16:51

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    \$\begingroup\$ Are you sure that faster framerates drains the battery any significant amount? I mean, did you actually try or you just assumed it? Remember that on most mobile phones the huge battery drain is the display itself. \$\endgroup\$ – o0'. Sep 28 '10 at 15:21
  • 1
    \$\begingroup\$ More time that the processor is sleeping means less power used. Assuming the app is running at a slower rendering speed and sleeping that other part of the time, it will definitely save power. But you are definitely right in questioning just how much power that might be, if it's negligible compared to the display or something else. \$\endgroup\$ – Ricket Sep 28 '10 at 20:07
  • \$\begingroup\$ When I look at what's been consuming the battery on my Android device, it's usually around 90% display and 10% app execution. \$\endgroup\$ – dash-tom-bang Sep 29 '10 at 0:34
  • \$\begingroup\$ Ha! Yes, great point - I realised that sleeping the thread as much as possible would save power, but had totally assumed the amount saved would actually be significant. As you say, the amount saved might not even be noticeable. True, it's normally the display that takes the lion's share of the power, but when apps appear on the list too [on Android, at least], it tends to be games that appear highest. If I can stretch the battery life by 10%, it'll totally be worth it. @Lo'oris is right though - measuring the actual benefit will be interesting. \$\endgroup\$ – teedyay Sep 29 '10 at 8:58
7
\$\begingroup\$

Your framerate should be as low as looks good, but I think you're in a tough situation if all of your sprites are moving constantly. You should try your absolute hardest to keep a consistent framerate; a low, consistent framerate is better than a high but randomly stuttering framerate. Then turn it down until it doesn't look good.

Consider matching the framerate of movies on the big screen: they are only 24 FPS. But again, they are precisely consistent, which is why people are okay with just 24 FPS.

Alternatively, if your sprites have an animation sequence and that has a FPS value, try matching that or a multiple of it. For example if they animate at 5 frames per second, then maybe try 25 or 30 frames per second so that the sprite animations can be precisely timed and make the game appear more smooth and consistent than it really is.

I think the best option in this case is to try out some framerates and find a good default, and then put a setting in your options menu for the user to be able to turn it up or down according to the user's desired battery life.

\$\endgroup\$
  • 2
    \$\begingroup\$ 24 FPS is acceptable for films because motion is blurry on film, not because they are consistent. \$\endgroup\$ – user744 Sep 28 '10 at 14:53
  • \$\begingroup\$ Ah good point, I didn't think about that. But it still helps that it's consistent. \$\endgroup\$ – Ricket Sep 28 '10 at 20:03
  • 3
    \$\begingroup\$ I've shipped highly-regarded action games that ran between 18 and 20 fps. People universally thought it ran faster than that (and our geometry was resilient in the face of tearing). The key is consistency and "fast enough for what the game is trying to do." PixelJunk games would be very different if they were 30 instead of 60. \$\endgroup\$ – dash-tom-bang Sep 29 '10 at 0:36
3
\$\begingroup\$

It might seem obvious, but aim for whatever the refresh rate of the screen you're using, or a multiple of that, i.e. if the device does 24fps you could do 12fps. But as Ricket says, the ideal thing is to be consistent.

\$\endgroup\$
2
\$\begingroup\$

When developing for mobile devices I always aim for 30.

\$\endgroup\$
2
\$\begingroup\$

So first off, a disclaimer: I'm a Director at GameBench, and we make tools for measuring mobile app/game performance (frame rate and other metrics) for a lot of major companies (Rovio, Samsung, Seriously, NaturalMotion etc.) I also have a degree in Game Design.

With regards to target frame rates, there's a few answers here that touch a little on some important points (consistency/stability), but here's what I've learned after nearly 5 years of working in mobile game performance:

Lower frame rate definitely saves battery. This is evident through our own testing (which you can confirm at https://data.gamebench.net) and also as we've seen a lot of device manufacturers actually limit the display refresh rate to as low as 52hz as opposed to the standard 60hz commonly used.

On mobile devices in general, you have the option of selecting from the following target frame rates (this is because they are divisors of the max frame rate - 60 FPS):

  • 15 FPS
  • 30 FPS
  • 45 FPS
  • 60 FPS
  • 90 FPS
  • 120 FPS

Note: 90 and 120 FPS are only available on a few (as of writing this, two) devices.

However, the right target frame rate can only be decided once you have an understanding of the gameplay style and user interaction mechanics you're going to implement.

For a puzzle game where user response times (reactions) or physically realistic animations aren't important, then aim for 15 FPS, the lowest available target. For a fast-paced shooter where users will need quick reaction times, then definitely aim for 60 FPS.

You can completely ignore any advice stating targets like 24 or 25 FPS, and always ensure that when you target a particular frame rate, you stay as close as possible to it during gameplay, or else it will impact the user experience.

All the best, and feel free to reach out if you've got any other mobile performance questions :)

\$\endgroup\$

Not the answer you're looking for? Browse other questions tagged or ask your own question.