Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rename FPS limiting project setting and Engine property to be easier to discover #5448

Closed
Calinou opened this issue Sep 18, 2022 · 0 comments · Fixed by godotengine/godot#66274
Labels
breaks compat Proposal will inevitably break compatibility topic:core
Milestone

Comments

@Calinou
Copy link
Member

Calinou commented Sep 18, 2022

Related to #2001.

Describe the project you are working on

The Godot editor 🙂

Describe the problem or limitation you are having in your project

As documented in godotengine/godot-docs#6186, recent research in reducing input lag in games has found two ways to reduce input latency while also reducing GPU power draw:

However, limiting framerate to a set value in Godot is not as obvious as in other engines, due to the project setting and engine property having unintuitive names:

  • The Debug > Settings > FPS > Force FPS project setting was moved to the Debug section in 3.0 by godotengine/godot@920310e72a.
    • The Application > Run > Frame Delay Msec is mentioned as an alternative, but it is not designed to provide accurate FPS limiting. Instead, frame delay is only meant to simulate CPU-constrained scenarios (therefore leading to stuttering with values that are close to the monitor's refresh rate in milliseconds-per-frame).
  • The Engine singleton has a target_fps project setting, but this is actually a maximum framerate, not a target for dynamic resolution or automatic graphics settings adjustment.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

Rename FPS limiting project setting and Engine property to be easier to discover.

Note: This proposal does not propose changing any default settings' values, only their names.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

  • Rename Debug > Settings > FPS > Force FPS project setting to Application > Run > Max FPS to put it in the same section as Frame Delay Msec.
  • Rename Engine's target_fps to max_fps, which is consistent with most other engines (Unreal, Source, id Tech, …). Unity does seem to be using targetFrameRate still, but I think this naming would be best left unused to prepare for a future implementation of dynamic resolution scaling.

If this enhancement will not be used often, can it be worked around with a few lines of script?

No.

Is there a reason why this should be core and not an add-on in the asset library?

Developers should have access to ways to minimize input lag in their projects as easily as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaks compat Proposal will inevitably break compatibility topic:core
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants