s0lly
First Games in C++: AstroVoids
updated
Hope you enjoy & learn something if this is a new concept to you.
Music: Various tracks by Eric Skiff - Resistor Anthems - Available at http://EricSkiff.com/music
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
Bevy Examples as demo'ed:
Transparent Window:
github.com/bevyengine/bevy/blob/main/examples/window/transparent_window.rs
Window Fallthrough:
github.com/bevyengine/bevy/blob/main/examples/ui/window_fallthrough.rs
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
Hopefully this will lead to some future videos as I journey through learning Rust.
This episode demonstrates a few additional, much needed, features:
- slideshows
- color boxes
- debug windows
- desktop capture
- full-screen mode
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
This episode demonstrates many new features, larely coded for the Wheel Replacement Jam by Handmade Network:
- camera capture! (streaming video) - a huge help in replacing stream software tools
- image boxes - for use in logo displays, etc - also limits our need to use stream software
- textfile reading, used here as a To Do tracker - our first productivity tool!
- other quality of life features around resizing and moving windows
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
Music: Eric Skiff - We're all under the stars - Resistor Anthems - Available at http://EricSkiff.com/music
This episode demonstrates playing around with adding in a maze-type game
- the maze is graphically displayed in a raycast-type style
- viewers can alter the position / orientation of the "player" in the maze
- a simple illustration of adding in objects of interest into the maze
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
This episode demonstrates the beginnings of a decent UI
- create and delete windows
- text changes dynamically based on the region in which its drawn
- text alignment and size can be adjusted on the fly
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
This episode demonstrates:
- stream viewers' chat messages are displayed in a chat box
- ghosts are generated for all viewers who chat, who display the chat too
- we also allow for a few basic commands to be issues by viewers on their own ghosts
- and we've made a few GUI improvments: better window movements and added window resizing
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
- add some fun to my streams using my own content
- learn how to make GUIs and window-based applications
- better understand the Win32 C/C++ api
This is just a fun little project, so if you have any cool ideas to throw into the mix, I'd love to hear them - and try implement them! I'll treat it as a challange...
Thanks for watching.
by s0lly
twitch.tv/s0llygaming
discord.gg/kvappxm
twitter.com/s0lly
Find out more soon...
by s0lly
discord.gg/kvappxm
twitter.com/s0lly
https://twitch.tv/s0llygaming
This excel file demonstrates using the GPU through Excel. It does so by using my own "User Defined Function" that is accessible via a DLL (called an XLL) that I coded in C. This DLL interfaces with the GPU (via GLFW / OpenGL) - effectively allowing the user to unlock the power of the GPU from Excel formulae directly.
In other words: I create my own functions - basically my own versions of “SUM” etc - that can do work on the GPU.
The GPU is able to handle vast numbers of calculations per second, and what better place to throw calculations at the GPU than through our Excel Raytracer model?
The Excel Add-In includes a number of functions that demonstrate this usage. This file only demonstrates the "RaytraceImage" function.
The raytracing algorithms used are largely based on that used in the book "The Ray Tracer Challenge" by Jamis Buck. It is an excelllent book that teaches the foundations of Raytracing in a fun and engaging way.
by s0lly
discord.gg/kvappxm
twitter.com/s0lly
https://twitch.tv/s0llygaming
Created using the most-fun 1BitDragon software; I had loads of fun using it, if you were considering having a try.
Give me an ol' follow on my social medias:
Discord: discord.gg/kvappxm
Twitch: twitch.tv/s0llygaming
Twitter: twitter.com/s0lly
Itch: s0lly.itch.io
Github: github.com/s0lly
Discord: discord.gg/kvappxm
Twitch: twitch.tv/s0llygaming
Twitter: twitter.com/s0lly
Itch: s0lly.itch.io
Github: github.com/s0lly
Patreon: patreon.com/s0lly
Imgur: imgur.com/user/s0llyUK
Instagram: instagram.com/s0lly.gaming
Discord: discord.gg/kvappxm
Twitch: twitch.tv/s0llygaming
Twitter: twitter.com/s0lly
Itch: s0lly.itch.io
Github: github.com/s0lly
Patreon: patreon.com/s0lly
Imgur: imgur.com/user/s0llyUK
Instagram: instagram.com/s0lly.gaming
Discord invite (available for 7 days from posting this video): discord.gg/dM9PQnt7
Other Social Media stuffs:
Twitch: twitch.tv/s0llygaming
Twitter: twitter.com/s0lly
Instagram: instagram.com/s0lly.gaming
Github: github.com/s0lly
Patreon: patreon.com/s0lly
Imgur: imgur.com/user/s0llyUK
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
- shadertoy.com
- Modern C
Discord invite (available for 7 days from posting this video): discord.gg/w9qYDDM2
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
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
- shadertoy.com
- Modern C
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
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
- shadertoy.com
- Modern C
So... I decided to remove the ECS from the code base, and simplify things, and restart this project with a few cool ideas. I'm also looking to add in some new code techniques I've learned over the past few months, and in general try out some fun game designs.
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
- shadertoy.com
- Modern C
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
You can find the documentation to create your own XLL here: docs.microsoft.com/en-us/office/client-developer/excel/welcome-to-the-excel-software-development-kit
I plan to upload the code / model + XLL at some point later this week. Watch this space.
Hope you enjoy!
I've been playing around with the idea of generating game worlds (think dungeons, Diablo 1 style) using a combination of different maze types. The API that I've created so far allows for the maze generated here to be created quite simply, currently allowing the user to call either Recursive Backtracker and Hunt and Kill algorithms for use in eachg room, as well as allowing for the creation of empty rooms. These rooms are then connected via corridors (as shown in red) to the currently existing maze after being generated.
The resulting region can be considered a maze in its own right; interestingly, in this case, it can be considered as a "perfect" maze if the empty rooms are each considered to be a single cell of the maze.
For anyone interested in learning more, various maze algoritms are very well explained in Jamis Buck's excellent book "Mazes for Programmers" - a great read!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Hope this approach helps you in creating your own solution to this interesting problem!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming/
github.com/s0lly
patreon.com/s0lly
I used the following image source by Nasa to create this graphic: solarsystem.nasa.gov/resources/683/valles-marineris-the-grand-canyon-of-mars/?category=planets_mars
It uses a particle system to generate particles based on the underlying image, with each particle driven towards its destination on a sphere via a simple physics system.
And yes, that back-to-front image shift in the brain is quite something!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Hope you enjoy!
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
My aim is to use some of the concepts, processes, and techniques to update my game engine - and has reminded me of areas which I'm very keen on "levelling up" in over the next few months. Watch this space!
Credits:
- Container box, smiley face, environmental cubemap all per the learnopengl.com website by Joey de Vries - twitter: twitter.com/JoeyDeVriez (license: creativecommons.org/licenses/by/4.0), with other textures and models sources from royalty free content on the internet
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Find the model here: s0lly.itch.io/untitled-spreadsheet-space-simulator
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I thought it'd be useful to describe how I've approached what is a key component of the game engine so far. What I like most about this approach is that it keeps the game logic and code in very neat buckets that make reasoning about what I would like to do in the engine that much easier.
It's my first go at explaining code of any description, and I would love to hear any feedback on my approach here. Also, if you would like to view / use / edit / improve the code, you're more than welcome to use it, located on my GitHub here: github.com/s0lly/Elements
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This video demonstrates a new feature, mining. This will be an integral part of the game, with the goal to creating an army of drones to defeat the enemy. More will be revealed as we progress through the series!
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This video introduces (in a not-too-pretty way) what will be a key component to the game: drones. I won't elaborate much on where this is going for now, but I can say that this game is going in the direction of the "action / rts" style that was originally explored by the game "Battlezone" in the '90s. To my knowledge, there haven't really been many games that combine those genres since (if any). That's all I'll let on for now... ;p Hope you enjoy.
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I've improved the camera movement to add more of an "in-world" feel to the ship. Previously, the camera snapped to a position directly behind the ship at all times, which gave the feeling of the ship being "stuck" on to the camera lens, feeling fake and unintuitive. Now, the ship feels much more part of the world, the camera feels a lot more fluid, and I think the combination of those visual effects help improve the overall feel a lot too.
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I've added a sin-wave based camera transition for the ships under the players control. I found that a nice sin-wave transition to both position and orientation gives a very smooth feel to the transition. I added this effect via my entity component system, which seems to allow for simple ways of setting up a wide variety of new effects in the game, which is pretty darn nice.
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I added a soft lens flare effect, gives a very nice feel but not overpowering, which I find to be quite annoying when the effect is overplayed. In fact, it's possible I've undercooked it here (I'm fine with that)! I used the following shader with a number of adjustments to make it work in a game world: shadertoy.com/view/4sX3Rs
I've also fixed the jarring jittering effect that was occuring in the last video by making a few changes:
1. split world space into two components (integer and floating point) to make sure that I keep floating point accuracy for larger stretches of world space
2. convert all positions closer to camera space before entering shader code, meaning that positions closer to the camera have more accuracy
3. corrected some of the code relating to how the camera "follows" the ship
It's likely point 3 that was the largest contributor to the issue, but the other changes should help longer term for the project too.
Lastly, I adjusted the colour and BRDF parameters to make the various bodies look a bit more interesting (and less shiny!).
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
- shadertoy.com
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Adding asteroids to the game was pretty simple given the code structure which is a good sign that the design is working well so far, but clearly there are some issues, mainly (as I can gather) floating-point issues due to the large scale of the environment. I think that is what is causing the jarring movement in the spaceship and other objects - once seen cannot be unseen. I'll need to manage that better, and will be something to look into soon.
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
Decided to test a simple spaceship design (found an awesome free and royalty free model here (this guy is good!) cgtrader.com/free-3d-models/space/spaceship/star-sparrow-modular-spaceship). Lot's of fun playing around this it, and including the ship controls (which to be fair are really simple and not all that great), I only had to add about 10-15 lines of code to get this all set up!
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 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
I've been spending a lot of time reformatting the code so that it is easier to add in various effects, rather than having to write copious amounts of code to get something new to the screen. Clearly the underworkings can't be shown on a demo very easily (I might start another series of videos walking through the code that I'm happy with), but all that work allowed me to very easily add a new planet with its own atmosphere and gravity effects, in just a few short lines of code.
I thought the resulting motion looked pretty, but will need some variety soon!
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
I've been spending a bit more time trying to figure out better atmospheric effects. I came across this very helpful article, developer.nvidia.com/gpugems/gpugems2/part-ii-shading-lighting-and-shadows/chapter-16-accurate-atmospheric-scattering, and a shadertoy that implements the article's code (shadertoy.com/view/lslXDr) which I've made a few adjustments to to get to the effects in this video.
This will probably look even better with HDR once I get to implementing that (at some point!).
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
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
A larger update today: I've incorporated a simple BRDF lighting approach and re-implemented normal mapping, this time with a proper tangent-space series of calculations. It's not perfect yet... but the tangents come out well on this cylinder shape, so that's a small victory.
I've also implemented spot lights and a relatively simple way to add additional lights too, which should come in handy.
Lastly, I've added in simple ship controls, which has helped me debug some issues I had with my inertia tensor calculations.
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I use a relatively simple method of grouping up particles in larger units, which are each representing by a single light source. Makesfor some nice looking visuals!
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
I've already played around with these mechanics so was keen to add them all in: simple skybox, orbital mechanics, orbiting camera. Clearly some issues on the graphics side, e.g. lighting is definitely wrong, but we'll get to making that look all pretty and correct when I go down a heavy graphics update (at some point).
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
Thought some graphics enhancements would make a nice change - this time, a simple smoke effect! Not perfect by any stretch, but will do the trick for now.
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This video showcases the use of springs-based physics on rigid bodies.
Rigid bodies are a more complicated entity than the particles being used before, as we now need to taking into account how forces affect the orientation / rotation of those bodies instead of only worrying about their change in position over time. This will depend on where the forces interact with the body in question.
The springs are visualized, so it should be easy to see what is going on in the underlying physics.
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This video showcases the use of springs-based physics on particles.
As all particles effect each other by pulling and pushing all other particles using spring-like mechanics, the rest state for the system lands up being an outer shell of a sphere. Looks pretty cool!
The springs are now visualized, so it should be easier to see what is going on in the underlying physics, compared to the previous video.
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly
This video showcases the use of springs-based physics on particles. The number at the top right hand corner represents the number of pairs of forces being applied every frame.
As all particles effect each other by pulling and pushing all other particles using (invisible) spring-like mechanics, the rest state for the system lands up being an outer shell of a sphere. Looks pretty cool!
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
Other Social Media stuffs:
twitch.tv/s0llygaming
twitter.com/s0lly
instagram.com/s0lly.gaming
github.com/s0lly
patreon.com/s0lly


