@gafferongames gafferongames released this Aug 16, 2017 · 77 commits to master since this release

Assets 2

Changes in this release:

  1. Per-client timeouts can now be specified in the connect token
  2. Negative timeout values disable timeout (useful for debugging)
  3. Negative expire seconds disables token expiry (useful for debugging)
  4. Added netcode_client_get_port and netcode_server_get_port to get the bound socket ports when the bind address has port 0.
  5. Golang and Rust implementations have been moved out to their own repositories so they can have different release cycles.
  6. To implement per-client timeouts the code has been updated to NETCODE 1.01 spec.

@gafferongames gafferongames released this Jul 24, 2017 · 169 commits to master since this release

Assets 2

This is the initial release of netcode.io

Features:

  1. Secure client connection based around connect tokens
  2. Challenge/response for protection against spoofed client IP headers
  3. Protection against being used in DDoS packet amplification attacks in request/response
  4. Encrypted and signed UDP packets once connection is established.
  5. Replay protection so attackers can't intercept and replay old packets.
  6. Support for user overrides for allocator, logging functions and assert function.
  7. Support for loopback client connections with server, for example for local client/server or singleplayer in Call of Duty, Titanfall style.

This code has been extensively unit tested, soak tested as well as having been successfully integrated into yojimbo for several months now.

netcode.io is now production ready!