Differences in entity interpolation since 1.19.0 and 1.19.40 inducing seizures
Partner Rank:
2
Partner Team Reporting:
Everbloom Games
Verification builds:
1.19.40.20
Summary:
Differences in entity interpolation since 1.19.0 and 1.19.40, with potential to induce seizures.
Entity visual interpolation has changed twice in the past few versions. Before 1.19.0, entities interpolated from their old to new positions almost instantly (about 0.1s).
1.19.0 made entities interpolate very slowly (about 1.0s) - this was undesirable in a lot of cases where it used to be near instant, but it made teleportation much smoother overall.
1.19.40.20 came around and tweaked the rules. Now:
- If the total distance the entity is traveling is less than sqrt(2)/2 (about 0.7071), the interpolation is quick and smooth.
- If the total distance the entity is traveling is greater than 0.7071, teleportation is now instant.
These rules are almost the best of both worlds, except the maximum interpolation distance is way too small in practice, causing relatively small teleports to appear choppy - especially when teleporting every tick (anything above 14.14m/s).
Impact:
This issue was dangerously close to making WDW Magic Kingdom make people sick. The only reason it didn't is because the Magic Kingdom mostly has slow rides.
A new map of ours close to release is seizure inducing since this 1.19.40.20 change.
Repro Steps:
- Open the provided world.
- Observe the teleported armor stands, which teleport every second.
Observed Results:
As of 1.19.40.20, the armor stand teleporting 0.5 blocks interpolates between its old and new position. The other two armor stands, which teleport 4 and 8 blocks respectively, teleport instantly.
Expected Results:
Unfortunately this is a complicated bug and different people will want different behaviors - under some circumstances, you want instant teleports, but in others, you want smooth teleports. We've made a feature request on Compass to let the creator have control over these variables on a per-entity basis.
However in the meantime, one thing that can be done to fix most of the affected content while still having the best of both worlds in newer content is to increase the maximum interpolation range used by default. 0.7071 is far too small and limits smooth teleports to entities moving less than 14.14 blocks per second, not exactly very fast. Personally I suggest increasing that value to 4, as it is still a short distance you could feasibly imagine entities moving in a short time.
Regression Build:
Changed in 1.19.0 and again in 1.19.40.20
Notes:
Please note that I do not think the best course of action is to fully revert the behavior to what they were before. I personally welcome the instant teleports and am glad it was implemented. Two things are certain though:
- We could use some more control over how entities interpolate in our content.
- The default values for the interpolation logic need tweaking - 0.7071 is too small.
More discussion about this change in this Compass post (different from the feature request above!).
Some examples of how differently this looks between versions:
Pre 1.19.0 (minor interpolation):
https://gfycat.com/fluidmeatyindianabat
During 1.19.0 (large interpolation):
https://gfycat.com/hoarsegenuinekudu
Post 1.19.40.20 (short distance interpolation, large distance instant):
https://gfycat.com/affectionateeminentilsamochadegu