This project is an educational reproduction of the classic R-Type game. It serves as our first "product" project, where we must consider product constraints and maintain a clean architecture, particularly through the use of an Entity Component System (ECS).
- raylib: Graphics library
- GEngine: Internal engine providing ECS with pre-built components and systems and a networking layer
- stduuid: C++ UUID library
- vcpkg: Package manager to install the dependencies
All dependencies are installed via vcpkg, which is automatically downloaded if not present on the system.
- Linux
- macOS
- Windows
To compile the project:
cd build
cmake ..
cmake --build .This process uses vcpkg to install the required dependencies and CMake to handle the build.
Once compiled, the game requires both a server and a client to run. To start the server, and then the client, use the following commands in the build folder:
./r-type_serverIn an other terminal:
./r-type_serverAlternatively, you can use the run.sh script located at the root of the repository to automatically start both the server and the client in one terminal session:
R-Type leverages our internally developed GEngine, which provides the ECS architecture, along with various components and systems such as:
• Drawable
• Sprites
• Texts
• Animations
• Transform and velocity
• Hitboxes
• AnimationManager
• Collisions
• Keyboard input handling
• RenderWindow
• Motion mechanics
GEngine is automatically downloaded and compiled with the cmake .. command.
This project is licensed under the MIT License. See the LICENSE file for details.
- Adrien AUDIARD
- Antoine ESMAN
- Basile FOUQUET
- Nathan FLATTIN
- Thomas POMMIER