A network library for client/server games with dedicated servers
Clone or download
gafferongames Merge pull request #113 from drichardson/fix-execute-commands
Fix several of the premake5 commands that relied on os.execute.
Latest commit 01e0a0b Nov 14, 2018
Permalink
Failed to load latest commit information.
android/ifaddrs compiles on android Apr 18, 2017
docker Use make -j32 in Dockerfiles to speed up image builds. Nov 14, 2018
matcher Upgrade libsodium to 1.0.16. Nov 14, 2018
netcode.io @ 55fac38 update submodules Feb 17, 2018
reliable.io @ 661b184 update submodules Feb 17, 2018
tlsf move tlsf back into its own directory so coverity doesn't get confused Jan 5, 2017
valgrind Use make -j32 in Dockerfiles to speed up image builds. Nov 14, 2018
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 Upgrade libsodium to 1.0.16. Nov 14, 2018
BUILDING.md Fix premake5 alpha13 warnings. Nov 14, 2018
LICENCE added LICENCE Mar 31, 2017
README.md Update README.md Nov 7, 2017
USAGE.md Enable Syntax Highlighting in USAGE.md Nov 3, 2018
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 several of the premake5 commands that relied on os.execute. Nov 15, 2018
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 proper fix for single message type bug with basic tests Oct 26, 2018
soak.cpp update submodules Aug 15, 2017
test.cpp Remove unused deltaTime constant. Nov 14, 2018
yojimbo.cpp Merge pull request #110 from drichardson/fix-mbedtls-deprecation-warning Nov 14, 2018
yojimbo.h Remove unused murmur_hash_64 function. Nov 14, 2018

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.