Supernova Engine
An experimental game engine.
Screenshots
Platforms
- Windows 10 / Visual Studio 2022
- Ubuntu 22.04 / GCC 13.1.0
Features
- Entity Component System (EnTT)
- Renderer (Vulkan w/ FrameGraph):
- Forward/Deferred Shading PBR + IBL
- Weighted Blended OIT
- Lighting and shadows (Tiled Culling):
- Directional lights (w/ CSM)
- Point lights
- Spot lights
- Decals
- Skinning
- Skybox
- Global Illumination (LPV)
- SSAO
- SSR
- Eye Adaptation
- Bloom
- Tonemapping
- FXAA
- Customizable materials (surface and postprocess)
- Custom mesh format (w/ assimp exporter)
- Physics (Jolt)
- Rigid bodies
- Character controller
- Skeletal animations (ozz-animation)
- Audio (OpenAL Soft)
- Playback/Streaming (.wav, .ogg)
- Lua scripting (sol2)
- Material Editor (imgui w/ imnodes)
Building
Requires CMake 3.26 and vcpkg
> git clone --recurse-submodules https://github.com/skaarj1989/SupernovaEngine.git
> cd SupernovaEngine
> cmake -S . -B build
vcpkg
> git clone https://github.com/microsoft/vcpkg
> ./vcpkg/bootstrap-vcpkg.bat
Add the following environment variables:
VCPKG_ROOT=path_to_vcpkg
VCPKG_DEFAULT_TRIPLET=x64-windows
Install dependencies:
> vcpkg install entt minizip robin-hood-hashing glm spdlog nlohmann-json cereal glslang spirv-cross ktx[vulkan] stb openal-soft libvorbis libogg lua argparse meshoptimizer boost-graph freetype catch2
Linux packages:
> sudo apt install libxcb-util-dev libxcb-icccm4-dev libxcb-ewmh-dev libxcb-xfixes0-dev libxcb-keysyms1-dev libxcb-randr0-dev libx11-xcb-dev
Third-party
Lua annotations for Visual Studio Code
- Install Lua Language Server
- Add path to annotations
- File -> Preferences -> Settings
Lua.workspace.library -> Add Item
- or run:
InstallAnnotations.bat
(requires yq)
Acknowledgements
License
MIT