Skip to content

An ECS game engine complete with networking and an r-type game

License

Notifications You must be signed in to change notification settings

legolas-tek/r-type

Repository files navigation

Logo

Static Badge GitHub issues GitHub Workflow Status (with event) GitHub Workflow Status (with event) GitHub top language

Here you will find an R-Type game, as well as a complete networking system, but mostly, a complete open-source game engine (ECS) 🎮


PELAB's R-Type and Game Engine 🎮

This repository contains an open-source ECS developed in C++. This engine is completely modular and is waiting for your contribution. There's plenty of work to do concerning the other features of R-Type:

  • The network protocol, like any other protocol, has room for improvement.
  • The R-Type game implementation can always have more features added.
  • Any other game could be developed using the ECS game engine.

Needed Dependencies ⚙️

This project will use various dependencies, some are basic, and others are more specific. You can install the specific ones with the following commands:

For Ubuntu:

sudo apt install git cmake clang

For Fedora:

sudo dnf install git cmake clang

For ArchLinux:

sudo pacman install git cmake clang

For macOS:

brew install git cmake

Build the Project 🛠️

After installing the necessary dependencies, in order to build the project, use CMake. Follow these steps:

Clone the project:

git clone https://github.com/legolas-tek/r-type.git

Go to the project directory:

cd r-type

Build using CMake:

cmake -Bbuild -DCMAKE_BUILD_TYPE=Release

If you specifically want to build for your platform, use the right preset:

For Linux:

cmake -Bbuild --preset linux-amd64 -DCMAKE_BUILD_TYPE=Debug -DDEBUG_NETWORK=1

For Windows:

cmake -Bbuild --preset x64-debug -DCMAKE_BUILD_TYPE=Debug

For macOS:

cmake -Bbuild --preset macos-arm64 -DCMAKE_BUILD_TYPE=Debug

Then, you can finally build:

cmake --build build

Documentation 📖

In addition to the developer documentation, some other documentation is available on our GitHub Wiki:

And more documentation is available on the Wiki.


Contributing 🤝

Contributions are always welcome! See CONTRIBUTING.md for ways to get started. Please adhere to this project's code of conduct.