Building my own game engine in C++ and while uncapped it possible for it to render absurd frame rates, this is really not needed or necessary and is computer horse power i rather divert to the simulation part. So, that leads me to wanting to cap the fps, which begs the question what to cap it to?
The human eye can’t see more than 30-60 fps. So that’s usually a good place to start.
the human eye can see more than 60. why do people keep repeating this myth?
it depends on the game how high frame rate you need. if it is a game like sim city you can probably get away with something as low as 20 fps, but if it is in first person where you walk around in your shop or whatever you are managing 30 would be the minimum but 60 would be preferable
60 is always a safe bet. Beyond that is nice to have but not necessary for a management sim game. And the human eye can absolutely see above 60fps, I don’t know where that myth came from but it’s incredibly silly.
Just cap it to 60 fps which is like “golden standard” for video games since a lot of people still use monitors with 59-70 hertz screen refresh rate.
Actually the human eye is not the limiting factor the limiting factor is interpretation of what the eye brain processes between frames and that is limited to 24 frames/sec.
You’re supposed to bait the hook before you cast.
that isn’t true either. if you watch this video (at 720p or higher since that is when youtube has 60fps video) at 2:10 there will be an experiment that disproves that.
he also talks about a test the us air force did where some of the participants could tell what model plane was flashed before them for just 1/220th of a second (at 4:06)
In my memory, no one has ever so shamefully insulted the capabilities of the human brain.
Frame smoothness is far, far more important than FPS. If the gap between frames is all over the place, it is more jarring than a lower but more consistent framerate - provided it stays above 60fps or so.
Unless you are making a competitive FPS, having a cap of 60fps (maybe have a toggle between 60-120) is preferable to accidentally frying hardware when it tries to max framerates for literally no reason. As Yamhead said, 30fps might even be enough BUT you shouldn’t need to use a lot of system resources to make a life/management sim.
Building my own game engine in C++
No. Please don’t. Not saying you can’t, but is this really the best use of development resources for a single project? Unless there is a specific need, I would strongly recommend using en existing engine.
If C++ is your comfort zone, at least cribbing off something like ZeroCore (GitHub - zeroengineteam/ZeroCore: The main repository that Zero Engine is built from. Visit releases to download the latest launcher!), ezEngine (GitHub - ezEngine/ezEngine: An open source C++ game engine.) or Flare (GitHub - flareteam/flare-engine: Free/Libre Action Roleplaying Engine (engine only)) might let you save time and energy early on and allow you to spend more time on the actual game itself.
There is the other issue of how long an image persists on the rods and cones in the eye which is 1/25th of a second (persistence of vision). What we perceive is reaction to change (which is one aspect that the youtube you reference accounts for), however the limitation comes in from the latency of the rods and cones within the eyes. Sure we can catch a change in 1/60th of a second but it depends a little on contrast, but the persistence of image is limited to my quoted frame rate. If the whole eye is saturated with 1/60 second change they admit we would suffer headaches, hence game developers have to account for this auto-blurring near the edges of field of frame, which your youtube example admitted that. It’s a combination of processing and the fact our eye sensors latency we have to account for.
So I am going to make the assumption that your sim is running on its own thread and this is only about your rendering thread. As you may know there are about 4 (possibly 5 now but not sure) standard fps rates out there, 24, 30, 60, and 120. Choosing what fps to use is generally a question of balancing aesthetics and resources.
First, lets go over aesthetics. In general the higher the frame rate the crisper and more responsive everything feels. While lower frame rates have a more cinematic and stylish feel to them. This is why sporting events will target 60fps or higher while movies will usually be shot around 24fps.
Next there is the technical perspective. Rendering is really heavy and usually is going to be the most process intensive thing in any game. Also, it can consume a lot of power due to this. If you are looking to support lower end devices or mobile devices targeting a lower frame rate of 30fps can be a good way to help reduce your games impact on those devices. While on the other hand your actual frame rate is capped by the monitors refresh rate. If you target 120fps on a 60hz monitor you will drop half of your frames since it cant keep up. 60hz displays tend to be the most common atm so is a safe target unless you need the extra frames for the users that do have 120hz monitors.
So with all that in mind, your are doing a management sim game. Those tend to be slower and not very fast paced. Also, as you already said, it may be better to allocate the resources to your simulation instead of to your rendering. So going the 24fps or 30fps route could be a good idea, especially if combined with a more stylized or low rez look. That being said, if you dont care about that you can just support the status quo and target 60fps. I would suggest against any higher than that unless you crossed a shooter or something like that in there as unless you have some fast paced game play there is a good argument even 60fps can be overkill.
that is such bullshit sorry.
a) the eye doesnt see in FPS its more of a change based thing (dont know the term, but the FPS claim has been disproven multiple times)
and b) you can definetly see changes higher than 60 fps, the change from 60 to 140 fps is 100% visible
I would say more than 140 fps higher framerates have minimal to no effect on a viewing/gaming experience, but the jump from 60 to 140 is very visible
Your rods and cones operate asynchronous which allow you to perceive changes at the higher rates but only in localize or regional areas of your eyes, but your eye cannot handle that change if it is applied to every rod and cone in your eye (that would exceed your optic nerve bandwidth). That is where the lower rate comes in.