A network library for real-time client/server games with dedicated servers
C C++ Other
Latest commit 6e70829 Jun 21, 2017 @gafferongames gafferongames updated submodules
Permalink
Failed to load latest commit information.
android/ifaddrs compiles on android Apr 18, 2017
docker updated submodules Jun 21, 2017
netcode.io @ 8bd3a72 updated submodules Jun 21, 2017
reliable.io @ 6749166 updated submodules Jun 21, 2017
tests drop to ipv4 for test Jun 1, 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 updated would be nice Oct 21, 2016
.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 Jun 1, 2017
LICENCE added LICENCE Mar 31, 2017
README.md Update README.md Jun 3, 2017
ROADMAP.md Update ROADMAP.md Jun 1, 2017
TODO updated notes Jun 2, 2017
WOULD BE NICE Update WOULD BE NICE Jun 1, 2017
doxygen.config remove moxygen api.md Jan 4, 2017
premake5.lua updated submodules Jun 21, 2017
yojimbo.cpp added custom yojimbo assert function May 30, 2017
yojimbo.h fix conflicts between yojimbo min/max/clamp/swap and std:: May 25, 2017
yojimbo_adapter.h added custom yojimbo assert function May 30, 2017
yojimbo_address.cpp added custom yojimbo assert function May 30, 2017
yojimbo_address.h added custom yojimbo assert function May 30, 2017
yojimbo_allocator.cpp another coverity fix Jun 1, 2017
yojimbo_allocator.h added custom yojimbo assert function May 30, 2017
yojimbo_bitpack.h added custom yojimbo assert function May 30, 2017
yojimbo_channel.cpp minor comment change Jun 2, 2017
yojimbo_channel.h fixed serious problems with reliability that broke with windows port May 31, 2017
yojimbo_client.cpp updated submodules Jun 21, 2017
yojimbo_client.h netcode.io allocators setup with yojimbo client Jun 2, 2017
yojimbo_config.h relaxed default reliable-ordered channel configuration Jun 20, 2017
yojimbo_connection.cpp fixed serious problems with reliability that broke with windows port May 31, 2017
yojimbo_connection.h gogogo May 30, 2017
yojimbo_matcher.cpp cppcheck fixes Jun 1, 2017
yojimbo_matcher.h cppcheck fixes Jun 1, 2017
yojimbo_message.h added custom yojimbo assert function May 30, 2017
yojimbo_platform.cpp force assert macro to exit 1 so static analysis gets it May 31, 2017
yojimbo_platform.h force assert macro to exit 1 so static analysis gets it May 31, 2017
yojimbo_serialize.h added custom yojimbo assert function May 30, 2017
yojimbo_server.cpp updated notes Jun 2, 2017
yojimbo_server.h updated notes Jun 2, 2017
yojimbo_simulator.cpp added custom yojimbo assert function May 30, 2017
yojimbo_simulator.h added custom yojimbo assert function May 30, 2017
yojimbo_stream.h added custom yojimbo assert function May 30, 2017
yojimbo_utility.cpp added custom yojimbo assert function May 30, 2017
yojimbo_utility.h secure client and server should be working in theory, but client not … May 31, 2017

README.md

Travis Build Status Coverity Scan Build Status

yojimbo

yojimbo is a network library for real-time client/server games that host dedicated servers.

It's designed around the networking requirements of competitive multiplayer games such as first person shooters. As such it provides a time critical networking layer over UDP, with a client/server architecture supporting up to 64 players per-dedicated server instance.

Status

yojimbo is currently in pre-release for early feedback.

Right now it provides support for:

  • Cryptographically secure authentication via connect tokens
  • Client/server connection management and timeouts
  • Signed and encrypted packets sent over UDP
  • Reliable-ordered messages and data blocks
  • Packet fragmentation and reassembly
  • A serialization framework for extending the protocol with custom message types

Work over the past month has been focused on rebuilding the library on top of netcode.io and reliable.io

For more details please refer to the roadmap.

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 game industry.

Glenn is currently writing an article series about the development of this library called Building a Game Network Protocol.

You can support Glenn's work writing articles and open source code via Patreon.

Sponsors

yojimbo is generously sponsored by:

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

License

BSD 3-Clause license.