ID:2666954
 
Resolved
Gliding has been improved on the client to keep the mob and eye in better sync. This requires an updated server as well, which will send additional information used for the sync.
BYOND Version:514.1551
Operating System:Windows 10 Home 64-bit
Web Browser:Chrome 89.0.4389.82
Applies to:Dream Seeker
Status: Resolved (514.1553)

This issue has been resolved.
Descriptive Problem Summary: Movement and/or the game screen (camera) starts stuttering when using pixel movement + world.movement_mode=PIXEL_MOVEMENT_MODE.

Numbered Steps to Reproduce Problem:
  1. Download test case: https://www.dropbox.com/s/5pn0t18bepwl3pg/ Playground.rar?dl=0
  2. Run project via Dream Daemon
  3. Move far enough away from the edge so client.eye has to begin tracking you and observe game screen as you move
  4. un-comment world.movement_mode (enabling PIXEL_MOVEMENT_MODE)
  5. Redo steps 1-3


Expected Results: Smooth client.eye tracking.

Actual Results: client.eye is stuttering as it tracks the player.

Does the problem occur:
Every time? Or how often? 100% when run in Dream Daemon; does not seem to occur when ran via "Run" in Dream Maker
In other games? Yes
Your test case wasn't compiled before you zipped it so it only includes a .dme file.
It's actually very hard to see the problem in your demo, so I added some code that would help:

turf
layer = TURF_LAYER + BACKGROUND_LAYER
mob/Login()
..()
var/obj/O = new
O.layer = OBJ_LAYER + BACKGROUND_LAYER
O.screen_loc = "CENTER"
O.appearance_flags = KEEP_TOGETHER
O.color = list(null, null, null, "#ffff", null)
O.vis_contents += src
client.screen += O

With this in place, there's a white copy of the player mob in the center of the screen, and if sync is perfect it should be totally hidden when the player is away from the edges of the map.

What I found was there is indeed a sync problem, but it's extremely intermittent. This is gonna be very difficult to track down.
So, then... I can expect this to take longer than the next week?

Need to know if I should just start removing use of this feature from my code.
I honestly have no idea yet. Unless something else jumps the queue I expect to look into this more tomorrow.
I also experience this with gliding on tile_movement.

Particularly when trying to adjust the glide for smoothed tile movements.

Just an FYI that this is happening on tile_movement based games as well. Thanks for your work.
This has turned into quite the adventure. I think I've finally come close to cracking the problem after a lot of difficulty, but it's still going to need more work.
Lummox JR resolved issue with message:
Gliding has been improved on the client to keep the mob and eye in better sync. This requires an updated server as well, which will send additional information used for the sync.