SupernovaEngine icon indicating copy to clipboard operation
SupernovaEngine copied to clipboard

An experimental game engine.

Supernova Engine

CodeFactor GitHub

An experimental game engine.

video

Scene Editor   Scene Editor

Screenshots

Scene Editor w/ Script Editor   Material Editor (surface)

Material Editor (surface)   Material Editor (post process)

Material Editor (post process)

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

  1. Install Lua Language Server
  2. Add path to annotations
    • File -> Preferences -> Settings Lua.workspace.library -> Add Item
    • or run: InstallAnnotations.bat (requires yq)

Acknowledgements

License

MIT