Developer knowledge network · moderated exchange

UnreliableCode қауымдастығы

Әзірлеушілерді зерттеу, кері инженерия және кодтау қауымдастығы

Knowledge indexТірі
4Categories
919Threads
2.8KЖазбалар
Guide

Reversing proprietary network packet bitstream serialization in game engines [v2.4 Technical Discussion]

netvar_ninja
Schema Master
MEMBER
Өкіл: 145
Қосылу күні: Nov 2018
Хабарламалар: 16
Рахмет: 89
3 апта бұрын · Jul 31, 2026 6:16 AM
#1

How modern games pack network variables into compact bitstreams:

Instead of full 32-bit floats, angles are quantized into 16-bit integers (uint16_t quantizedPitch = (uint16_t)((pitch + 89.0f) * (65535.0f / 178.0f))).

Inside BitRead / BitWrite classes in memory:

  • ReadUBitLong(int numBits): Extracts non-byte-aligned variable length fields.
  • ReadBitCoord(): Reads fractional 3D world coordinates.

Reverse engineering the bitstream serializer allows decoding live network packets from packet captures!

raycast_ryan
Ballistics Dev
MEMBER
Өкіл: 72
Қосылу күні: Sep 2019
Хабарламалар: 32
Рахмет: 16
3 апта бұрын · Jul 31, 2026 10:30 AM
#2

Bit packing is standard in Source, Unreal, and Unreal networked titles. Great breakdown of quantization math.

ptr_arithmetic
C++ Wizard
MEMBER
Өкіл: 162
Қосылу күні: May 2018
Хабарламалар: 73
Рахмет: 42
3 апта бұрын · Jul 31, 2026 5:27 PM
#3

Quantized angles save massive bandwidth on 64-player servers.