Hey there, I'm doing netcode for my own fast paced fps and I've ran into some roadblocks.
The roadblocks I ran into is sending inputs to the server. Right now, I think I have the design that's most suited for fast paced games: The server expects a healthy input stream from clients, where healthy means that there is always an input to process when the server is processing it's own tick. The problem is that the client might miss a tick because its tick intervals depend on framerate, at 64hz the client only has perfect 15.625ms tick intervals if it's framerate is perfectly a multiple of 64. The only way I found on how to account for this inconsistency is buffering inputs. But for a fast paced game, buffering is bad. The goal should be to execute the inputs as soon they arrive. Based on my findings CS2 does exactly that.
I'm wondering if there is anyway to guarantee that there is 15.625ms between each tick, as long as the framerate is above the tickrate, but not a perfect multiple of the tickrate.