MultiplayerPlatformer.mp4
A prototype multiplayer game built from scratch in C++ using raylib for graphics and ENet for networking (UDP).
- Server–Client architecture (multiple players supported)
- Real-time updates (UDP-based)
This project is released under the MIT License.
PRs and contributions are always welcome!
Prebuilt binaries are available for Linux in the Releases Section.
server.zip– Run the serverclient.zip– Run the client
For Windows and macOS, build from source (see instructions below).
Make sure raylib and enet are installed (via your package manager or from source). Example (Debian/Ubuntu):
sudo apt install libraylib-dev libenet-dev cmake build-essentialBuild:
git clone https://github.com/kshitijaucharmal/Platformer_RL.git
cd Platformer_RL
cmake -S . -B build
cmake --build build -j$(nproc)Run:
./build/server # start server
./build/client # run client(s)-
Install raylib and ENet manually or via vcpkg.
vcpkg install raylib enet
-
Clone and build:
git clone https://github.com/kshitijaucharmal/Platformer_RL.git cd Platformer_RL mkdir build && cd build cmake .. -DCMAKE_TOOLCHAIN_FILE=[path-to-vcpkg]/scripts/buildsystems/vcpkg.cmake cmake --build . --config Release
-
Run the
server.exeandclient.exebinaries in the build folder.
Install dependencies via Homebrew:
brew install raylib enet cmakeBuild:
git clone https://github.com/kshitijaucharmal/Platformer_RL.git
cd Platformer_RL
cmake -S . -B build
cmake --build build -j$(sysctl -n hw.ncpu)Run:
./build/server
./build/client- Simple platformer in raylib
- Map system using pixel images
- Learning and using ENet
- Server–Client architecture (many players supported)
- Sending basic info (positions only for now)
- Lerping positions
- System for sending any data (batched)
- Hosting server online (Google Cloud)
- Techniques to compress packets
- Deterministic lockstep or snapshot interpolation (experiment & decide)
- Shooting guns in-game
- Simple upgrade system
- Gameover screen, lobby, and main menu (ImGui-based)
This project is licensed under the MIT License.