Custom Engine Blightspire

Contents

In my third-year at BUas I had the opportunity of working on a custom tech project for the entire school year (4x 8 weeks). The brief for this project was to create a game for the Steam Deck, that had a hard requirement of having to run at 60fps. Making use of Vulkan as our graphics API, we created all the necessary parts for an engine. We aim to create a first-person shooter, and our engine design tries to reflect this.

My responsibility on the project was both graphics programmer and programmer lead. This meant I was mostly in contact with the rendering back-end/architecture, and worked on the main optimizations happening on the GPU. As programmer lead, I helped the team come to conclusions and make sure communication was happening between everyone.

The Engine

Libraries

#content

Feature list

#content

  • Renderer
    • GPU-Driven rendering
      • Frustum culling
      • Two-pass HZB occlusion culling
    • Deferred renderer
    • PBR lighting model
    • Image based lighting
    • Shadow Mapping
    • Skeletal animations (skinning)
    • FXAA
    • SSAO
    • Bloom
    • Tonemapping (several options)
    • Frame graph
  • Physics
    • Colliders
      • Convex Hulls
      • Mesh
      • Primitives
    • Ray casting
    • Player controller
  • Scripting
    • Wren scripting language
    • Bindings from different modules in the engine
  • Assets
    • glTF model loading
      • Texture, mesh, hierarchy, animation parsing
  • Pathfinding
    • A* navigation
    • Navmesh support
  • Audio
    • FMod integration
    • 3D audio
  • UI
    • Font atlas
    • Buttons
    • Images
    • Navigation
    • Progress bars
  • ECS architecture
    • EnTT integration
  • Profiling
    • Tracy integration
    • GPU profiling
    • Automatic profiling per ECS system
    • Automatic profiling per engine module

Graphics pipeline

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

GBuffer Layout

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

GPU Driven Rendering

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Draw Generation

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Animations

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Post-processing

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.