Skip to content

YGNI-RType/R-Type

Repository files navigation

R-Type

Project Purpose

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

Dependencies

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

Supported Platforms

  • Linux
  • macOS
  • Windows

Build

To compile the project:

cd build
cmake ..
cmake --build .

This process uses vcpkg to install the required dependencies and CMake to handle the build.

Usage

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_server

In an other terminal:

./r-type_server

Alternatively, 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:

GEngine integration

R-Type leverages our internally developed GEngine, which provides the ECS architecture, along with various components and systems such as:

Components

•	Drawable
•	Sprites
•	Texts
•	Animations
•	Transform and velocity
•	Hitboxes

Systems

•	AnimationManager
•	Collisions
•	Keyboard input handling
•	RenderWindow
•	Motion mechanics

GEngine is automatically downloaded and compiled with the cmake .. command.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Authors

  • Adrien AUDIARD
  • Antoine ESMAN
  • Basile FOUQUET
  • Nathan FLATTIN
  • Thomas POMMIER

Useful Links

GEngine Github Repository

R-Type Wikipedia

R-Type in a browser

About

Multiplayer R-Type game using our Game Engine

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 5