AO

Game Engine Progressoin

Earlier I was looking through my photos, and I've found some pictures and recordings of my attempts in my game engine since 3 years ago. I think there were at least 2-3 versions of Lumina Studio at this point?

The Earliest One (Late 2023)

image

This probably is very recognizable by people who started graphics programming because this is me following through the learnopengl. This had made me at least a bit comfortable with high level (can I still call it high level though?) rendering.

Early 2024 (Still OpenGL)

image

This is where I start to venture into lights, particularly directional and point lights. Which isn't really that bad. What had broken me down though are...

Shadow Map Adventures

image

This. I didn't have any footage or photos of the pointlights but these are the ones that broke me. I remember feeling so defeated by them, not because of the effort to create shadow maps, but the sheer amount of preparations that you need to do in order to get them to look correct.

Getting them to the textures are one thing, but mixing it with a moving camera is another.

Mid 2024 (Still OpenGL)

image

This is where I tried to import different models to the engine. I completely given up on this I think because I did not have a good architecture to support multiple 3D types, which would have been great.

Around this time as well I was already reading up on Vulkan and trying it out.

image

Then I decided that I should be doing Vulkan instead of OpenGL. This was a start of a love and hate relationship between me and the game engine that I am writing.

Early 2025

During this time, I have gotten more serious about Vulkan, and decided to write a simple triangle which took me 3 whole months to understand (I still don't so stop asking).

Mid 2025

image

After battling with the boilerplates of vulkan, I suddenly had a great idea.

"What if I started C# scripting?"

Which then forced me into a 3 month long hiatus after.

The new Rendering Architecture (Late 2025)

I used the 3 month hiatus to figure out what I really wanted in the game engine because I realized with all of my attempts, I needed to pin down what I wanted it to do, which led me to an architecture that I now use today:

image

This wasn't much but it had a strong foundation for the next iterations of Lumina Studio.

Which actually spiraled into my future integrations

image

and allowed me to import more complext models into the engine

image

Which then ran like 12 or less frames per second.

Stupidly enough, I had another great idea: Multithreading.

End of 2025

image

In order to support multithreading, I had wreack my brain, and my current understanding of how my engine should run, and the first improvement that I did with the renderer that I had was to create immutable render packets for the threads to consume, and the gpu to execute.

This wasn't an easy feat.

Basically, the game engine's process will be split into two: Main Thread prepares frame packets, and the Renderer consumes the packets. This had allowed me to reduce my race conditions and have a clear separation between the main engine processes, and the render engine processes.

and it grew from that idea

image

2026

This is the year where the game engine is much sturdier and most of the features that I do is specifically for the editor now:

image

and slowly, the engine grew better and bigger:

image

PBR was one of the best visual candy of all

image

image

image

and not only the sponza, but the engine is now capable of handling different models as well unlike before:

image

image

image

So yeah, it's been a while since I have been doing this project. I am unsure even now how much iteration that I had to do in order to get to this point.

Screenshot_20260515_060920

Now i had spent hundreds of hours, 800++ commits, 50,000++ lines of engine code and 50,000++ lines of editor code and there's still sooooooooo much to do.