Lag compensation learns each connection
Static offsets treat players alike. Tashi measures each player's network conditions and continuously adjusts compensation.
Why static netcode hurts game feel
Most engines use a fixed 80-100ms lag window. It never changes, even when network conditions do.
The static approach
At 12ms RTT, a nearby player gets 80ms compensation. A 280ms player gets the same 80ms. Neither window fits, causing inconsistent hit registration.
Location-based differences hurt both: high-latency players suffer, while low-latency players see unexplained misses.
The adaptive approach
Tashi measures RTT, jitter, and packet loss per connection. It sets each player's window to match actual conditions: 12ms gets 12ms, 280ms gets tuned compensation.
If conditions change mid-session, the window adjusts. Nearby players avoid overcorrection during lag spikes.
Technical specifications
Internal benchmark results. Performance varies with tick rate, server region, and player distribution.
Netcode configuration reference
Configure the module at init. Defaults cover common needs, so override only required fields.
import { Tashi } from '@tashi/sdk';
await Tashi.init({
gameId: 'game-id',
apiKey: 'sk_...'
});
Tashi.netcode.configure({
mode: 'adaptive', // 'static' | 'adaptive'
baseCompensation: 80, // ms, fallback floor
maxCompensation: 300, // ms, ceiling
tickRate: 30, // Hz, your server tick
jitterBuffer: {
enabled: true,
target: 'auto'
}
});
Try adaptive netcode on your next build
Free tier covers development and early testing. No card required.