A secure client/server protocol for multiplayer games built on top of UDP, providing encrypted connections and session management.
Netcode is a secure client/server protocol built on top of UDP specifically for real-time multiplayer games. It provides encrypted connections, session management, and security protections while avoiding the head-of-line blocking issues of TCP. It solves the problem of building secure, connection-oriented networking over UDP without requiring developers to implement low-level session management themselves.
Game developers building multiplayer games who need low-latency, secure networking over UDP without implementing complex connection management from scratch.
Developers choose Netcode because it provides a battle-tested, minimal protocol that handles secure connections and session management, allowing them to focus on game-specific networking logic rather than low-level UDP implementation details.
Secure client/server connections over UDP
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Uses connect tokens to authorize clients, ensuring only backend-approved connections can join, as highlighted in the secure client connection feature for matchmaking systems.
Implements a client slot system with fast denial and cleanup, simplifying server-side client handling and resource allocation, as described in the client slot system.
Encrypts and signs all packets using the sodium library, with protections against replay and amplification attacks, providing a secure foundation against tampering and eavesdropping.
Built on UDP to avoid TCP's head-of-line blocking, offering minimal latency ideal for real-time multiplayer games, as emphasized in the design philosophy.
Provides only unreliable, unordered packets by default; developers must implement their own reliable messaging layer if needed, adding complexity beyond the minimal protocol.
While multiple language implementations exist (C#, Go, Rust), they are community-maintained, leading to potential inconsistencies and slower updates compared to the core C version.
Requires careful handling of private keys and connect tokens, with risks of exposure if mishandled, as cautioned in the README's warning against including keys in client executables.