Skip to content

AdiPrk/Radis

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

221 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 ███████████     █████████   ██████████   █████  █████████ 
▒▒███▒▒▒▒▒███   ███▒▒▒▒▒███ ▒▒███▒▒▒▒███ ▒▒███  ███▒▒▒▒▒███
 ▒███    ▒███  ▒███    ▒███  ▒███   ▒▒███ ▒███ ▒███    ▒▒▒ 
 ▒██████████   ▒███████████  ▒███    ▒███ ▒███ ▒▒█████████ 
 ▒███▒▒▒▒▒███  ▒███▒▒▒▒▒███  ▒███    ▒███ ▒███  ▒▒▒▒▒▒▒▒███
 ▒███    ▒███  ▒███    ▒███  ▒███    ███  ▒███  ███    ▒███
 █████   █████ █████   █████ ██████████   █████▒▒█████████ 
▒▒▒▒▒   ▒▒▒▒▒ ▒▒▒▒▒   ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒   ▒▒▒▒▒  ▒▒▒▒▒▒▒▒▒

Radis Engine

A modern, cross-platform game engine featuring Vulkan 1.4 and OpenGL 4.6 backends with real-time raytracing, PBR rendering, and a full-featured editor.

C++ Vulkan OpenGL Platform License


Features

Rendering

  • Multiple Render Paths — Forward, Deferred, and Hardware Raytracing modes
  • Physically Based Rendering (PBR) — GGX/Schlick-GGX BRDF with metallic-roughness workflow
  • Real-time Raytracing — Vulkan RTX acceleration structures with reflections, shadows, and a cost heatmap visualization
  • G-Buffer Pipeline — Albedo, normals, PBR properties, and emissive render targets
  • HDR Pipeline — 16-bit floating-point scene buffer with tonemapping
  • Render Graph — Automatic resource transitions and barrier management with dynamic rendering (VK_KHR_dynamic_rendering)
  • Hot-swappable Backends — Switch between Vulkan and OpenGL at runtime (Ctrl+R)

Engine Architecture

  • Entity Component System (ECS) — Built on EnTT for high-performance entity management
  • Resource System — Type-safe resource management with automatic lifetime handling
  • System Pipeline — Ordered Init → FrameStart → Update → FrameEnd → Exit lifecycle
  • Scene Serialization — JSON-based scene format with reflection-driven component serialization
  • Profiler — Built-in hierarchical CPU profiler with per-frame snapshots and aggregated statistics

Asset Pipeline

  • Model Loading — Support for glTF, FBX, OBJ, and other formats via Assimp
  • Unified Mesh System — All meshes batched into a single vertex/index buffer for efficient instanced rendering
  • Texture Formats — KTX2 (GPU-compressed), PNG, JPG, and embedded textures
  • Multi-threaded Loading — Parallel texture loading with queued GPU upload
  • Skeletal Animation — Bone hierarchies with VQS (Vector-Quaternion-Scale) transforms uploaded to GPU

Editor

  • Dockable UI — ImGui-based editor with scene hierarchy, inspector, asset browser, and texture viewer
  • Gizmos — Translation, rotation, and scale manipulation via ImGuizmo
  • Live Tweaking — Modify materials, lights, and transforms in real-time
  • Multi-select — Select and duplicate multiple entities (Ctrl+D)
  • Debug Visualization — Wireframe mode, editor grid, and debug draw primitives

Networking (Experimental)

  • ENet Integration — Client-server architecture for multiplayer prototyping
  • Real-time Chat — In-editor chat window with player presence

Physics (Experimental)

  • Soft Body Simulation — Mass-spring system with RK4 integration
  • Debug Visualization — Strain-colored springs and velocity-colored particles

System Requirements

Component Minimum Recommended
OS Windows 10 Windows 11
CPU Any x64 processor Multi-core recommended
GPU Vulkan 1.2 / OpenGL 4.6 RTX 2060+ for raytracing
RAM 8 GB 16 GB

Getting Started

Prerequisites

Building

  1. Clone the repository
  2. Open Radis.sln in Visual Studio,
  3. Build and run

Camera Controls

Action Input
Look Around Right Mouse + Drag
Move W / A / S / D / E / Q

Dependencies

Library Purpose
Vulkan SDK Graphics API
Volk Vulkan function loader
VMA Vulkan memory allocation
GLFW Window & input
GLEW OpenGL extension loading
GLM Math library
EnTT ECS framework
Assimp Model importing
stb_image Image loading
Dear ImGui Editor UI
ImGuizmo 3D gizmos
nlohmann/json JSON parsing
ENet Networking
reflect-cpp Compile-time reflection

Showcase

Screenshots and videos coming soon!


License

This project is licensed under the MIT License — see the LICENSE file for details.


Built with ❤️ by Aditya Prakash

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors