Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Realtime Game Server

A learning-focused high-performance multiplayer game server built with C++20 and standalone Asio. The project explores UDP networking, asynchronous I/O, state synchronization, load testing, and profiling.

Important

This is an educational work in progress, not a production-ready game server. The server and client applications are currently minimal placeholders; networking experiments live in the tutorial examples while the main architecture is being developed.

Learning goals

  • understand asynchronous network programming with Asio;
  • design a UDP-based protocol for real-time multiplayer games;
  • experiment with game-state synchronization and latency handling;
  • build load-testing scenarios and find performance bottlenecks;
  • learn to profile, measure, and optimize a modern C++ server.

Current structure

apps/
├── client/       # main client entry point
├── server/       # main server entry point
└── tutorials/    # small TCP, UDP, and timer experiments
includes/asio/    # vendored standalone Asio headers
src/              # project source code

Requirements

  • a C++20-compatible compiler;
  • CMake 3.20 or newer;
  • Clang (the provided preset currently points to /usr/bin/clang++);
  • ccache (optional).

The repository includes standalone Asio, so no separate Asio installation is required.

Build

Using the provided debug preset:

cmake --preset Debug
cmake --build build/Debug

Alternatively, configure the project with your own compiler:

cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug
cmake --build build

The build produces the main server and client executables, along with the tutorial executables declared in CMakeLists.txt.

Project status

The repository is at the foundation stage. Planned areas of work include:

  • UDP transport and packet format;
  • connection and session management;
  • fixed-tick simulation loop;
  • state snapshots, interpolation, and reconciliation;
  • reliability mechanisms for selected messages;
  • load-testing tools;
  • profiling, benchmarks, and performance documentation;
  • automated tests and CI.

The list will evolve as experiments turn into working components.

Authorship and AI usage

All implementation work currently present in this repository was written by the author as part of the learning process.

AI agents have been used only to generate and edit the repository description and this README. They have not been used to write the project code so far.

This section will be updated as the project develops to keep a clear record of what was created by the author and what, if anything, was created with AI assistance.

License

No license has been selected yet.

About

A learning-focused high-performance multiplayer game server built with C++20 and Asio, exploring UDP networking, asynchronous I/O, state synchronization, load testing, and profiling.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages