Uploaded August 2020 | Updated September 2026, 12 minutes ago
This series of videos will demonstrate my progress in making a Game Engine in OpenGL.
A commenter (jasiumr) asked to add in an atmosphere. So here's a very simple first try at doing one! I'm actually quite amped at being able to get this implemented in a relatively short space of time, and even though it clearly would need a lot more work, the simple raytracing approach I've used here makes for a rather nice look.
In essence, I shoot a ray (for each relevant pixel) through an invisible sphere and sample 10 points on it to gather "fog" information, which is used to enhance the pixel in question to generate the gradual shading effect.
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
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.
A commenter (jasiumr) asked to add in an atmosphere. So here's a very simple first try at doing one! I'm actually quite amped at being able to get this implemented in a relatively short space of time, and even though it clearly would need a lot more work, the simple raytracing approach I've used here makes for a rather nice look.
In essence, I shoot a ray (for each relevant pixel) through an invisible sphere and sample 10 points on it to gather "fog" information, which is used to enhance the pixel in question to generate the gradual shading effect.
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
![Transparent Windows feat. Bevy [Rust]
After only spending a few hours this weekend, I was able to code up a simple image overlay with a couple of fun features. Code was surprising easy to implement for the effect I was going for.
Hopefully this will lead to some future videos as I journey through learning Rust. Transparent Windows feat. Bevy [Rust]](https://i.ytimg.com/vi/gymEcIAi_J8/mqdefault.jpg)









![2D Game Engine in C++: [8] 2D Normal Maps
This video demonstrates 2D Normal Maps - a technique used to create directional lighting / shading based on the relative location of a LightSource to the drawn object in question. The end effect produces shading which gives even more of a 3D effect to the graphics engine.
The process that Ive used to do this is to create two versions of the tree sprite, one being the simple sprite, and another image (which I call the normal map) which is exactly the same as the original sprite, but with its red, green, and blue colours changed. These are changed to represent the intensity of light that should impact the sprite depending on the direction of the LightSource. These three colour channels represent horizontal (x-axis), vertical (y-axis) and depth (z-axis) coordinates respectively.
For example, a normal mapping of the sprite will have a red colour of 255 (the maximum) if the light intensity is brightest when a light is to the extreme right of the object. So, for the tree, this would be the right hand side of the tree trunk, and any right hand side of the individual leaves. The opposite can then be done for the left hand side of the tree. This gives a nice shading effect to the tree depending on where the light is coming from - although the lighting can be a bit blocky given that we are working on very low-res images!
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++: [8] 2D Normal Maps](https://i.ytimg.com/vi/k-Z7wIuZfnA/mqdefault.jpg)