Netcode
Both server and client sides of Q2PRO fully support the following network protocols:
- 34, final version of the original Quake2 protocol.
- 35, enhanced R1Q2 protocol.
- 36, enhanced Q2PRO protocol, extension of R1Q2 protocol.
Key features of Q2PRO protocol from technical perspective:
- Decoupled outgoing client packet rate, physics frame rate and rendering frame rate.
- Client is capable of sampling user input each frame but sending movement intentions in batches every few frames. This allows you to take advantage of high physics frame rate while keeping outgoing bandwidth adequate.
- Adjustable number of backup batches included in each client packet. Can be turned off completely for extra bandwidth savings over reliable connections.
- Server doesn't send player entity coordinates every frame as client regenerates them from playerstate. Dynamic lights and sounds associated with client entity no longer lag behind your locally predicted position.
- Server is able to filter gibs/footsteps on per-client basis.
- Netchan level packet fragmentation support with possible
asynchronous delivery (i.e. fragments are sent with less then 100 ms
granularity as soon as client
ratelimit allows). No more frame overflows in mods with extremly high activity. Faster map load times due to the higher game state compression ratio, as all configstrings and baselines are compressed in a single pass. - Per-key delta userinfo updates. E.g. if you often update your FOV setting, only a few bytes will be transmitted instead of the whole userinfo string.
- Ability to dynamically update client entity number. Needed for in-eyes chasecam mode to work properly. This requires support from the game mod, currently provided by the MVD subsystem and modern mods such as OpenTDM.