/QuartzEngine

3D Vulkan Game Engine

Primary LanguageC++

Quartz Engine

Quartz Engine is a fully 3D game engine built in C++ using Vulkan. This is primarily a personal project.

Features (WIP)

  • 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
  • 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

Dependencies

  • 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)