Player Interpolation Jitter While Strafing?
Posted: Mon Aug 28, 2017 9:16 pm
I think this has been around since uncapped framerate was introduced, but I don't know if it has ever been fully addressed...
When FPS is uncapped, objects that move relative to the player map object's position will 'jitter' when the player is strafing. They move roughly in sync with the player, but appear to move back and forth between 2-3 map units of space horizontally on the screen.
You can see this with a weapon that fires continuous railgun shots, or with an actor that is always warped to the player's location... I *think* this is related to the player map object's actual interpolation being timed differently from the view's interpolation (so you see the object at its original location and at its new location at the same time)... Not sure, though. Screenshots are impossible, because the screenshot doesn't capture until the tic is complete.
You can see the 'jitter' on the actual player sprite as well - make sure cl_capfps is false, go to chasecam view, and strafe back and forth. The player sprite will flicker and move back and forth, always in approximately the right location, but very choppily, despite the floors and walls appearing to move smoothly. With cl_capfps turned on, this doesn't happen - the player sprite moves smoothly, as expected.
I'm not sure if this is really two separate issues (the view interpolation versus actor interpolation), or if both are the same issue...
Working example available here. Two weapons are included - an (overly complicated) in-work Ghostbusters-style proton pack that uses an actor that constantly warps to the player's position (actor name: ProtonPack), and a minimal railgun that fires a constant stream of particles while you hold down fire (actor name: 'RailTest'). Both are in weapon slot 6. In both cases, holding down 'fire' and strafing back and forth will show the jitter with cl_fps=false, but smooth movement with cl_fps=true.
When FPS is uncapped, objects that move relative to the player map object's position will 'jitter' when the player is strafing. They move roughly in sync with the player, but appear to move back and forth between 2-3 map units of space horizontally on the screen.
You can see this with a weapon that fires continuous railgun shots, or with an actor that is always warped to the player's location... I *think* this is related to the player map object's actual interpolation being timed differently from the view's interpolation (so you see the object at its original location and at its new location at the same time)... Not sure, though. Screenshots are impossible, because the screenshot doesn't capture until the tic is complete.
You can see the 'jitter' on the actual player sprite as well - make sure cl_capfps is false, go to chasecam view, and strafe back and forth. The player sprite will flicker and move back and forth, always in approximately the right location, but very choppily, despite the floors and walls appearing to move smoothly. With cl_capfps turned on, this doesn't happen - the player sprite moves smoothly, as expected.
I'm not sure if this is really two separate issues (the view interpolation versus actor interpolation), or if both are the same issue...
Working example available here. Two weapons are included - an (overly complicated) in-work Ghostbusters-style proton pack that uses an actor that constantly warps to the player's position (actor name: ProtonPack), and a minimal railgun that fires a constant stream of particles while you hold down fire (actor name: 'RailTest'). Both are in weapon slot 6. In both cases, holding down 'fire' and strafing back and forth will show the jitter with cl_fps=false, but smooth movement with cl_fps=true.