EVERYTHING XIAOMI
Get listed

netcode.io

netcode.io is an open-source client/server protocol for real-time multiplayer games, using UDP to exchange unreliable, unordered packets.

Place
#14 of 26
Score
6.6
netcode.io's website

What netcode.io is

netcode.io is an open-source client/server protocol for real-time multiplayer games, using UDP to exchange unreliable, unordered packets. It offers a minimal connection-oriented layer without TCP head-of-line blocking. A game backend can issue connect tokens to authorize clients, and servers place them into configured slots, refusing connections when all slots are occupied. The protocol supports clean disconnects from either side and uses timeouts to identify hard disconnects. Packets are encrypted and signed with libsodium, with protections described for crafted packets, replay attacks and amplification attacks. It supports IPv4 and IPv6, plus packet tagging intended to reduce Wi-Fi jitter. Implementations are listed for C, C#, Go, Rust, Unity, Unreal Engine 4 and TypeScript. Matchmaking is not included. The project is BSD 3-Clause licensed, with no paid plans or usage limits stated. Its maker says it builds with CMake on Windows, macOS and Linux; the default build uses a vendored libsodium subset and requires CMake 3.16 or later. The documented connection flow has a client request a connect token from a REST API on the game backend.

Good

  • Exchanges UDP packets without TCP head-of-line blocking.
  • Connect tokens let a backend authorize clients.
  • Encrypts and signs packets using libsodium.
  • Supports IPv4 and IPv6 connections.
  • Implementations are listed for several languages and engines.

Watch out

  • Matchmaking is not included.
  • Build setup requires CMake 3.16 or later.
  • The documented connection flow relies on a game backend REST API.

Who it suits

It suits game developers implementing client-server networking for real-time multiplayer games who need token-authorized connections and UDP packet exchange. It does not provide matchmaking, so teams needing that function would need to account for it separately.

Verdict

netcode.io provides a focused UDP protocol for authorized client-server game connections, with packet security and multiple listed implementations. It leaves matchmaking outside its scope, and building it requires CMake 3.16 or later.

Plans and prices

From netcode.io's own pricing page, checked 9 Oct 2001.

All about pricing
PlanPriceWhat it gives you
netcodeFreeBSD 3-Clause licensed library · no paid plans or usage limits stated

The facts

Each one read from netcode.io's own pages, with the date it was checked.

What it does

Authorized access
Connect tokens let a game backend authorize which clients can connect to a server.checked 8 Oct 2001
Backend integration
The documented connection flow has a client request a connect token from a REST API on the game's backend.checked 9 Oct 2001
Build requirements
The C library builds with CMake 3.16 or later on Windows, macOS, and Linux, and includes a vendored libsodium subset.checked 9 Oct 2001
Client authorization
Connect tokens let a game backend authorize which clients may connect to a server.checked 9 Oct 2001
Client slots
Servers assign clients to slots and deny connections when all slots are occupied.checked 8 Oct 2001
Connection model
It provides a minimal connection-oriented protocol over UDP for exchanging unreliable, unordered packets.checked 8 Oct 2001
Disconnects
The protocol supports clean client- or server-side disconnects and timeouts for hard disconnects.checked 8 Oct 2001
Encryption
Packets are encrypted and signed using the libsodium cryptography library.checked 9 Oct 2001
Implementations
The repository provides a C implementation and links to C#, Go, Rust, Unity, Unreal Engine 4, and TypeScript implementations.checked 9 Oct 2001
Intended users
The maker describes the protocol for real-time multiplayer games and shows a backend issuing connect tokens after matchmaking.checked 8 Oct 2001
Known version issue
The project says a nonce-reuse issue affected versions 1.3.5 and earlier and was fixed in 1.4.0.checked 9 Oct 2001
License
The C implementation is released under the BSD 3-Clause license.checked 9 Oct 2001
Network support
The protocol supports IPv4 and IPv6 connections and packet tagging to reduce Wi-Fi jitter.checked 9 Oct 2001
Packet delivery
It lets applications exchange unreliable, unordered packets over UDP without TCP head-of-line blocking.checked 9 Oct 2001
Packet security
Packets are encrypted and signed, with protections against crafted packets, replay attacks, and amplification attacks; cryptography uses libsodium.checked 8 Oct 2001
Purpose
netcode is a secure, connection-oriented client/server protocol for multiplayer games built on UDP.checked 9 Oct 2001
Security reporting
Vulnerability reports can be submitted privately through GitHub or by email, and fixes are made on the latest release without backports to older release lines.checked 9 Oct 2001
Server slots
Servers assign connecting clients to a configured slot and deny connections when all slots are occupied.checked 9 Oct 2001
Support
The maintainer asks users with build questions to open a GitHub issue and says he will do his best to help.checked 9 Oct 2001
Threat protection
The project describes protections against crafted packets, replay attacks, and packet amplification attacks.checked 9 Oct 2001

Where it runs

Build platforms
The maker says netcode builds with CMake on Windows, macOS, and Linux.checked 8 Oct 2001

Alternatives to netcode.io

All alternatives
  1. 1Colyseus logo

    Colyseus

    Free planOpen sourceAndroidiOSWebAPI
    8.5From $15 a month
  2. 2Unity logo

    Unity

    Free planAndroidiOSWebLinux
    7.8Free plan
  3. 3Normcore logo

    Normcore

    Free planAndroidiOSWebLinux
    7.5From $49 a month
  4. 4Photon Realtime logo

    Photon Realtime

    Free planAndroidiOSWebAPI
    7.5From $0.29 a month
  5. 5

    SmartFoxServer

    Free planAndroidiOSWebAPI
    7.5From €32.50 a month
  6. 6Photon Fusion logo

    Photon Fusion

    Free planAndroidiOSWebLinux
    7.4From $0.50 a month