A 3D game engine built with CMake and written in C++ 20
- spdlog (Logging)
- GLFW (Window, input management)
- glad (OpenGL, Vulkan loader)
- glm (Math)
- stb (Image loading)
- assimp (Asset importer)
- magic enum (Used for printing enum values)
- DLL-based engine
- Keyboard & mouse input
- 3D API independent Renderer with modern OpenGL 4.6.0 (SSBO, direct state access)
(Vulkan backend planned next) - Buffers: VBO, IBO, FBO, RBO, UBO, SSBO
- Blinn–Phong lighting model
- HDRI skybox support
- Event system (allowing custom events)
- Directional shadow mapping (point shadows and cascaded shadow mapping wip)
Tested with CMake 3.20 and MSVC 19.44.35207.1 in CLion 2025 and Visual Studio 2022
- Download required libraries with vcpkg
- Add vcpkg toolchain to CMake profile settings
- Build
Example project can be found in Sandbox folder.
User-loaded assets must be placed in the correct folders (relative path then can be used see Sandbox example):
assets/textures/→ Textures, skyboxesassets/shaders/→ GLSL shadersassets/models/→ 3D models
When a model is loaded for the first time, Kita will:
- Bake it into its internal KAsset format (
.kasset) (Skipping Assimp loading next time) - Copy the model textures into
assets/textures/
