Vulkan Game Engine

Summary

Simple Game Engine using Vulkan 1.2, implementing common Game Engine features and capabilities.

The software also implements a custom job system using system fibers, following Naughty Dog’s talk on GDC2015 “Parallelizing the Naughty Dog Engine Using Fibers”.

This Engine implements common characteristics as interactable GameObject oriented scenes, scene/project serialization, model instancing, and multi-threaded command buffer recording.

Some algorithms for geometry processing and time-critical rendering have also been implemented, such as:

  • Vertex-Clustering mesh simplification. Fast simplification using octrees, and configurable with normal clustering and different error metrics.
  • Automatic LOD meshes creation, which also computes multiple LODs at the same time for a performant implementation.
  • Critical-Rendering automatic LOD selection to achieve stable fps. The objective frame delta time is configurable.
  • Cell-to-Cell visibility. The Engine includes an editor to generate cells and walls; it generates a data structure that allows to precompute the visibility of the scene objects and cull non-visible objects at run-time. This uses a conservative supercover Bresenham approach.
Pol Martín Garcia
Pol Martín Garcia
Computer Graphics R&D

Computer graphics enthusiast, focused on simulation and real-time rendering.