Rush is a graphics engine in the early development stages. Though it is currently only tested on Linux the end goal is platform independence.
To build Rush from scratch, including all dependencies (See Dependencies for more info), start off by cloning the repo and all submodules:
On Linux:
$ git clone https://github.com/Orctonk/Rush-Engine.git --recurse-submodules
The program can then be build using CMake:
On Linux:
$ mkdir Rush-Engine/build && cd Rush-Engine/build
$ cmake .. && cmake --build .
This will build the Rush library as well as the Rudder editor. If you wish to simply use the Rush library, please refer to the Sandbox Application
Rush is currently pretty bare-bones and provides only the most basic features. These include:
- Basic window management.
- Basic 3D-rendering.
- Basic model loading and materials.
- Basic Framebuffers.
- Basic Editor.
- Event system.
- Basic layer stack for event propagation.
While Rush is pretty bare-bones currently. Many more features are planned for the future:
- More advanced material system.
- More flexible model loading.
- Particle system.
- Camera manager.
- Scene saving and loading.
- Instrumentation.
- Custom platform agnostic file utilities.
Rush is built using CMake and uses the following external libraries:
- Assimp for model loading.
- Stb_image for texture loading.
- ImGui for GUI rendering.
- EnTT for entity management.
- GLM for mathematics.
Additionally, Rush currently only support OpenGL. As such both GLFW and Glad are required.
All these dependencies are included as submodules to this repository and can be built from source. However, due to the size of Assimp, this library can be located on the local machine if installed to reduce overall compile times. This is done by setting the RUSH_BUILD_ASSIMP
option in CMake, which is on by default.