C++ Game Engine with networking
R-Type is an old arcade game.
Our goal is to implement this game with a multithreaded server, a client, and a game engine.
This is a shoot'em'up, where 1 to 4 players fight against enemies, bosses and more in multiple levels.
The project is built using CMake, with an overlay using justfiles to add existing rules. You can see all the rules of the justfile here.
The project is done in C++20, and build using CMake. All other dependencies are built with cmake using FetchContent. We use:
SFMLfor display of Client's elementsGoogleTestsfor unit testsGoogleBenchmarksfor benchmarksDoxygenfor documentation, they are generated with man formatjustfileto compile, lint and test the project
We implemented the R-Type with the following features:
- A multithreaded server, handling multiple rooms, solo games, levels, and more
- A graphical client, that is also multithreaded
- A
Entity Component System, as well as a Game Engine - A client-server communication protocol
To have more information, look at the docs folder.
There is also a wiki.
The details are on the wiki's page to known how to startr contributing on the project.
You can create a new branch: feature/<what-you-are-implementing>, push and then make a pull request to release a new version of the project on main.