$ show Pikachuxxxx/Razix
Razix is a multi-platform 3D game engine built in C++ with a focus on modern graphics APIs (Vulkan, DirectX 12, OpenGL). It features a custom rendering hardware interface (RHI), a frame graph system for efficient render pass scheduling, an entity-component system (ECS) for scene management, and a built-in editor with ImGui integration. The engine includes a Lua scripting system, physics integration via Jolt Physics, and a comprehensive memory management layer with custom allocators. Despite its ambitious scope and active development, the codebase exhibits a mix of well-engineered subsystems and areas of legacy code (e.g., LIMBO_STATE). The project provides testing frameworks for both engine core and graphics pipelines, and maintains a dedicated game project ('Tanu') as a showcase.
The LLM identified 5 files worth highlighting for reuse:
Implements a frame graph system that declaratively defines render passes and their resource dependencies. This component can be extracted and reused in any graphics engine to automate resource management and pass ordering, demonstrating a pattern used in modern AAA engines.
Abstracts graphics API specific implementations (Vulkan, DX12, OpenGL) behind a unified interface. This RHI layer is designed for extensibility and can serve as a reusable template for multi-backend rendering engines.
Provides a fast, linear memory allocator ideal for per-frame allocations in games. Its implementation is clean and self-contained, making it reusable in any performance-critical C++ application.
Implements a lightweight job system for task parallelism. The design is isolated and demonstrates non-trivial concurrency patterns, suitable for extraction into other game engines or high-performance applications.
Manages the scene graph and entity lifecycle using an ECS architecture. While tightly integrated with Razix, the core entity-component logic (built on EnTT) is a well-known pattern and the scene manager can inform design in other engines.