They may have, depending on what rate the game is updating at and how its implemented. A commonly used gameloop is the one where you update at even intervals and then render when you have time over. Let’s say you have an unusually high update rate of 100 Hz (hereafter referred to as UPS, updates per second). Let’s calculate the average input delay of a high-end gamer with proper gaming gear and a computer that can achieve 100 FPS and a low-end “casual” gamer who gets 40 FPS.
The most important difference when it comes to FPS and input delay here is what happens when the FPS drops below the UPS. At 100 UPS the game should update every 10 millisecond. However, at 40 FPS the rendering part of the game loop takes 25 milliseconds by itself, meaning that although the game still updates at 100 UPS, they’re not evenly spread out.
100 FPS and 100 UPS
[update][update][update][update][update]
40 FPS and 100 UPS
[update][update]<------render------->[update][update][update]<------render------->
In general, game updating is often a magnitude or more faster than rendering a frame, so in practice the 40 FPS computer is reading input 2-3 times within a very short period, which effectively means that only the first read has a reasonable chance of catching any new input. The result is that although the game speed and all is constant regardless of FPS, the input reading effectively happens in sync with your framerate, not your update rate. 100 FPS = 0-10ms delay until the input is detected, 40 FPS = 0-25ms.
[tr][td][/td][td]Gamer[/td][td]Causal[/td][/tr]
[tr][td]Mouse/Keyboard USB polling delay[/td][td]1000Hz = average 0.5ms[/td][td]100Hz = average 5ms[/td][/tr]
[tr][td]Average delay until game-loop notices and reads input[/td][td]100FPS = average 5ms[/td][td]40FPS = average 12.5ms[/td][/tr]
[tr][td]Time needed for the GPU to render a frame[/td][td]100FPS = 10ms[/td][td]40FPS = 25ms[/td][/tr]
[tr][td]Monitor update time[/td][td]2ms gaming monitor[/td][td]8ms slow monitor[/td][/tr]
[tr][td]Total[/td][td]17,5[/td][td]50,5[/td][/tr]
In practice, the time needed for the GPU to render a frame is most likely significantly higher due to the GPU lagging behind the CPU to assure that it always has stuff to do. This is also amplified by a lower FPS, since the GPU starts limiting the CPU when either when it’s X frames behind or when it has Y commands queued up. Being 3 frames behind at 100 FPS is only 30ms extra delay, but at 40 FPS we’re talking about 75ms.
