I am an independent game programmer, who specializes in 3D graphics, modern C++, and engine / API design.
I have worked on a lot of projects using a myriad of languages and engines, targeting everything from PC to mobile to VR.
A lot of my work isn't public (or public yet!), and my repositories are littered with various forks and experiments, so I figured this page could focus attention on the highlights.
A couple career highlights before I get into my current projects :
I was an OpenGL workstation driver engineer for almost a decade. I redesigned the legacy driver's multithreading code, and was part of the team that developed an entirely new OpenGL driver, released in 2022, which had up to 72% performance gains in key applications. I learned a lot and worked with a great team of people.
Before that I worked in the Computer Graphics lab at UCF implementing virtual texturing and Blockmaps for streaming visualization, work which concluded in 2013.
But I think my best, most exciting work is my current game and engine, which you'll read about below :)
More detailed career history, projects, and my up to date resume can be found on my LinkedIn
I am currently making Killing Baby Hitler, a retro FPS "boomer shooter" inspired by classics like Wolfenstein. The game is built on a custom engine ("Virtuoso Engine", discussed below). A gameplay trailer can be seen here:
The game and engine code will eventually be publicly released under an MIT License, but not yet. If you are considering me for employment and want an up to date code sample or playable build feel free to contact me and ask.
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."
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.
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).
A sampling of my motable past projects includes:
A YouTube show talking about the history of a game for every year since the beginning of gaming, then making that game. It got as far as 1969 (Lunar Lander) and 1971 (Star Trek) before I had to put the project aside due to the sheer amount of work between development, research, and video editing. I do have ideas on how I want to revive this though :)
Star Trek Game JavaScript Source from Episode 1
You can play the game here.
2017 app released for free on the GearVR App Store via download code. It was also available for Cardboard VR. Built on Virtuoso Engine. Preview gif below:
2013, a heuristic approach made for low performance / mobile rendering at the time. Source code and (unpublished) algorithm paper in repository here.
I played trumpet in jazz, concert, and marching band in high school and middle school. That's 7 years total, which is just shy of the time at my longest adult job. This turned into being a self taught guitarist as an adult, and in the past year or two I started getting formal lessons. It's been an enriching part of my life, but also turned into a skill I am using to make the soundtrack for KBH!
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
Various screenshots of various games / rendering effects / projects I've worked on (in no order). These go back to when I first started to code in 2006 or so, up to around 2020.