Grapple (network layer)
|Original author(s)||Michael Simms
of Linux Game Publishing
|Stable release||0.9.8 / August 8, 2009|
|License||GNU Lesser General Public License|
Grapple is a free software package for adding multiplayer support to computer games and applications. It uses Internet protocols, supporting both TCP/IP and UDP/IP. It is intended to be simple enough that multiplayer features can be added to a game "as little as a dozen lines of code", but also offers advanced features if desired.
Grapple takes care of creating, monitoring and closing connections to a server, and supports multiple servers. It is a message-oriented system, with clients and servers each having a message queue; it can also relay messages from client to client. It also provides a fully functional lobby system.
The features grapple supports at this time is:
- Simple client-server networking
- Keeps all clients aware of all other clients
- Network messaging by either a push or a pull model, or a mixture of both
- Unlimited connections to multiple servers.
- Multiple methods of querying users
- Data transfer via TCP, UDP, or reliable UDP
- Passworded servers
- User Groups for client bandwidth saving
- Server security - server can disconnect any client
- Network load reacting data transmission and retransmission
- Background pinging to monitor network states
- A fully functional lobby system
- Server failover
- NAT traversal using STUN
Games using Grapple 
- Ballistics (Linux Version) by Linux Game Publishing
- Candy Cruncher (Linux Version) by Linux Game Publishing
- Jets'n'Guns (Linux Version) by Linux Game Publishing
- Knights and Merchants: The Shattered Kingdom (Linux Version) by Linux Game Publishing
- Majesty: Gold Edition (Linux Version) by Linux Game Publishing
- Sacred: Gold (Linux Version) by Linux Game Publishing
Applications using Grapple 
- PenguinPlay, Multiplayer matchmaker for games.