Built in input lag?

It’s best to round them up for worst-case numbers.

1000 milliseconds / 60 frames * 6.5 = 108.33 milliseconds. The game’s timer runs at 1000ms, and the game draws at 60fps.

Imagine the game’s timer at 499ms (frame 29) - just about to hit f30 at half a second (500ms). If you press a button at this point, the action will be drawn 7 frames later, because f36 is drawn at 600ms. 500 + 108.33 = 608.33, so you’ve missed the draw on f36 and have to wait for f37 to draw your action (at 616.66ms). But f29 begins at 483.33ms, so if you press just before its midpoint of 491.66 then 491 + 108.33 = 599.33, which is in time for f36.

In other words, if you press a button during the first half of the current frame, the 0.5 of 6.5 will be eaten by the last half of that frame, and the action will be drawn 6 complete frames later. But if you press a button during the last half of the current frame, the remainder of that 0.5 will carry forward and add itself to the end of the following 6 frames, requiring a 7th frame to draw.

As far as I know, this delay’s internally consistent, so whether or not it presents visually as 6 or 7 is a straight 50:50. For that reason I’d call it 7. Even when the draw occurs 6 complete frames later, it’s always 108ms. If it were 99ms it’d never go above 6 frames and we’d call it 6. 50ms (3 frames) should be the target. Most multiplayer-leaning FPS games manage to hit 4 frames these days.