ID:2243924
 
Resolved
Changes to gliding made mobs and client.eye move out of sync in some cases.
BYOND Version:511.182
Operating System:Windows 7 Home Basic
Web Browser:Firefox 53.0
Applies to:Dream Seeker
Status: Resolved (511.1383)

This issue has been resolved.
this new update 511.182 after updating it i noticed all games i play the movement is now super jerky and weird like the camera has a delay or the character moves forward kind too fast

I guess play any dbz game or game with movement and you'll see it?

You'll need to give me something more specific than that, like a test case.
i dont know how you expect me to give you a test case go join db ruination and walk around youll see exactly what i mean
That's not how these bug reports work. I need something concrete that I can test on my end and control in a debugger. Joining a game that's hosted by someone else is not in the cards.

At a minimum you could put together a video or a .gif, which wouldn't help me investigate but it would at least show the problem in action.
I really kind of want to see Lummox playing DB Ruination in my pager :P
In response to Flick
Flick wrote:
I really kind of want to see Lummox playing DB Ruination in my pager :P

+1
the test project from id:2240945 shows it if you stick around in the initial box so that you can track your position within the actual world better

Basically it seems you jump 3 or 4 tiles, animate for 1 tile, and repeat.

Or rather, it seems that your position never updates if you move again during an animation, and its not until the animation ends that it sees you moved again, and then jumps you to your new location.
https://streamable.com/lmima

That is what it currently looks like for me.
^ that is exactly what it is for me too
Is there a comparison image available? I'd kind of like to see the difference.

The behavior change that went into gliding is this: Classic behavior is that when an object makes successive movements in the same direction, the glide in that direction resets and the speed is increased; but if there's a firm glide size (not the default 0), the speed is reset to the glide size afterward. The gliding code however will try to move you faster to make up for the fact that you're more than a tile behind.

The new change was to eliminate the glide resetting in the "accelerating" direction when glide_size has a firm value. This solved the problem I saw at high FPS. Maybe however that's a problem in normal worlds.
I'm not seeing a negative change; if anything, things seem smoother.

Though I'm running a 40 FPS world and using a movement loop. This issue may only be apparent for certain setups I'm guessing.

Edit: Yeah, low FPS projects are affected by this.
i thought it was the game i was playing, glad i decided to check the forums, i'll try and make a video clip of it once i can connect back to the game i was playing.
https://youtu.be/BDoGRyEnTIU

its even worse if the character tries to move faster
In response to Lummox JR
Lummox JR wrote:
Is there a comparison image available? I'd kind of like to see the difference.

The behavior change that went into gliding is this: Classic behavior is that when an object makes successive movements in the same direction, the glide in that direction resets and the speed is increased; but if there's a firm glide size (not the default 0), the speed is reset to the glide size afterward. The gliding code however will try to move you faster to make up for the fact that you're more than a tile behind.

The new change was to eliminate the glide resetting in the "accelerating" direction when glide_size has a firm value. This solved the problem I saw at high FPS. Maybe however that's a problem in normal worlds.

My (world) ticklag runs at 0.33 so I suppose that can be taken as "high FPS" too?
Lowered the FPS (from 60 to 10 and 30 respectively) in my tile-based game and did not notice any strange movement. I use a movement loop though and reset glide_size to ((TILE_SIZE * world.tick_lag) / move_speed) every time there's a change in movement speed, so one or both of those things could be related to why the issue does not happen in my project. I also have LONG_GLIDE in the appearance_flags of all atoms but I don't think that should make a difference in this case.
I have a good demonstration of this bug.



As you can see, it's really really jerky.
In response to RiceINF
RiceINF wrote:
I have a good demonstration of this bug.



As you can see, it's really really jerky.

Is this a tile based or pixel collision game? Because it definitely looks like a gliding issue to me.
Lummox JR resolved issue with message:
Changes to gliding made mobs and client.eye move out of sync in some cases.
I found the problem. There was a logic error in the routine used for setting up eye glides, where instead of checking if glide_size was 0 it was checking if the pointer to it was null; it should have actually done both, which is basically what its sister routine does. The result was a sync issue.
So the other thing I noticed was a jump of 2 or tiles every few tiles of movement, did you catch/fix this?

I don't think it's accelerating fast enough, and waiting until the glide ends is just making the jump bigger then if it was smaller jumps.

Or am i just seeing side effects of the mob/client desync you fixed?

Page: 1 2