Skip to content

1681-engine / index / InterpolationBuffer

Class: InterpolationBuffer ​

Defined in: src/net/InterpolationBuffer.ts:31

Smooth motion for bodies the server moves (other players, monsters): snapshots arrive 10–30 times a second and jittered, so each body is drawn a little in the past (delayMs) between the two snapshots around that moment. Past the newest snapshot it extrapolates for at most maxExtrapolateMs, then holds.

Times are server times (Snapshot.time); render at serverNow().

Constructors ​

Constructor ​

ts
new InterpolationBuffer(
   delayMs?, 
   maxExtrapolateMs?, 
   keep?
): InterpolationBuffer;

Defined in: src/net/InterpolationBuffer.ts:34

Parameters ​

ParameterTypeDefault valueDescription
delayMsnumber100How far in the past bodies are drawn (default 100 ms: two snapshots at 20 Hz, so one may be late).
maxExtrapolateMsnumber120-
keepnumber30-

Returns ​

InterpolationBuffer

Properties ​

delayMs ​

ts
readonly delayMs: number = 100;

Defined in: src/net/InterpolationBuffer.ts:36

How far in the past bodies are drawn (default 100 ms: two snapshots at 20 Hz, so one may be late).

Methods ​

has() ​

ts
has(id): boolean;

Defined in: src/net/InterpolationBuffer.ts:70

Parameters ​

ParameterType
idnumber

Returns ​

boolean


ids() ​

ts
ids(): IterableIterator<number>;

Defined in: src/net/InterpolationBuffer.ts:74

Returns ​

IterableIterator<number>


push() ​

ts
push(time, updates): void;

Defined in: src/net/InterpolationBuffer.ts:42

Records every body of a snapshot taken at time.

Parameters ​

ParameterType
timenumber
updatesreadonly EntityUpdate[]

Returns ​

void


remove() ​

ts
remove(id): void;

Defined in: src/net/InterpolationBuffer.ts:66

Forgets a body (it left view).

Parameters ​

ParameterType
idnumber

Returns ​

void


sample() ​

ts
sample(id, now): InterpolatedState | null;

Defined in: src/net/InterpolationBuffer.ts:79

Where body id should be drawn at server time now, or null if nothing is known of it.

Parameters ​

ParameterType
idnumber
nownumber

Returns ​

InterpolatedState | null


viewTime() ​

ts
viewTime(now): number;

Defined in: src/net/InterpolationBuffer.ts:61

The server time bodies are drawn at when it is now (serverNow()): what a shot should carry, so a server with lag compensation judges it against the picture the player aimed at.

Parameters ​

ParameterType
nownumber

Returns ​

number

Released under the MIT License.