Uploaded September 2020 | Updated September 2026, 2 hours ago
This series of videos will demonstrate my progress in making a Game Engine in OpenGL.
This video demonstrates a relatively simple planet-bound camera. I.e. if you had to "walk around" the planet, you're head would always point towards the sky / feet towards the core of the planet. I do this by simply rotating the camera each frame to account for player movement - makes for quite a stark visual effect (extra moons for kicks).
The writing it the top left corner is my first attempts at a profiler as described in the Handmade Hero series. I really like Casey's approach there, which allows you to print out function names and individual / aggregated frame statistics about each function's impact. The info currently corresponds to "function name / # times called / cycles spent in function". I'll be developing that out further as we progress on the engine!
As before, this engine does not use any libraries; I'm trying to learn everything by hand here (perhaps a slightly ridiculous endeavour).
Learning Sources:
- Real-Time Rendering, 4th Edition
- learnopengl.com
- OpenGL Programming Guide (the "Red Book"), 9th Edition
- khronos.org/registry/OpenGL-Refpages/gl4
- Game Physics Engine Development, 2nd Edition
- Foundations of Game Engine Development (Book Series)
- OpenGL 4 Shading Language Cookbook, 3rd Edition
- Game Engine Architecture, 3rd Edition
- Handmade Hero YouTube series by Casey Muratori
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 video demonstrates a relatively simple planet-bound camera. I.e. if you had to "walk around" the planet, you're head would always point towards the sky / feet towards the core of the planet. I do this by simply rotating the camera each frame to account for player movement - makes for quite a stark visual effect (extra moons for kicks).
The writing it the top left corner is my first attempts at a profiler as described in the Handmade Hero series. I really like Casey's approach there, which allows you to print out function names and individual / aggregated frame statistics about each function's impact. The info currently corresponds to "function name / # times called / cycles spent in function". I'll be developing that out further as we progress on the engine!
As before, this engine does not use any libraries; I'm trying to learn everything by hand here (perhaps a slightly ridiculous endeavour).
Learning Sources:
- Real-Time Rendering, 4th Edition
- learnopengl.com
- OpenGL Programming Guide (the "Red Book"), 9th Edition
- khronos.org/registry/OpenGL-Refpages/gl4
- Game Physics Engine Development, 2nd Edition
- Foundations of Game Engine Development (Book Series)
- OpenGL 4 Shading Language Cookbook, 3rd Edition
- Game Engine Architecture, 3rd Edition
- Handmade Hero YouTube series by Casey Muratori
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly



![2D Game Engine in C++: [3] Camera Rotation / Zooming
This video shows camera rotation and scaling.
The game now simply calls one function to draw sprites, where game objects rotation, scaling, and translation is taken into account as well as camera rotation, zoom, and location.
This should dramatically help coding up a wide array of 2D games, as a good chunk of graphics logic will already be allowed for.
Next, Ill look to draw sprites at different depths, to give a mock 3D effect to the drawing routine.
I will release all code on GitHub once Ive finalised the engine - and have nice looking code to boot!
Using the Chili Framework: http://wiki.planetchili.net/index.php... - thanks Chili! 2D Game Engine in C++: [3] Camera Rotation / Zooming](https://i.ytimg.com/vi/oP6FNbgRLHg/mqdefault.jpg)





![2D Game Engine in C++: [4] Planes
This video illustrates the new feature of planes or layers in the engine.
This allows the game to have depth / pseudo 3D effects. Ideas for this would be e.g. allowing for pillars in front of a player obstructing the player view - possibly quite a nice game effect.
Next, Ill look to adding alpha blending to the drawing routine.
I will release all code on GitHub once Ive finalised the engine - and have nice looking code to boot!
Using the Chili Framework: http://wiki.planetchili.net/index.php... - thanks Chili! 2D Game Engine in C++: [4] Planes](https://i.ytimg.com/vi/qqHSr180imE/mqdefault.jpg)
