1
\$\begingroup\$

When reading on frame rate, i usually encounter the following suggestions:

  • render as fast as possible
  • render to 60 fps

I want to make a 2d game that runs in slow computers, and i've been surprised by how Cave Story smooth is and that it runs at 50 fps. Maybe. there is not much difference between 50 and 60, but if i dont have a reason to use 60, i'd rather set my frame rate to 50.

I'd like to know the drawbacks of this approach, specially applied to my usecase.

\$\endgroup\$
1
\$\begingroup\$

Specifically for display refresh rate, it's not really much of a choice, it's more of a mandate, and there's no reason not to go for this. The reason is that a lot of underlying technologies / rendering engines opt for syncing with the hardware (vsync) which typically updates at about 60Hz (this figure primarily for historical reasons - it was closely associated with the frequency of AC current in the days of analog television - see PAL / NTSC).

Understand the reason behind vsync: Without it, you may get partway through painting a frame before a hardware update triggers, leading to tearing that you may have seen in windowed games. At best, you'll get frames that don't tear, but also don't sync nicely to your monitor's rate, resulting in a less-than-ideal feel.

Also remember that your logic update rate is not mandated by your visual update rate; but if your main loop is driven by the display refresh rate, as in e.g. Android, then best make your logic update evenly divisible into display rate, e.g. for 60Hz display refresh, it's easy enough to do logic 1 in 2 frames (30Hz), or even 1 in 3 frames (20Hz).

\$\endgroup\$
  • \$\begingroup\$ Thank you for your answer. I dont have my update loop tied to display. I didnt know how vsync wast attached to 60Hz. Still, i haven't noticed anything strange playing this game which is supposed to run at 50. Here he explains why he went with 50 \$\endgroup\$ – Newbe763547634 Oct 31 '15 at 20:46
  • \$\begingroup\$ If it's a fullscreen game, the author could be requesting a OpenGL/DirectX context that renders at 50Hz (I'm sorry, I'm not going to download it just to see what the game is.) That is fine - but again vsynced. What I'm saying is - don't let the 50/60Hz issue concern you. Just focus on writing your game logic, and if you have speed issues later then run logic once for every 2-3 render frames, i.e. at 20 or 30Hz. Then you'll be fine. \$\endgroup\$ – Engineer Oct 31 '15 at 22:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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