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 ​
new InterpolationBuffer(
delayMs?,
maxExtrapolateMs?,
keep?
): InterpolationBuffer;Defined in: src/net/InterpolationBuffer.ts:34
Parameters ​
| Parameter | Type | Default value | Description |
|---|---|---|---|
delayMs | number | 100 | How far in the past bodies are drawn (default 100 ms: two snapshots at 20 Hz, so one may be late). |
maxExtrapolateMs | number | 120 | - |
keep | number | 30 | - |
Returns ​
InterpolationBuffer
Properties ​
delayMs ​
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() ​
has(id): boolean;Defined in: src/net/InterpolationBuffer.ts:70
Parameters ​
| Parameter | Type |
|---|---|
id | number |
Returns ​
boolean
ids() ​
ids(): IterableIterator<number>;Defined in: src/net/InterpolationBuffer.ts:74
Returns ​
IterableIterator<number>
push() ​
push(time, updates): void;Defined in: src/net/InterpolationBuffer.ts:42
Records every body of a snapshot taken at time.
Parameters ​
| Parameter | Type |
|---|---|
time | number |
updates | readonly EntityUpdate[] |
Returns ​
void
remove() ​
remove(id): void;Defined in: src/net/InterpolationBuffer.ts:66
Forgets a body (it left view).
Parameters ​
| Parameter | Type |
|---|---|
id | number |
Returns ​
void
sample() ​
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 ​
| Parameter | Type |
|---|---|
id | number |
now | number |
Returns ​
InterpolatedState | null
viewTime() ​
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 ​
| Parameter | Type |
|---|---|
now | number |
Returns ​
number