Jack Bister


VK2D

A screenshot of VK2D

Github link

VK2D is a game engine I have been working on and off on since around 2016. The idea was to create a 2D game engine using the Vulkan API, which was brand new at the time. Despite its name the engine initially only used OpenGL for rendering as my computer did not support Vulkan... I have since added an abstraction layer that allows the engine to run on both OpenGL and Vulkan.

As with all side projects the scope has grown out of control from the initial idea of being a 2D-only engine. Today the engine has support for 3D rendering, skeletal mesh animations and an in-game level editing system. Gameplay scripting is done in C++ compiled to DLLs, so gameplay can be updated without rebuilding the whole engine.

While working on the engine I have tried out many different ideas that I've since thrown away. At one point the engine used Lua for scripting, and had a code generation step that I built using libclang which generated Lua bindings for the C++ classes in the engine.