A Network Library for competitive realtime multiplayer games.
NOTE: Beginning January 1st, 2026, no further updates will be publicly released for this project in order to comply with my employer’s policies. I apologize for any inconvenience this may cause.
This repository contains four different projects:
- Network library
- Demo game. Docs
- Common (Shared files between Demo game and Network Library projects)
- Tests
Implementation Legend: 🔲 Not Yet 🔰 Partially ✅ Done ❌ Won't do
- ✅ UDP protocol
- ✅ RUDP protocol
- 🔰 Connection pipeline (It's not customizable)
- ✅ Time Synchronization
- ✅ World Replication
- 🔰 Server-Side Inputs Buffer (Naive version)
- 🔲 RPCs
- 🔲 Delta Snapshots
- ✅ Reliable Ordered
- ✅ Unreliable Unordered
- 🔰 Reliable Unordered
- 🔲/❌ Unreliable Ordered
- ✅ Message Level ACKs
- ✅ Dynamic Message Retransmission Timeout (based on connection's RTT)
- ✅ Latency
- ✅ Jitter
- ✅ Packet Loss
- ✅ Upload Bandwidth
- ✅ Download Bandwidth
- 🔲 Upload Bandwidth per Channel
- 🔲 Download Bandwidth per Channel
- ✅ Out Of Order Count
- ✅ Retransmissions Count
- ✅ Duplicates Count
- Download the project locally (Fork, clone, copy & paste...)
- Generate project files using premake5. In my case, I use Visual Studio 2022, so I will open CMD, navigate to the repository folder, and type "vendor/premake5/premake5 vs2022". However, you will need to replace vs2022 with your preferred option.
- Choose which project you want to set as the Start Up (DemoGame or Tests), compile and generate the .exe file.
- If you wish to run Tests, simply open its .exe file. However, if you want to run DemoGame, you'll need to copy SDL2 dll files from "vendor/sdl" into Demogame .exe folder.