Quartz Engine is a fully 3D game engine built in C++ using Vulkan. This is primarily a personal project.
- Core
- Sub-Systems
- Multi-module
- Custom memory allocation
- Cross-platform
- Windows
- Linux
- MacOS
- Windowing System
- Single window
- Dynamicly resizeable swapchain
- Multiple windows
- Input
- Input callbacks
- Controller suport
- Device connection callbacks
- Windows DirectInput support
- Graphics System
- Vulkan support
- OpenGL support
- Geometry
- Textures/Normals
- Vert/Frag Shaders
- Geom/Tess Shaders
- Mesh Shaders
- Ray Tracing Shaders
- Compute shaders
- Physically Based Rendering
- Shader reflection
- Pipeline state serialization
- Entity Component System
- Multiple 'worlds'
- Component-system registry
- Itterable by component filters
- Contiguous memory for component types
- Template meta-programming
- Custom Standard Libraries
- String
- Sub-String
- Unicode support
- Array (vector)
- Linked List
- Map (Hashmap, implemented robin-hood)
- Set (Hashset)
- Stack
- Tuple
- Heap
- BitSet
- Pool
- Buffer (byte, int, etc)
- Reference pointer
- String
- Math
- Vector2/3/4
- Matrix4
- Matrix 2/3/etc
- Quaternions
- Point/Bounds
- SIMD
- Reflection
- Compile-time type ids
- Full run-time object reflection
- Editor
- Additional
- OBJ support
- GLTF support
- Custom model format
- Serialization
- C++17 or higher
- Vulkan SDK
- Any Vulkan 1.2+ SDK with VULKAN_SDK path set
- Windows SDK
- Any Windows 10 SDK (you may need to retarget solution)