Renderwerk is my passion project, a game/rendering engine that I am developing in my free time. It is not intended to be a production-ready engine, but rather a playground for me to learn about graphics programming and experiment with different ideas and concepts. I started the project around the end of 2021, and it went through a lot of changes, rewrites and iterations since then. The engine is written in C++ and uses Vulkan as the primary rendering API. The project is still in its early stages, and there is a lot of work to be done. I am working on it in my free time, so progress might be slow.
The roadmap is a rough outline of the features that are planned to be implemented in the engine. The list is not exhaustive and will be updated as the project progresses. The features are not listed in any particular order.
- Job System
- Memory Allocators
- Memory Tracking (with support for stl structures)
- Channel based logging using spdlog
- Performance Profiling with tracy
- Vulkan Rendering
- DirectX12 Rendering
- Mesh Shading Pipeline
- Custom container structures (Vector, Map, etc.)
- String hashing for fast string comparisons and lookups (Unreal Engines
FName
as an example)- String lookup table
- Slang Support
- Node based Editors for Materials, Shaders, Renderpasses, etc.
- Debugging tools
- Python 3.9 or above
- Visual Studio 2022 or Visual Studio Build Tools 2022 with the following components:
- Desktop development with C++
- MSVC v143
- Windows 11 SDK (10.0.26100.0 or above recommended, not tested with older versions)
After cloning the repository, run the following commands in the root directory (Choose the appropriate scripts for your OS):
# Windows
.\CLI.bat setup
This command will install the necessary dependencies and tools required to build the project. It will also generate the Visual Studio solution file.
If you encounter any issues with the build system, you can clean the workspace with the following commands:
# Windows
.\CLI.bat clean
This will remove all build artifacts, intermediate files, manually downloaded dependencies and tools. You need to run the setup script again to restore the workspace to a working state.
See LICENSE for more information.