In-development game engine personal project, currently featuring:
- A multithreaded job/fiber system inspired by Naughty Dog's engine.
- Object-Component system
- Renderer written in OpenGL (intend to support other APIs eventually)
- Custom memory management/allocator
- Collision detection using GJK for the narrow phase and a Bounding Volume Hierarchy for the broad phase
- Math library written from scratch
Engine code included under GRUT Engine/src/
- Core: under
GRUT Engine/src/Core/
- Jobs: job/fiber system managed by
JobManager.h
. - Memory: Custom memory allocation and management managed by
MemoryManager.h
. - Debugging: Debugging tools.
- Jobs: job/fiber system managed by
- Graphics: Managed by
RenderManager.h
underGRUT Engine/src/Graphics/
. Supports OpenGL but written with API abstraction in mind.- Models: model loading
- Shaders: shader loading and compiling
- Windows: window creation and loading
- Input: Managed by
InputManager.h
underGRUT Engine/src/Input/
. - Physics: Managed by
PhysicsManager.h
underGRUT Engine/src/Physics/
. - Scene: Managed by
SceneManager.h
underGRUT Engine/src/Scene/
.- Components: Default components used by GameObjects.
- GameObjects: Default GameObjects.
- Windows
The GRUT Engine is licensed under the MIT license.
Feel free to clone/fork the repository and contact the author.
git clone
the repository, then on the project root run git submodule init
and git submodule update
to update the submodules. Currently being developed using Visual Studio 2017, so no other platforms/compilers have been used to compile the code as of yet.
- Debugging tools
- Scripting system
- Custom shader support
- DirectX support
- Linux and Mac platforms support
- Vulkan support