netcode.io is a simple connection based protocol built on top of UDP.
It's designed for use in games that host dedicated servers with public IP addresses.
It has the following security features:
- Protection against man-in-the-middle attacks.
- Protection against DDoS amplification attacks.
- Protection against packet replay attacks.
- Protection against zombie clients.
netcode.io is used by several AAA game studios as the foundation of their network code.
It's stable and production ready.
Please refer to the second half of this whitepaper: Why can't I send UDP packets from a browser?
For a complete technical specification, read the netcode 1.02 standard.
This repository holds the reference implementation of netcode.io in C.
This is the primary implementation of netcode, and is always up to date with the latest features.
Other netcode.io repositories include:
- netcode.io C# implementation
- netcode.io Golang implementation
- netcode.io Rust implementation (updated fork of vvanders/netcode.io)
- netcode.io for Unity
- netcode.io for UE4
- netcode.io browser plugin
These people are awesome:
- Val Vanders - Rust Implementation
- Walter Pearce - Rust Implementation
- Isaac Dawson - Golang Implementation
- June Rhodes - C# bindings, browser support, UE4 integration
- Alan Stagner - Unity integration, C# implementation
- Jérôme Leclercq - Support for random connect token nonce
- Randy Gaul - Discovered vulnerability in replay protection
Thanks for your contributions to netcode.io!
The author of this library is Glenn Fiedler.
Other open source libraries by the same author include: yojimbo and reliable.io
Glenn is the founder and CEO of Network Next. Network Next is a radically new way to link networks together, it's a new internet for games, one where networks compete on performance and price to carry your game's traffic. Check it out at https://networknext.com
netcode.io was generously sponsored by:
-
Gold Sponsors
-
Silver Sponsors
-
Bronze Sponsors
And by individual supporters on Patreon. Thank you. You made this possible!