Quark icon indicating copy to clipboard operation
Quark copied to clipboard

My personal game engine for learning purpose

  ____     _    _       __       _____      _  ___
 / __ \   | |  | |      /\      |  __ \    | |/  /
| |  | |  | |  | |     /  \     | |__) |   | '  / 
| |  | |  | |  | |    / /\ \    |  _  /    |   <  
| |__| |  | |__| |   / ____ \   | | \ \    | .  \ 
 \___\_\   \____/   /_/    \_\  |_|  \_\   |_|\__\
                                     

                                                                

Quark Game Engine

Quark is my personal learning project.

Environment

  • Windows, MacOS
  • C++20( have been tested on MSVC and Clang)
  • CMake 3.10+
  • Vulkan 1.2+

Build Editor

  1. Make sure the "VULKAN_SDK" environment variable have been setted correctly
    • Go to https://www.lunarg.com/vulkan-sdk and download the vulkan sdk
  2. git clone --recursive https://github.com/XieYHccc/Quark.git
  3. cd Quark
  4. mkdir build
  5. cd build
  6. cmake ..
  7. make or open .sln

Feature

  • Render Hardware Interface
  • Vulkan Backend
  • 3D Scene Renderer (Forward Renderer)
  • Entity Component System
  • Asset System
  • Event System
  • Job System
  • UI with ImGui
  • Scene Editor Tool
  • KTX2 Transcoding

Todo

  • [x] Shader System
  • [x] Mouse Picking in Scene Editor
  • [ ] Quark Customized Asset Serialization
    • [ ] Mesh
    • [ ] Texture
    • [ ] Material
  • [x] Skeleton Animation
  • [ ] Render Graph System
  • [ ] D3D12 Rendering Backend
  • [ ] PBR Rendering
    • [ ] Directional Light
    • [ ] Point Light
    • [ ] Plane Light
  • [ ] Scriping System
  • [ ] Multithreading architecture (Rendering and Game Logitc)
  • [ ] Dedicated Asset Loading thread
  • [ ] Physics System
  • [ ] Ray Tracing
  • [ ] Bindless Model

Current Editor Looklike

Editor Screen shot