A network library for client/server games with dedicated servers
C C++ Other
Latest commit c1f06f1 Nov 7, 2017 @gafferongames gafferongames Update README.md
Permalink
Failed to load latest commit information.
android/ifaddrs compiles on android Apr 18, 2017
docker fix docker copy files on windows Aug 16, 2017
matcher update submodules Aug 16, 2017
netcode.io @ 154226e update submodules Aug 16, 2017
reliable.io @ 4bd1cc7 update submodules Aug 16, 2017
tlsf move tlsf back into its own directory so coverity doesn't get confused Jan 5, 2017
valgrind added valgrind test Jun 1, 2017
windows update windows Jul 15, 2017
.gitignore added valgrind test Jun 1, 2017
.gitmodules submodule fix May 30, 2017
.sublime add file Nov 16, 2016
.travis.yml added valgrind test Jun 1, 2017
BUILDING.md Update BUILDING.md Jul 15, 2017
LICENCE added LICENCE Mar 31, 2017
README.md Update README.md Nov 7, 2017
client.cpp fixed client and server get address to get bound socket port from net… Aug 15, 2017
client_server.cpp update submodules Aug 15, 2017
doxygen.config doc pass Jul 26, 2017
loopback.cpp windows fixes Aug 16, 2017
premake5.lua fix matcher on windows Aug 16, 2017
secure_client.cpp work in progress converting golang connect token creation Aug 15, 2017
secure_server.cpp fixed client and server get address to get bound socket port from net… Aug 15, 2017
server.cpp fixed client and server get address to get bound socket port from net… Aug 15, 2017
shared.h update submodules Aug 15, 2017
soak.cpp update submodules Aug 15, 2017
test.cpp update submodules Aug 15, 2017
yojimbo.cpp Merge branch 'master' of github.com:manpat/yojimbo Aug 18, 2017
yojimbo.h Merge branch 'master' of github.com:manpat/yojimbo Aug 18, 2017

README.md

Travis Build Status Coverity Scan Build Status

yojimbo

yojimbo is a network library for client/server games with dedicated servers.

It's designed around the networking requirements of competitive multiplayer games like first person shooters.

As such it provides a time critical networking layer on top of UDP, with a client/server architecture supporting up to 64 players per-dedicated server instance.

Status

yojimbo is production ready.

It provides:

  • Cryptographically secure authentication via connect tokens
  • Client/server connection management and timeouts
  • Encrypted and signed packets sent over UDP
  • Reliable-ordered messages and data blocks
  • Packet fragmentation and reassembly
  • Estimates of packet loss, latency and bandwidth usage

Source Code

You can get the latest source code by cloning it from github:

  git clone https://github.com/networkprotocol/yojimbo.git

After cloning, make sure to run this command to populate the netcode.io and reliable.io submodules:

  git submodule update --init --recursive

Alternatively, you can download one of the latest releases

Author

The author of this library is Glenn Fiedler, a recognized expert in the field of game network programming with over 15 years experience in the industry.

Glenn is now focusing on his new startup Network Next.

Sponsors

yojimbo was generously sponsored by:

And by individual supporters on Patreon. Thank you. You made this possible!

License

BSD 3-Clause license.