Skip to content

kshitijaucharmal/Platformer_RL

Repository files navigation

Multiplayer Platformer Prototype 🎮

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!


📦 Releases

Prebuilt binaries are available for Linux in the Releases Section.

  • server.zip – Run the server
  • client.zip – Run the client

For Windows and macOS, build from source (see instructions below).


🔨 Building from Source

Requirements


Linux

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-essential

Build:

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)

Windows

  1. Install raylib and ENet manually or via vcpkg.

    vcpkg install raylib enet
  2. 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
  3. Run the server.exe and client.exe binaries in the build folder.


macOS

Install dependencies via Homebrew:

brew install raylib enet cmake

Build:

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

✅ Checklist

  • 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)

📜 License

This project is licensed under the MIT License.

About

Simple Platformer in Raylib

Resources

License

Stars

Watchers

Forks

Packages

No packages published