Unhuman Engine (UHE) is a lightweight, highly extensible C++ game engine designed for real-time applications and game development. It utilizes a modern Vulkan RHI backend, compiles shaders via Slang, and features a fully integrated ImGui editor.
- Modern Graphics Backend: Fully abstracted Render Hardware Interface (RHI) running on Vulkan.
- Slang Shader Compiler: Next-generation shading language support with dynamic compilation and SPIR-V generation.
- UHE Editor: A robust, dockable ImGui-based editor (
UHE_EDITOR) for scene inspection, profiling, and asset management. - Entity Component System: A fast, data-driven scene system (
entt) supporting native script components and serialization. - 2D & 3D Physics: Integrated physics handling with
Box2D and jolt(in future). - AAA Dependency Management: No bloated submodules or slow package managers. The engine fetches precompiled binaries (Slang, GLFW) automatically for zero-compile-time dependencies.
- Cross-Platform Tooling: Generates Ninja builds for Linux and Visual Studio 2022 solutions for Windows with a single click.
- Vulkan Refactor & AMD Stability: Resolved texture dynamic indexing validation issues on AMD/RADV drivers by manually binding texture slots in Slang.
- Color Accuracy & Aesthetics: Restored pure black ImGui docking themes and fixed sRGB gamma-correction bugs that were washing out linear textures.
- Improved UI Workflows: Added full Drag-and-Drop payload support for textures directly into the 3D Viewport and Scene Hierarchy component inspectors.
The repository is logically split to ensure the core engine remains separate from the application logic:
UHE/— The core engine, platform abstraction (Windows/Linux), Vulkan RHI, and vendor libraries.UHE_EDITOR/— The standalone editor application built on top of the engine.sandbox/— A lightweight testing application for running isolated scenes.script/Setup.py— The automated dependency fetcher that pulls heavy OS-specific binaries (like Slang) intoUHE/vendor/bin/.
Note
Hardware Compatibility: Because the engine relies on a custom Vulkan RHI, it may not compile or run on all machines (especially older hardware or unsupported drivers). If you are unable to compile the project, please check out the video preview in the Showcase section above and stay tuned for future precompiled releases and updates!
UHE uses a fully automated bootstrap system. You do not need to manually configure CMake or download binaries.
- A C++20 compatible compiler (GCC, Clang, or MSVC)
- CMake 3.16+
- Python 3 (Used for fetching precompiled binaries)
- Vulkan SDK
- Clone the repository recursively (to fetch the lightweight submodules like
glmandspdlog):git clone --recursive https://github.com/rajaryan2007/unhuman.git cd unhuman - Run the generation script. This will download the Windows binaries for Slang and generate a
.slnfile:GenerateProject.bat
- Open
build/UHE.slnin Visual Studio 2022 and hit Build.
- Clone the repository recursively:
git clone --recursive https://github.com/rajaryan2007/unhuman.git cd unhuman - Run the generation script. This will download the Linux binaries for Slang and generate
build.ninja:./GenerateProject.sh
- Compile the engine using CMake:
cmake --build build -j$(nproc)
Note: The built executables (UHE_EDITOR, Sandbox) will be placed in the bin/ directory.
Contributions are always welcome! If you want to contribute to the engine:
- Ensure your code complies with the project's
.clang-formatand.clang-tidyrules. (If using Neovim/VS Code withclangd, this will be automatic). - Avoid adding heavy binaries directly to the repository. If you need a new dependency (like Assimp), add its download URL to the
DEPENDENCIESdictionary inscript/Setup.py.
Unhuman Engine is licensed under the MIT License. See the LICENSE file for more details.