Open snekyo opened 8 months ago
What platform are you running on? Can you go to the console and try to set cl_maxfps to a lower value, like 10?
I'm using Windows 10, and vsync should be on. I'll try and run it on Steam to see the fps counter.
Huh, even with "sync every frame" on, which I'm guessing is vsync, I'm getting around 600 fps. I have a 60 Hz monitor. I'm still having the jittery movement too, while I'm getting this high amount of fps.
Just for your own reference in figuring out what's going on;
I had the same issue at default FPS of 60. 144 Hz monitor. Windows 11. Steam copy of SiN Gold.
Turned on vsync, or "sync every frame" which I assume is vsync, and the issue was fixed. Mostly. When moving from one large area to another the issue will crop up again. Like, in empty, connecting hallways. Take from that what you will.
Just for your own reference in figuring out what's going on;
I had the same issue at default FPS of 60. 144 Hz monitor. Windows 11. Steam copy of SiN Gold.
Turned on vsync, or "sync every frame" which I assume is vsync, and the issue was fixed. Mostly. When moving from one large area to another the issue will crop up again. Like, in empty, connecting hallways. Take from that what you will.
Hey, were you using an AMD card? The issue is completely gone for me, now that I got an NVIDIA card.
It appears to be an issue with Id Tech 2's 10hz tickrate and client-side prediction. When cl_predict is set to 0, this jitter goes away, but due to the nature of a hard-coded tickrate, movement feels delayed and simply wrong.
To read more into this issue: https://github.com/skullernet/q2pro/issues/177
Basically, we'd need to adjust the gamex.dll and ideally implement fps-based tickrates or at least add options for 60, 120, 144 etc.
I experience this with my RX6900XT (Windows 10, i7 7700k, 16gb RAM).
Manually capping FPS (cl_maxfps) or enforcing vsync through the driver has no impact.
Thanks @Grunerd ! I had no idea the issue was in the game library. I'll try to fix this when I have some free time.
Basically, we'd need to adjust the gamex.dll and ideally implement fps-based tickrates or at least add options for 60, 120, 144 etc.
Knowing how Quake engines handle tick rate and FPS limiting, I expect the code not to deal well with tickrates that are not integer values in milliseconds per tick (1000/tickrate
). You'd probably want the tickrate to be a multiplier of the base tickrate as well for better consistency with the original gameplay, although this is not a strict requirement.
In practice, this means the viable tickrate values would be 20, 40, 50, 100 and 125. (Values above 125 will likely be too demanding, as the only values usable above that are 250, 500 and 1000.)
The player's movement is jittery. I also experience a bunch of screen tearing, even though I have the "sync every frame" option on. This may be an unrelated bug.