The talk is fascinating and has several videos to illustrate situations and tools (it is thus a very large download at 542MB!). David was lead network engineer on this project. There are lots of interesting insights on practical use of scalability techniques. As is common for modern FPS games, they used a hosted client model, so that one of 16 players was acting as server. This server was authoritative for certain key events.
One key discussion is that around reliability and unreliability. We point this out in the book, and David makes an important point that not only does the difference between the two affect gameplay, but that gameplay may be changed to support the network situation. The decision about reliability depends on the event or state type, but also the latency as which the state change can be communicated. There are good examples of changing the event sequencing for particular game actions, so that the necessary plausibility is preserved, but hiding the lag somewhere in the message sequence.
The fact that messages might be reliable or unreliable means that there is to prioritize traffic. Some mention is made of a message prioritisation system that looks at outgoing packet sizes and rates and then schedules particular message in to them.
Bungie were already well known for the sophistication of their telemetry and gameplay diagnostic tools. The networking layer is no exception with real-time diagnostic tools to watch traffic to and from the client host.
The following networking stats were observed in the game:
- Minimum total upstream for the host of a solid 16 player game
- Maximum total upstream bandwidth use from a single peer
- Maximum bandwidth sent to one client from a host
- Host upstream required to replicate one biped to one client at combat
- 10hzMinimum packet rate for solid gameplay-bash: 10hzMinimum: command not found
- Maximum latency for close-quarters gameplay for tournament/casual
- Maximum latency for ranged gameplay for tournament/casual
Other interesting observations: ragdolls were synchronised in previous games, but only initial state in Halo: Reach. The bandwidth of Halo: Reach is lower than Halo 3. The networking design was based on that TRIBES Engine Networking Model, Frohnmayer and Gift, GDC 1999. We discuss that model in the book.