Skip to content

A powerful multithreaded game engine using Vulkan with features like PBR, realtime global illumination, and more

License

Notifications You must be signed in to change notification settings

study-game-engines/hyperion

 
 

Repository files navigation

Hyperion Engine

About

Hyperion Engine is a 3D game engine written in C++, rendering on Vulkan. Currently, it targets Windows, macOS and Linux.

The goal of Hyperion is to be easy to understand and build games with, while still giving you ample control over the game engine.

Hyperion Engine screenshot

Current features include:

  • Highly multi-threaded
    • Async task system
    • Async asset loading
    • Parallel command list recording
  • Physically based rendering
    • With physically based camera effects (aperture, exposure etc.)
  • Post processing
    • HBAO (horizon based ambient occlusion)
    • Screen space global illumination
    • Screen space reflections with glossiness (SSR)
    • Refraction
    • FXAA and TAA for anti-aliasing
    • Tone mapping
  • Raytracing - Reflections, Global Illumination (DDGI)
  • Procedural, paged terrain generation
  • Serialization / deserialization system
  • Shader compilation and caching system
    • Integrates with glslang
    • Generates separate shader versions with separate functionalities, so you can select one on the fly with the functionality you need, and it will already be compiled and ready to go.
  • Skeletal animation
  • Scene graph + octree
  • GPU occlusion culling
  • GPU particle rendering
  • Dynamic cubemap rendering with local correction, so reflections match up
  • Voxel cone tracing (dynamic global illumination and reflections)
    • Implemented both with a 3D texture and a sparse voxel octree
  • Shadow rendering
    • Variance shadow maps
    • Contact-hardened soft shadows
  • Scripting engine (Hypscript)

Feel free to contribute anything - We'd love to have some more eyes on this project! Submit an issue if you run into anything, as well.

Docs (in the works)

Scripting Language

Screenshots

Point light shadows
Point light shadows
Particle physics demo
GPU particles with basic physics simulation
screenshot
Screen space reflections
screenshot
Point light shadows
screenshot
Procedural terrain generation

Building

This section will be updated soon. Hyperion uses a pretty simple CMake set up, using vcpkg for MSVC on Windows, and a build script (build.sh) for macOS and Linux.

Make sure you install the required packages listed in CMakeLists.txt.

Known issues

  • Currently may get a deadlock on close as render thread is synced to in many places. This can be alleviated by using GPUBufferRef, ImageRef, etc. types instead of something like UniquePtr.
  • Scripting has issues with generic types
  • Binding C++ variables to scripts still not fleshed out
  • Voxel cone tracing may have stability issues

About

A powerful multithreaded game engine using Vulkan with features like PBR, realtime global illumination, and more

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 74.5%
  • C 20.7%
  • GLSL 2.8%
  • Objective-C 1.6%
  • Python 0.1%
  • SourcePawn 0.1%
  • Other 0.2%