Network Libraries

High level

  • RakNet: Linux and Windows. Free for non-commercial products. Indy licenses available. From the web page: "RakNet is a networking API that is a wrapper for reliable UDP and higher level functionality on Windows, Linux, and Unix. It allows any application to communicate with other applications on the same computer, over a LAN, or over the internet. Although it could be used for any networked application, it was developed specifically for rapid development of online games and the addition of multiplayer to single player games."
  • irrNet (ENet wrapper) by BlindSide Windows and Linux. zlib/libpng License. From the web page: "irrNet is a Network Framework for irrlicht incorporating ENet."
  • Zoidcom: Linux and Windows. Free for non-commercial products. From the web page: "The Zoidcom network library is a high-level, UDP based networking library providing features for automatic replication of gameobjects and synchronization of their states over a network connection in a highly bandwidth efficient manner. This is achieved by multiplexing and demultiplexing object information from and into bitstreams, which make it easily possible to avoid sending redundant data. Bools only take one single bit, integers and floats are stripped down to as many bits as needed."
  • Grapple: Cross-platform, LGPL. From the web page: "Grapple is designed to be a simple network layer, allowing the addition of multiplayer features to a game (or other application) for as little as a dozen lines of code. However it is also fully featured, so if you want more from your networking, you can have it."
  • Openplay: Cross-platform, APL 1.1. From the wikipedia page: "OpenPlay is a high-level networking solution for game applications. It is known for its abstraction of game and player on top of an automatically managed networking core."

Low Level

  • ENet: Linux, Unix and Windows. MIT style license. From the web page: "ENet's purpose is to provide a relatively thin, simple and robust network communication layer on top of UDP (User Datagram Protocol). The primary feature it provides is optional reliable, in-order delivery of packets.

    ENet is NOT intended to be a general purpose high level networking library that handles authentication, lobbying, server discovery, compression, encryption and other high level, often application level or dependent tasks."
  • Boost ASIO: Boost.Asio is a cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach.
  • Practical C++ sockets Linux and Windows. GPL License. From the web page: "This library was developed for pedagogical use and is not suitable for production applications. Practical C++ Sockets provides wrapper classes for a subset of the Berkeley C Socket API for TCP and UDP sockets. In writing the code, we often chose clarity over efficiency."
  • irrNetLite (ENet wrapper) by BlindSide
  • HawkNL: Linux, Windows, Solaris, IRIX, AIX, BSD, MacOS. LGPL License. From the web site: "HawkNL (NL) is a fairly low level API, a wrapper over Berkeley/Unix Sockets and Winsock. But NL also provides other features including support for many OSs, groups of sockets, socket statistics, high accuracy timer, CRC functions, macros to read and write data to packets with endian conversion, and support for multiple network transports."
  • DirectPlay(DEPRECATED): Windows. Part of DirextX. From the web site: "The DirectPlay application programming interface (API) provides developers with the tools to develop multiplayer applications such as games or chat clients."
  • SFML-Network: Cross-platform. Simple and Fast Multimedia Library. Provides UDP and TCP packet and selector (multiple packet) handling and transfer, taking care off endian mismatches and other low-level problems automatically.

Libraries for .NET

  • Lidgren Library: Windows. Should work out of the box under Linux and MacOS with Mono. Modified BSD license. From the web site: "Lidgren.Library.Network is a pure c# networking library using a single UDP socket which delivers a simple API for connecting a client to a server, reading and sending messages."
  • APlay Communication Engine: Closed source (free for non-commercial use), multi-platform "multiplayer engine", which offers an online UML like designer and code generator to create personalized C# code that reflects your game structure and takes care of all communication.