/GameNetworkingResources

A Curated List of Game Network Programming Resources

Primary LanguageC

Game Networking Resources

Game Networking (aka multiplayer networking or netcode) is the synchronization of game state and events between multiple players connected over the network. It focuses on the inherent challenges of multiplayer online games such as latency, jitter and packet loss, mitigating through sophisticated algorithms and techniques, including prediction, compensation, reconciliation, interpolation and other mechanisms. It is also often deeply involved and integrated with other game systems such as physics, animation and gameplay.

Articles

Talks

Libraries

  • C / C++
    • ENet - Simple and robust reliable UDP networking library.
    • GameNetworkingSockets - Valve's internal (Steam) network transport layer for games.
    • GGPO - Good Game, Peace Out Rollback Network SDK.
    • KCP - A fast and reliable ARQ protocol.
    • netcode - Secure connection-based client/server protocol built on top of UDP (C, C#, Rust, Go etc...)
    • RakNet - (Inactive) Full-featured and mature reliable UDP networking engine.
    • Reliable - A packet acknowledgement system for UDP (C).
    • Serialize - A simple bitpacking serializer for C++.
    • Snapnet - AAA netcode for real-time multiplayer games.
    • TNL2 - (Inactive) Torque Networking Library 2 which is quite similar to TRIBES Networking Model.
    • yojimbo - Reliable UDP networking library for client/server games with dedicated servers (C++).
  • C#
    • Barebones Master Server - Backend framework with auth, profile, lobby, chat features for Unity.
    • DarkRift 2 - Unity focused high-performance multi-threaded multiplayer networking solution.
    • FishNet - Unity networking solution aimed towards reliability, ease of use, efficiency, and flexibility.
    • Forge Networking - Unity focused real-time multiplayer networking solution.
    • Lidgren.Network - Reliable UDP networking library (.NET/Mono/Unity).
    • LiteNetLib - Lite reliable UDP networking library (.NET/Mono/Unity).
    • MagicOnion - Unified Realtime/API framework for .NET platform and Unity.
    • Mirror - A community replacement for Unity's abandoned UNET Networking System.
    • Netcode for Entities - Unity's official netcode SDK for Entities workflows.
    • Netcode for GameObjects - Unity's official netcode SDK for GameObject workflows.
    • Netick - A server-authoritative networking solution for Unity.
    • NetStack - Lightweight toolset for creating concurrent networking systems for multiplayer games.
    • Networker - TCP and UDP networking library (.NET/Unity).
    • Normcore - Seamless multiplayer game networking for Unity (Cloud/SaaS).
    • Photon Engine - Hybrid multiplayer game networking platform (Cloud/SaaS).
    • RiptideNetworking - Lightweight C# networking solution for multiplayer games.
    • SocketWeaver - Multiplayer cloud services designed for the Unity engine (Cloud/SaaS).
  • Go
    • Nakama - Open-source backend infrastructure for multiplayer games (also with Unity/C# SDK).
    • GoWorld - Scalable Distributed Game Server Engine with Hot Swapping (and Unity demo!).
  • Java
    • SmartFoxServer - Massive multiplayer game server with advanced built-in features.
  • JavaScript
    • Actionhero - A node.js API server framework for TCP sockets, websockets and HTTP clients.
    • Colyseus - Authoritative multiplayer game server backend framework.
    • Kalm - Socket manager/optimizer library with custom congestion control for Node.js and browsers.
    • SocketCluster - Scalable multi-process HTTP & real-time server framework.

Tools

  • CapAnalysis - Web visual tool to analyze captured network traffic. (Ubuntu, Debian)
  • clumsy - Network condition simulation utility. (Windows)
  • netem - Network emulation for testing protocols. (Linux)
  • matchmaker - Matchmaking simulator with real worldwide player data (Go).
  • mitmproxy - Web debugging proxy server. (Windows, macOS, Linux)
  • Network Link Conditioner - Network environment simulation utility. (macOS, iOS)
  • Network Protocol Analyzer - Tool for analysing, debugging and monitoring connections. (Windows)
  • Network Simulator (ns) - Network simulator targeting research and educational use. (macOS, Linux)
  • Postman - Web API debugging and development client. (Windows, macOS, Linux)
  • websocat - CLI client for WebSockets like netcat or curl. (Windows, macOS, Linux)
  • Wireshark - Network traffic analyzer tool. (Windows, macOS, Linux)

License

CC0