r-type  0.0.0
R-Type main
Loading...
Searching...
No Matches
r-type

R-Type Logo

R-Type

CI - Gitleaks CI - R-Type CD - Doxygen documentation CD - Mirror

The Goal of this project is to implement a multithreaded server and a graphical client for a game called R-Type, using an engine of your own design.

Supported Platforms

Platform Compiler Status
Linux g++
macOS g++
Windows MSVC

Project Structure

flowchart LR
subgraph App
subgraph client [Client]
A[Client]
A -->|.a/.lib| B[Engine]
B -->|.a/.lib| C[ECS]
A -->|.a/.lib| D[IGameClient]
B -->|.so/.dll| E[IAudio]
B -->|.so/.dll| F[INetworkClient]
B -->|.so/.dll| G[IRenderer]
end
subgraph server [Server]
H[Server]
H -->|.so/.dll| I[IGameServer]
H -->|.so/.dll| J[INetworkServer]
end
A <==>|TCP/UDP| H
end
R-Type
├── assets # Game assets (images, sounds, etc.)
├── cmake # Cmake configs
├── client # Client source code
├── documentation # Project documentation
├── modules # Static libraries
├── plugins # Dynamic libraries
├── scripts # Build and utility scripts
├── server # Server source code
├── tests # Unit and integration tests
└─── third-party # External libraries as submodules

Build and Run

Important
When cloning the project, you should also initialize the submodules:
git clone --recurse-submodules git@github.com:bobis33/R-Type.git
If you already cloned the project, you can initialize the submodules with:
git submodule update --init --recursive

Prerequisites

Make sure you have the following dependencies installed on your system:

Unix (Linux, macOS)

./scripts/unix/build.sh release
## Or
cmake -S . -B cmake-build-release -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc
cmake --build cmake-build-release -- -j4
## Then
./cmake-build-release/bin/r-type_client ## client
./cmake-build-release/bin/r-type_server ## server

Windows

cmake -S . -B cmake-build-release -G "Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
cmake --build cmake-build-release --config Release
## Then
cmake-build-release\bin\r-type_client.exe ## client
cmake-build-release\bin\r-type_server.exe ## server

Documentation

API documentation is generated using Doxygen and deployed on GitHub Pages. You can find the same documentation as PDF here. More specific documentation for each part of the project can be found in their respective directories:

External Libraries

All dependencies are included as submodules in the third-party directory.

Contributing

➡️ Want to contribute? See CONTRIBUTING.md.