███████████ █████████ ██████████ █████ █████████ ▒▒███▒▒▒▒▒███ ███▒▒▒▒▒███ ▒▒███▒▒▒▒███ ▒▒███ ███▒▒▒▒▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ▒▒███ ▒███ ▒███ ▒▒▒ ▒██████████ ▒███████████ ▒███ ▒███ ▒███ ▒▒█████████ ▒███▒▒▒▒▒███ ▒███▒▒▒▒▒███ ▒███ ▒███ ▒███ ▒▒▒▒▒▒▒▒███ ▒███ ▒███ ▒███ ▒███ ▒███ ███ ▒███ ███ ▒███ █████ █████ █████ █████ ██████████ █████▒▒█████████ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒▒ ▒▒▒▒▒ ▒▒▒▒▒▒▒▒▒
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.
- 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)
- 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
- 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
- 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
- ENet Integration — Client-server architecture for multiplayer prototyping
- Real-time Chat — In-editor chat window with player presence
- Soft Body Simulation — Mass-spring system with RK4 integration
- Debug Visualization — Strain-colored springs and velocity-colored particles
| 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 |
- Visual Studio 2026 with C++23 support
- Windows SDK 10.0+
- Clone the repository
- Open Radis.sln in Visual Studio,
- Build and run
| Action | Input |
|---|---|
| Look Around | Right Mouse + Drag |
| Move | W / A / S / D / E / Q |
| 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 |
Screenshots and videos coming soon!
This project is licensed under the MIT License — see the LICENSE file for details.
Built with ❤️ by Aditya Prakash