Uploaded November 2019 | Updated September 2026, 1 hour ago
This series of videos will demonstrate my progress in making a Game Engine in OpenGL.
This first video showcase a number of features:
- No libraries, I'm trying to learn everything by hand here (perhaps a slightly ridiculous endeavour!)
- Single GPU render call, based on one big buffer - you choose what to include / exclude in the buffer per call, and the buffer is generated on the fly
- No instancing - this is one call one on all 10,000 different cube objects in a giant buffer
- To do this, I used GL_SHADER_STORAGE_BUFFER (SSBOs) for storing transformation matrices which I can sample from in the Vertex Shader: see this page for more details on this object type - khronos.org/opengl/wiki/Shader_Storage_Buffer_Object. Took me hours to figure this approach out!!
- Normal mapping
- Textures
- Lighting
- Camera is in a "First-Person-Shooter" style (camera swivels like a human head)
Learning Sources:
- Real-Time Rendering, 4th Edition: fantastic book (so far, I'm still on chapter 7!), brilliant for theory, much easier to get into than its intimidating look would suggest
- learnopengl.com : Really helpful resource to understand concepts and related code, a little tricky if you don't use the same libraries as they do
- khronos.org/registry/OpenGL-Refpages/gl4 : massive use of the OpenGL reference site, of course!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This series of videos will demonstrate my progress in making a Game Engine in OpenGL.
This first video showcase a number of features:
- No libraries, I'm trying to learn everything by hand here (perhaps a slightly ridiculous endeavour!)
- Single GPU render call, based on one big buffer - you choose what to include / exclude in the buffer per call, and the buffer is generated on the fly
- No instancing - this is one call one on all 10,000 different cube objects in a giant buffer
- To do this, I used GL_SHADER_STORAGE_BUFFER (SSBOs) for storing transformation matrices which I can sample from in the Vertex Shader: see this page for more details on this object type - khronos.org/opengl/wiki/Shader_Storage_Buffer_Object. Took me hours to figure this approach out!!
- Normal mapping
- Textures
- Lighting
- Camera is in a "First-Person-Shooter" style (camera swivels like a human head)
Learning Sources:
- Real-Time Rendering, 4th Edition: fantastic book (so far, I'm still on chapter 7!), brilliant for theory, much easier to get into than its intimidating look would suggest
- learnopengl.com : Really helpful resource to understand concepts and related code, a little tricky if you don't use the same libraries as they do
- khronos.org/registry/OpenGL-Refpages/gl4 : massive use of the OpenGL reference site, of course!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly

