Sign in to follow this  
Webzen

Lerping Jitter

Recommended Posts

I've been stuck all day on this unfortunately. 

Problem in action: https://i.gyazo.com/a13cdb3c2f318bec1559ca8011e2763b.mp4

I'm basically simulating a 10/second positional update from the server: It updates the new_pos Vector2 with x, y values 10 times a second. Game is running at 60 fps and I am trying to interpolate the character movement.

And, the lerping code:

	if new_pos.x:
		var lerpspeed = 0.5
		set_pos(Vector2(lerp(get_pos().x, new_pos.x, lerpspeed), get_pos().y))

I'm using the Godot engine by the way (GDScript language)

I've been searching these forums and read that my lerpspeed somehow needs to be dynamic and clamped between 0.1 - 1.  I'm just not entirely sure how to go about doing that. Thanks in advance

Edited by Webzen

Share this post


Link to post
Share on other sites

The problem is that lerp gives you a single value, once. You need to make a note of when you receive each position, and lerp between the previous state and the new state, every update, for a chosen timespan, with the interpolation value changing each time accordingly.

This comes up almost every day, and the answer given by hplus0603 in another thread should illustrate this approach: https://www.gamedev.net/topic/687361-slow-response-in-state-interpolation-when-time-gap-is-big-between-client-and-server/#entry5336637

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this