No client side movement prediction makes movement awkward with high ping

Bug #1424432 reported by JontomXire
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ember
Fix Released
Undecided
Unassigned

Bug Description

When walking forwards or backwards, the client insists on completing the animation. You cannot stop mid stride. This makes walking up to NPCs awkward and you can end up inside them when you had no intention of doing so. It also makes the controls feel awkward to use.

In theory this should make the animation smoother and more realistic, but actually I find it makes it more awkwards visually too - a little jerky perhaps.

Revision history for this message
JontomXire (jontomxire) wrote :

I think the jerkiness is a slight bit of "rubber-banding". I think the client and the server are coming to different conclusions about where the character should be and the server keeps correcting the client causing the jerkiness.

Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

This is not caused by the client completing the animation, but because of a lack of client side movement prediction. This is an issue caused by lack of proper collision detection on the server, as described here https://blueprints.launchpad.net/ember/+spec/ember-client-side-collision-prediction
I'm closing this as the description is incorrect.

Changed in ember:
status: New → Invalid
Revision history for this message
JontomXire (jontomxire) wrote :

This has nothing to do with collision detection. In this case there were no object to collide with.

1) Go into the client and connect to a server and enter the world.
2) Tap the forward key briefly.

Expected behaviour: The character takes a small partial step forward.

Actual behaviour: The character takes a full walking animation sequence movement forward, moving for much longer than the key is depressed and moving further forward than expected/desired.

But what do I care. The community forums are completely shafted and haven't had a post in over a year as far as I can see. I'm surprised anyone is actually even reading these bug reports at all even if they do just close them incorrectly.

Changed in ember:
status: Invalid → New
Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

Ok, no need to get defensive.

I'll try to explain what happens.

The issue here is that there's no server side movement prediction. So, when you press the forward key, a command is sent to the server, and not until that gets back to the client will the client actually move the avatar. And likewise, when you release the button, the client has to wait until it receives a response from the server before it can stop the avatar. The end result of this, especially when connecting to a server with a high ping, is that there's a noticeable lag. If the lag fluctuates you'll get even worse behaviour.

Now, the reason why we can't turn on the client side movement prediction is because of the issues with collision detection on the server. Until that's solved, and the client and the server has the exact same collision detection system, client side movement prediction is impossible.

summary: - Animation makes movement awkward
+ No client side movement prediction makes movement awkward with high ping
Changed in ember:
status: New → Confirmed
Revision history for this message
Erik Ogenvik (erik-ogenvik) wrote :

Sorry, the first sentence of the third paragraph should read:
"The issue here is that there's no client side movement prediction."

Revision history for this message
JontomXire (jontomxire) wrote :

I disagree with your analysis. If it were correct, there would be a delay starting to move as well as a delay stopping movement. There is no such delay.

Secondly, if you hold the key down a bit longer, you still move for the same length of time - unless you hold it down long enough to start a second animation sequence.

Changed in ember:
status: Confirmed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.