Describe the bug
When launching nukes (especially Hydrogen Bombs or multiple nukes simultaneously):
Mid-flight Micro-Jitter: Nukes jitter or slide 1 tile backwards on every tick during normal flight.
Lag-Spike Rubber-Banding: After a lag spike (e.g a CPU spike or RAM paging disk), nukes jump forward, then rubber-band backwards along their trajectory before resuming forward motion.
To Reproduce
- Fire a hydrogen bomb (easier to see due to bigger in flight)
- Closely zoom in, you can see the bomb jitter slightly.
- Have a hardware hiccup (e.g use chrome to simulate the cpu freezing)
- the bomb will shoot backwards, then forwards and rubber band
Expected behavior
For the warhead to follow it's trajectory as cleanly as possible. Speed up to catch up due to lag is unpreventable, but it shouldn't bounce
Additional context
The motion plan stays 1 tick behind engine position throughout the entire flight, this causes tick jitter. This is even more obvious during lag spikes causing an UnitUpdate from setTrajectoryIndex, advcanceMotionPlannedUnits does the same through Motion Plan (which is 1 tick out of sync already), during a spike the UnitPass interpolates the old position, so it gets updated fast-forward, then gets updated backwards, then the next tick properly fast forwards again.
Assignment
Describe the bug
When launching nukes (especially Hydrogen Bombs or multiple nukes simultaneously):
Mid-flight Micro-Jitter: Nukes jitter or slide 1 tile backwards on every tick during normal flight.
Lag-Spike Rubber-Banding: After a lag spike (e.g a CPU spike or RAM paging disk), nukes jump forward, then rubber-band backwards along their trajectory before resuming forward motion.
To Reproduce
Expected behavior
For the warhead to follow it's trajectory as cleanly as possible. Speed up to catch up due to lag is unpreventable, but it shouldn't bounce
Additional context
The motion plan stays 1 tick behind engine position throughout the entire flight, this causes tick jitter. This is even more obvious during lag spikes causing an UnitUpdate from setTrajectoryIndex, advcanceMotionPlannedUnits does the same through Motion Plan (which is 1 tick out of sync already), during a spike the UnitPass interpolates the old position, so it gets updated fast-forward, then gets updated backwards, then the next tick properly fast forwards again.
Assignment