View Issue Details

IDProjectCategoryView StatusLast Update
0003119Multi Theft Auto : San AndreasSynchronizationpublic2009-09-29 21:58
ReporterChrMLAssigned Toccw 
PriorityurgentSeveritymajorReproducibilityN/A
Status resolvedResolutionfixed 
Product Version 
Target Version1.0.1Fixed in Version1.0.1 
Summary0003119: Improve player/vehicle interpolation and compensation
Description

Our current player/vehicle interpolation is framerate dependent which means that it behaves differently with different framerates, while it should be time-based.

Time-based interpolation also opens up the possibility of making ping compensation work again (currently it doesn't really work).

TagsNo tags attached.

Relationships

parent of 0004780 closedJax Modify the interpolator to only interpolate the error, and not the full position 
has duplicate 0003118 closed Make the vehicle and player interpolation time dependent 
related to 0004875 resolvedccw Vehicles lag with high player counts 

Activities

ChrML

2008-01-10 16:04

administrator   ~~0007092

This is because it still uses linear interpolation while we use a different way of interpolating in the player class. First it needs to be time based, then the interpolator needs to run on the local player too saving records on the local player so we know where the remote player saw us when he fired.

ryden

2009-03-12 13:59

manager   ~~0008522

What I saw is that it keeps a list of the recent states and when somebody shoots you it warps you back to the exact position where you was when he actually shot you. Is that even interpolating or just state changing?

ryden

2009-06-29 21:18

manager   ~~0009821

This is also causing peds and vehicles to be under the ground. It's top priority and should be fixed for 1.0.

ccw

2009-06-29 21:42

administrator   ~~0009822

Last edited: 2009-06-30 22:13

As you say ryden, it could do with a name change to distinguish it from the net smoothing position interpolation.

Edit:
I mean that there is CClienPed::Interpolate(), for smoothing remote players, and also there is an CCInterpolator class, which is used to store local player position history for ping compensation. The CCInterpolator class could be renamed to describe what it does, rather than how it does it.
But it's not that important.

ryden

2009-06-30 22:14

manager   ~~0009834

Agreed.

ccw

2009-09-16 00:13

administrator   ~~0010494

Fixed in http://github.com/multitheftauto/multitheftauto/commit/c3b7bb5a3073516106e427fed959f3eae311731f

Issue History

Date Modified Username Field Change