yojimbo is a network library for client/server games written in C++.
It's designed around the networking requirements of competitive multiplayer games like first person shooters.
Generally speaking, if you have a custom game engine written in C++ and you want to network your game, yojimbo is a really good choice.
It has the following features:
- Cryptographically secure authentication via connect tokens
- Client/server connection management and timeouts
- Encrypted and signed packets sent over UDP
- Packet fragmentation and reassembly
- Bitpacker and serialization system
- Unreliable-unordered messages for time sensitive data
- Reliable-ordered messages with aggressive resend until ack
- Data blocks larger than maximum packet size can be attached to reliable-ordered messages
- Estimates of latency, jitter, packet loss, bandwidth sent, received and acked per-connection
yojimbo is stable and production ready.
You can get the latest source code by cloning it from github:
git clone https://github.com/mas-bandwidth/yojimbo.git
Alternatively, you can download the latest release.
The author of this library is Glenn Fiedler.
Yojimbo is built on top of other open source libraries by the same author: netcode, reliable, and serialize
If you find this software useful, please consider sponsoring it. Thanks!