Skip to content

skaarj1989/SupernovaEngine

Repository files navigation

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