Skip to content

Pikachuxxxx/Razix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

de89fce · Jan 21, 2025
Dec 15, 2024
Dec 7, 2024
Dec 16, 2024
Dec 23, 2024
Dec 24, 2024
Dec 7, 2024
Dec 7, 2024
Dec 20, 2024
Dec 24, 2024
Dec 7, 2024
Dec 11, 2024
Dec 23, 2024
May 6, 2022
Oct 25, 2021
Dec 7, 2024
Nov 21, 2020
Jan 21, 2025
Apr 19, 2024
Jun 20, 2024
Dec 23, 2024
Dec 7, 2024

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