The full notes for this version are its short notes: that was all that was written then.
Netcode
- Delta snapshots. The server only sends what changed since the last snapshot your client confirmed receiving. An unchanged player costs 3 bytes and an unchanged mode state 1 byte; mode timers are sent in tenths of a second, so they rarely change. If that snapshot is too old, a full one is sent instead, so packet loss can't break it.
- With 8 players all moving, snapshots dropped from about 420 to about 180 bytes; when players are standing still they're much smaller still.
- That's what lets big servers keep higher tick rates.
- Adaptive interpolation delay. Other players used to be drawn a fixed 3 snapshots + 10 ms behind (13 ms at 1000 Hz). The client now measures how late snapshots actually arrive (99th percentile) and uses 2 snapshots plus that, between 1 and 50 ms. On a clean connection enemies are drawn several milliseconds closer to where they really are, and the server rewinds less for hit checks.
- Enemies out of sight aren't sent. The server checks line of sight 20 times a second. Enemies you can't see arrive without a position, so wallhacks get nothing. Their name and score still reach the scoreboard.
- Anyone within 20 m (earshot), teammates, and everyone while you're dead or spectating are always sent.
- A player stays visible for 0.3 s after you lose sight of them, and their movement is extrapolated slightly, so peeks never pop in late.
Online play needs everyone on 0.19.0 (protocol 12).