Skip to content

karnkaul/levk

Repository files navigation

Little Engine Vulkan v2

A simple 3D game engine using C++20 and Vulkan.

This project is a revamp of the original LittleEngineVk.

Build Status

Sponza

Features

  • PBR materials
  • HDR lighting
  • Value semantic interfaces (using external polymorphism)
  • GLTF support
  • Skinned meshes
    • Rigged animations
    • Decoupled skeletons (for reuse with mutiple meshes)
    • Skeleton instances (active in a scene tree)
  • JIT shader compilation (glslc required)
  • Asset providers
    • Hot reloading
  • Instanced static mesh renderer
  • Skinned mesh renderer
  • Scene (in-game)
  • Asset (de)serialization + hot reload
  • Scene management
  • Fonts and text
  • Dynamic rendering (no render passes)
  • In-game UI
  • Shadow mapping
  • Audio
  • AABB collisions

Requirements

  • CMake 3.18+
  • C++20 compiler and stdlib
  • OS with desktop environment and Vulkan loader (libvulkan1.so / vulkan1.dll)
    • Windows 10
    • Linux: X, Wayland (untested)
    • Mac OSX: untested, will require MoltenVk
  • GPU supporting Vulkan 1.3+, its driver, and loader
  • Vulkan SDK / glslc (for compiling glsl shaders to SPIR-V, and validation layers)

Usage

LittleEngineVk (levk::lib) is a library intended to be built from source and linked statically, it currently does not support any installation / packaging. Link to levk via CMake: target_link_libraries(foo PRIVATE levk::lib).

Building levk-editor

  • Clone this repository somewhere.
  • Use CMake and a generator of your choice to configure an out-of-source build (build and out are ignored in git).
  • If using CMake 3.20+ / Visual Studio in CMake mode / CMake Tools with VSCode, CMakePresets.json can be utilized (and/or extended via CMakeUserPresets.json) for convenience.
    • Use cmake --preset <name> to configure and cmake --build --preset <name> to build on the command line.
    • Visual Studio CMake and VS Code CMake Tools should pick up the presets by themselves.
  • For other scenarios, use CMake GUI or the command line to configure and generate a build.
    • Command line: cmake -S . -B out && cmake --build out.
    • If using an IDE generator, use CMake GUI to configure and generate a build, then open the project/solution in the IDE and build/debug as usual.

External Dependencies

Screenshots

Damaged Helmet and Water Bottle

lantern_brainstem

Misc

Original repository

LICENCE

About

LittleEngineVk v2 (revamped)

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published