What is SnapNet?
SnapNet is a software library for synchronizing real-time gameplay over the Internet with a focus on competitive integrity and responsiveness.
It is often difficult to find developers who have experience writing quality netcode and it is not uncommon to have each gameplay developer on a team also be responsible for networking the features they implement. This approach typically results in bugs, exploits, inconsistent responsiveness, and limits development and iteration speed. SnapNet aims to streamline this process so that implementing a game mechanic and networking it are the same thing i.e., all features work online from day one.
SnapNet stands out from its competition in both its feature-set and in the way it maintains competitive integrity.
Here are some of SnapNet’s major features:
- Choose freely between full rollback for genres like fighters or limit client-side prediction to local players for genres like shooters
- Dynamically trade-off input latency and prediction/rollback as network conditions change (fully configurable by game developer based on game genre and desired feel)
- Leverage built-in non-deterministic engine systems such as physics and navmeshes without desyncs
- Play instant replays for just one player e.g., “Kill Cam”, or all players e.g., “Play of the Game”
- Save full match replays to disk or stream them in chunks live during a match
Here are some of the ways SnapNet maintains competitive integrity:
- Prevents DDoS amplification attacks by leveraging stateless cookie verification
- Prevents resource exhaustion via connection flooding using stateless authentication
- Protects the game client from man-in-the-middle attacks through X.509 certificate validation
- Secures communication using end-to-end DTLS encryption
- Limits what cheats are possible due to its server-authoritative simulation
- Maintains simulation quality for players with good connections even in the presence of others with poor connections
- Supports rewinding the entire simulation for lag compensation e.g., for hitscan or projectile weapons
- Replay lag compensation (spectate as the player saw it on their machine)