My experience is the following:
Enable vsync and set frame cap to 0 in game.project
. This will allow the game to run at 60 FPS or whatever matches the test monitor’s Hz. Expected result.
Enable vsync and set frame cap to 0 in code. This will allow the game to run at 60 FPS or whatever matches the test monitor’s Hz. Expected result.
Enable vsync and set frame cap to 0 <= x
< 60 in code. This destroys execution of the game, forcing it into “slow motion” mode. Unexpected result. Shouldn’t this respect min(frame_cap, monitor_Hz)
?
Enable vsync and set frame cap to 60 < x
in code. This destroys execution of the game, forcing it into “superspeed” mode. Unexpected result. Shouldn’t this respect min(frame_cap, monitor_Hz)
?
Disable vsync and set frame cap to 0 in game.project
. This will also allow the game to run at 60 FPS or whatever matches the test monitor’s Hz. Unexpected result. Shouldn’t this allow the game to run at maximum possible FPS?
Disable vsync and set frame cap to 0 in code. This destroys execution of the game, giving me exactly 1 frame per second. Unexpected result. Shouldn’t this allow the game to run at maximum possible FPS?
Disable vsync and set frame cap to 0 < x
in code. This will allow the game the run at x
FPS, choppy or smooth based on the value of x
. Expected result.
So there are some issues here.
(1) Disabling vsync and setting frame cap to 0 in game.project presumably allows for FPS equal to monitor refresh rate, while doing this in code kills execution speed.
(2) All of the “unexpected result” statements mentioned above.
(3) How to deal with all of this is the game’s options menu? I want the player to be able to set the frame cap to anything between 10 and 120, while also allowing them to check or uncheck vsync. I don’t want them to have a poor experience with the options menu if unexpected results occur or unfair advantages or disadvantages due to superspeed and slow motion.