The 26.3 refactor replaced this fixed value with updateInterval, but omitted the +1 . This causes player’s actual updateInterval is 2.
BTW The existing net.minecraft.client.player.RemotePlayer.lerpMotion() implementation already uses updateInterval() + 1 for velocity interpolation. But this seems unrelate to this issue.
I traced the issue to the 26.3 entity interpolation refactor, In class
net/minecraft/world/entity/SteppedInterpolationHandlerCurrent 26.3 code:
The interpolation length is therefore equal to updateInterval. However, the client should interpolate for
updateInterval + 1ticks.Playeris registered in:net/minecraft.world.entity.EntityTypeswith:
.updateInterval(2)Therefore, the current code interpolates player movement for only 2 ticks instead of 3.
I guess expected is:
In 26.2 , the default interpolation length was hard-coded to 3 ticks:
The 26.3 refactor replaced this fixed value with updateInterval, but omitted the +1 . This causes player’s actual
updateIntervalis 2.BTW The existing
net.minecraft.client.player.RemotePlayer.lerpMotion()implementation already usesupdateInterval() + 1for velocity interpolation. But this seems unrelate to this issue.