Razix is a High Performance Engine for experimenting with different rendering techniques. Razix supports Windows, Mac, Linux.
THIS ENGINE IS BEING MADE FOR A GAME< not a generic engine, I'll have the GDD/Story etc. soon here!
Razix is a cross-Platform 3D engine with multi render API support (Vulkan, DirectX 12). It's being built on a new design principle of "Everything is as asset" to replace traditonal gameobject and ECS systems and primarily focusing on making a game one day soon. I have a game idea that I'll be showcasing using the engine in 2025 hopefully, eventually I hope razix will be mature enough one day. It's also my portfolio + practice sandbox for making a trippy game.
View the Trello Board and the Architecture notes on Draw.io
- Built using C++17. (Engine will be reverted back to C++14 once entt/sol have been removed and only Jolt will be compiled in C++17 mode)
- C++14 over C++11 because
constexpr
andsizeof
and improvedlamdbas
are needed for framegraph.
- C++14 over C++11 because
- Support for Windows, Linux, macOS.
- Support for Vulkan & DirectX 12.
- Data Driven Framegraph based on EA's frostbite engine (based on skaarj
1989's Framegraph implementation)
- Uses Custom Node Graph Editor
Node based Frame Graph Editor |
![]() |
---|
FrameGraph lifetimes | ![]() |
---|
- 3D audio using OpenAL
- Complete Deferred pipeline + Bindless resources + nanite-like renderers(Future support for customizable render graph editor for complete control).
- Runtime tools using ImGui + Blender Support as level editor
- Multi Physics engine support.
- 3D physics using Jolt.
- Basic lua scripting support
- Extremely detailed profiling using Tracy and RenderDoc integrated
- Supports HLSL shading language to create custom materials + Custom Razix Shaders files for easy compilation
- Resource Pool base management and custom asset format
- Data drive pipeline architecture - FrameGraph uses JSON files
- Custom Razix STL and Razix Memory
- WorldRenderer Passes
- Lighting and shadows
- Directional lights with CSM (Cascaded Shadow Mapping)
- Point lights
- Spot lights
- Deferred PBR
- IBL
- Skybox (HDR & Procedural)
- SSAO
- Debug Drawing
- ImGUi
- Tonemapping
- FXAA
- TAA (WIP)
- Lighting and shadows
Experimental features:
- Machine Learning sandbox (custom NNs class + Transformers WIP) CPU only for now, later might be ported over the engine RHI layer
- Department based memory/frame time budget profiling (inspiration from SMS GDC talk and Insomniac engine)
- I have a secret RazixGPT runst LLM might use it for game NPCs one day.
DirectX11, OpenGL has been deprecated. Only high-level APIs and RTX level GPUs will be supported. PSVita(GXM) and PS3(GCM) will be supported sometime far in future.
This section provides comprehensive instructions for building Razix Engine from source. The engine supports Windows and macOS platforms, with full Linux support coming soon.
- Git for cloning the repository
- Python 3.x for build and test scripts
- VulkanSDK 1.3.290.0 or later
Windows:
- Visual Studio 2022 (Community, Professional, or Enterprise)
- Windows 10/11 (x64)
macOS:
- Xcode Command Line Tools
- macOS 10.15 or later
- ARM64 (Apple Silicon) or x86_64 architecture
Windows:
- Download VulkanSDK 1.3.290.0 from LunarG
- Run the installer with default settings
- The installer will automatically set the
VULKAN_SDK
environment variable - Verify installation by opening a new command prompt and running:
This should show the installation path (e.g.,
echo %VULKAN_SDK%
C:\VulkanSDK\1.3.290.0
)
macOS:
- Download VulkanSDK 1.3.290.0 from LunarG
- Mount the DMG and run the InstallVulkan app
- Install to the default location (
~/VulkanSDK/1.3.290.0
) - Add environment variables to your shell profile (
~/.zshrc
or~/.bash_profile
):export VULKAN_SDK="$HOME/VulkanSDK/1.3.290.0/macOS" export PATH="$VULKAN_SDK/bin:$PATH"
- Reload your shell or run
source ~/.zshrc
- Verify installation:
echo $VULKAN_SDK vulkaninfo --summary
git clone https://github.com/Pikachuxxxx/Razix.git
cd Razix
Windows:
cd Scripts
GenerateVS22.bat
macOS:
cd Scripts
chmod +x GenerateXCodeProjectsMacOS.sh
./GenerateXCodeProjectsMacOS.sh
This will generate platform-specific project files in the build/
directory using Premake5.
Razix includes a cross-platform Python build script that automates the build process:
Windows:
cd Scripts
python build_razix.py --platform windows --config Debug
macOS:
cd Scripts
python build_razix.py --platform macos --config Debug
Available configurations: Debug
, Release
, GoldMaster
Windows (Visual Studio):
- Open
build/Razix.sln
in Visual Studio 2022 - Select configuration: Debug, Release, or GoldMaster
- Build the solution:
Ctrl+Shift+B
or Build > Build Solution
macOS (Xcode):
- Open the generated
.xcodeproj
files in thebuild/
directory - Select the desired scheme and configuration
- Build using
Cmd+B
Razix includes a comprehensive test suite that can be run using the provided Python test runner:
cd Scripts
python test_runner.py [config] [platform] [--verbose]
Examples:
# Run tests with Debug configuration on Windows
python test_runner.py Debug windows-x86_64
# Run tests with Release configuration on macOS with verbose output
python test_runner.py Release macosx-ARM64 --verbose
# Run tests with default configuration (Debug, windows-x86_64)
python test_runner.py
The test runner will:
- Execute all engine tests and graphics tests
- Generate test logs in the
TestResults/
directory - Display a summary of passed/failed tests
Successful builds will generate:
- Engine libraries in
bin/[Config]-[Platform]/
- Executable files (Sandbox, tests) in the same directory
- Intermediate files in
build/intermediates/
Common Issues:
- VulkanSDK not found: Ensure
VULKAN_SDK
environment variable is set correctly - MSBuild errors on Windows: Verify Visual Studio 2022 is installed with C++ development tools
- Xcode build failures on macOS: Ensure Xcode Command Line Tools are installed:
xcode-select --install
- Python script errors: Verify Python 3.x is installed and accessible via
python
command
Getting Help:
- Check the issue tracker for known problems
- Review the CI workflows in
.github/workflows/
for reference build configurations
More information will be update on creating PRs and other ways to contribute to Razix Engine.
Check the style guide for Razix Style enforcements
ex. Lua Scriping API cheatsheet
Check the Docs folder or Architecture notes on Draw.io for a detailed architecture description
Core Systems | Frame Graph |
---|---|
![]() |
![]() |
Razix Engine is distributed under Apache 2.0 license. LICENSE