Skip to content

Pikachuxxxx/Razix

Repository files navigation


Razix Engine

Razix is a High Performance Engine for experimenting with different rendering techniques. Razix supports Windows, Mac, Linux.
⚠️ WARNING:Currently Razix is WIP and the renderer is undergoing major design overhaul, so thread with caution while using, check the RoadMap below for release information

About

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.

View the Trello Board and the Architecture notes on Draw.io

Features

  • 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 and sizeof and improved lamdbas are needed for framegraph.
  • 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)
Node based
Frame Graph Editor
  • 3D audio using OpenAL
  • Complete Deferred pipeline + Bindless resources + nanite-like renderers(Future support for customizable render graph editor for complete control).
  • Level Editor & tools built using QT
  • Multi Physics engine support.
  • 3D physics using Jolt.
  • Basic lua scripting support
  • Extremely detailed profiling using Tracy and RenderDoc integrated
  • Supports GLSL, HLSL shading languages to create custom materials + Custom Razix Shaders files for easy compilation
  • Resource Pool base management and custom asset format
Resource Viewer
  • 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)

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)

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.

Tools

Razix also provides a rich set of GUI and Commmand Line Tools along with the Editor for various purposes such as

  • Razix Asset Packer - CLI Tool + API for Editor - Export 3D Models into custom razix format Meshes and Materials

RoadMap

V 1.0.0 - RC

Contributing

More information will be update on creating PRs and other ways to contribute to Razix Engine.

Style Guide

Check the style guide for Razix Style enforcements

Screenshots/Demos

Architecture

⚠️ Still a work in progress

ex. Lua Scriping API cheatsheet Lua Scriping API cheatsheet

Check the Docs folder or Architecture notes on Draw.io for a detailed architecture description

Core Systems Frame Graph

Changelog and Release Notes

Click to view changelog

Click to view ReleaseNotes

License

Razix Engine is distributed under Apache 2.0 license. LICENSE