R-Type
Distributed multiplayer game engine in C++
Loading...
Searching...
No Matches
๐Ÿš€ R-Type | HexaTeam

‍**A high-performance, multiplayer space shooter engine based on a custom ECS architecture, developed for the Epitech

curriculum.**


๐Ÿ“Š Project Status & CI/CD

Build Status Windows Build Documentation Coverage

SonarQube Cloud

Multi-Platform Support

This project compiles and runs on:

  • Linux Linux (GCC 7+ / Clang 6+)
  • macOS macOS (Apple Clang / ARM64 & x86_64)
  • Windows Windows (MSVC 2019+)

๐Ÿ›  Core Technical Features

  • Custom ECS Engine: Optimized Entity-Component-System for high-performance game logic.
  • Asynchronous Networking: Robust Client/Server communication powered by Asio (UDP protocol).
  • Cross-Platform Core: Native support for Linux, Windows, and macOS with a unified build system.
  • Asset Management: Centralized system for dynamic loading of textures, fonts, and audio.
  • Automated Pipeline: Full CI/CD integration for testing and documentation deployment.

โš™๏ธ Installation & Build

Linux (Debian/Ubuntu)

1. Install System Dependencies

sudo apt update && sudo apt install -y build-essential cmake git curl zip unzip tar pkg-config \
libx11-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev libgl1-mesa-dev

2. Clone and Compile

git clone --recursive https://github.com/HexaTeam-By-Epitech/rtype.git
cd rtype
make debug

Windows

1. Install Prerequisites

choco install cmake git make -y
  • Visual Studio 2022: Install **"Desktop development with C++"** via the VS Installer. Ensure the following are checked:
  • MSVC v143 build tools
  • Windows 10/11 SDK
  • C++ CMake tools for Windows

2. Clone and Compile

git clone --recursive https://github.com/HexaTeam-By-Epitech/rtype.git
cd rtype
make debug

‍๐Ÿ’ก Note: The initial build may take 5-10 minutes as vcpkg automatically handles dependency resolution.

</blockquote>

๐ŸŽฎ How to Play

Running the Project

The project consists of two main binaries: the Server (logic) and the Client (graphics/input).

Component Linux Command Windows Path
Server ./build/linux-debug/server/r-type_server .\build\windows-debug\server\Debug\r-type_server.exe
Client ./build/linux-debug/client/r-type_client .\build\windows-debug\client\Debug\r-type_client.exe

Alternatively, use the root shortcuts: make run-server or make run-client.


๐Ÿงช Testing & Quality Assurance

We use a comprehensive suite of unit tests to ensure engine stability:

make tests

๐Ÿ†˜ Troubleshooting

Issue Resolution
vcpkg Installation Failure Ensure a stable internet connection. The first build downloads several hundred MBs of dependencies.
CMake: Command not found Restart your terminal after installing CMake to refresh the Environment Variables (PATH).
Visual Studio Instance Error Verify that "Desktop development with C++" is fully installed in the Visual Studio Installer.

๐Ÿ“„ Documentation

๐Ÿ“š Online API reference
๐Ÿ‘‰ https://hexateam-by-epitech.github.io/rtype/html

Includes:

  • Engine design overview
  • Network model
  • Build & setup guide

๐Ÿ‘ฅ Contributors

A huge thanks to the HexaTeam developers:

mael-app IamSwan SamuelBleau Water-s0urce Hugo-Fabresse


License

This project is licensed under the GPL-3.0 License - see the [LICENSE](LICENSE) file for details.