Virtuoso Engine is my personal game and app development framework that I've been working on for about a decade or so in various iterations, and have shipped multiple apps on. The latest version is being used in the development of "Killing Baby Hitler."
The philosophy of the engine is to be a lightweight framework style engine, sort of like RayLib, but more focusing on C++20, 3D, and physics rather than C99/2D. I wanted to make this because it's the language / paradigm under which I'm most productive as a very experienced C++ programmer with lots of graphics programming and graphics driver experience.
I also am a really strong booster of the "STB" style of library - of making components or functionality that can be forked off without dependencies into a single header, permissive license "library."
The "full" engine will be posted here on this page with an easy build / install and documentation... eventually :). For now see the public components, third party libraries, and screenshots below.
Several components of the engine can be seen publicly on my GitHub:
YarnMachine - A standalone C++ virtual machine for YarnSpinner, a narrative scripting language I use in KBH for dialogue and game scripting.
Quake Style Console - Debug console and IMGUI widget. The first version of this was written 11 years ago as an experiment but I've been maintaining and using this ever since.
GLSugar - Graphics framework for modern / AZDO style OpenGL development with nicer syntax. This has code for basic texture and shader handling, as well as struct annotation to easily make VAO's and UBOs with correct memory alignments. Built on GLHPP (discussed below), a library written by a colleague to which I am a contributor.
GameFoundation - Grab bag of common data structures and algorithms used to make games - eg. A*, object pools, UUIDs, etc.
uJNI - Helper functions and classes to wrangle JNI / NDK things. Not used in KBH, but was rapidly developed for the 2016/2017 iteration of the engine to ship a Fireworks Show VR app on the GearVR platform (Android).
Spherical Harmonics - Utility code for environment map filtering. Used for glossy HDR environment rendering in unreleased prototypes, and diffuse probe convolution in Fireworks Show VR.
Noise - Perlin Noise Generation : Used in unreleased prototypes.
3DMath - Frustum, transforms, etc.
Autoreduce - Frequency space texture analysis and reduction
VirtuosoImage - Templated multidimensional array with views, customizable backing store, and some common algorithms. Used for CPU-side algorithm prototyping. Older.
A lot of the work on the engine is curating which third party libraries to use vs which things to write myself. The engine puts together and builds on top of lots of third party open source libraries, including but not limited to:
glhpp - Object oriented, DSA OpenGL header by a colleague, to which I am a contributor.
PhysX - General purpose physics, collision, math, and simulation library
Eigen - For matrix and linear algebra
Dear ImGUI - For user interfaces and tools prototyping. Also several other 3rd party repo's for adding gizmos, markdown, and file dialogs to IMGUI.
MiniAudio - For 3D sound playback and music streaming
Yarn Spinner - For dialogue and narrative scripting. I use their VSCode plugin and their compiler, but built my own C++ runtime discussed above.
Debug Draw - For wireframe primitive visualization
GLFW and GLFWPP - for cross platform windowing system and input
STB - Image loading and other miscellanea
nlohmann's JSON - For data serialization
MiniZ - for compression and bundling of map data
protobuf - dependency for YarnMachine VM
Vince's CSV parser - dependency for YarnMachine VM
GLAD - OpenGL function loader
Virtuoso GameAudio and Virtuoso Physics, both developed for KBH.
Killing.Baby.Hitler.Gameplay.Trailer.mp4
HDR Stereo Reflection Maps (Virtuoso, GearVR 2016)
Water Shader (Virtuoso, GearVR 2016)
Bloom, HDR, Emissive Mapping (2012)
Spherical Harmonics Convolutions (2010)
Shadowmaps, Bloom, LOD, HDR (Virtuoso, 2017)
Shadowmaps, Bloom, HDR (Virtuoso Engine, 2017)