An introduction
Goal
Welcome to my blog where I will be documenting the development of my game engine Pyro. The goal is to work on this engine while I am studying to have as a portfolio project once I complete my degree. Pyro will be a showcase of everything I have learned about graphics programming, tool development and game engine design over the years.
Who am I
TL;DR
My name is Louis, wannabe game engine dev and am now studying B.Sc. Computer. Science. I am from South Africa. I have been programming since age 9. I am (as of writing) 19, I play Guitar, and I like coffee.
The long story
My name is Louis, and I am as of the publishing of this post 19 years old. I have been programming since the age of 9 when I recieved a programming book for my birthday. (Sadly I do not have the book anymore, and I cannot rember the title -- I will update this post if I remember). The book learned me basic python, and I fell in love with programming. My early years were spent creating text based games in pyhon, C++ and C# and playing around with Construct 2 where I fell in love with game development.
Soon after in around 2016 I discovered unity where I spent quite some time playing around with it and trying to understand how it worked under the hood. At the time I also played around with Cryengine and Unreal, but at the time I did not have a powerful PC so sticked to unity as it was more lightweight.
In around 2018 I discovered ethical hacking and spent most my time doing CTFs, binary exploitation, and reverse engineering challenges. This gave me an good understanging of the low level workings of an computer, from being able to read assembly to understanding the way cache works. However I did not stick to the art as I realised that my true love was game development.
In late 2019 I returned to game dev but with a new plan, I wanted to create a game engine. I fist started with learn opengl, and started by first engine project, BlueSnow. Soon my engine started to have serious performance problems that I did not know how to solve, and since this was my first project I abandoned it. Looking back it was because of the way I implimented multithreaded loading of resources, with resources each having a mutex being locked before drawing/update.
The age of fireworks
At this stage it was clear that I did not know the first thing about creating a good game engine design, so I started experimenting. From 2020 to 2022, I created a series of engines with the name Firework engine, each with a wildly different design. Here is a list of them:
During this time I also had a part time job between November 2021 to Jan 2023, so as school and my job needed more time my engines recieved less.
Space Engine
After finishing school and starting by B.Sc. in Computer science in 2023, I started a new engine, called SpaceEngine, to experiment with creating a C++ in a C style project. I did not like the style, but I did learn a lot about how to optimise code.
Here we are now
Here in the end of 2023 I have decided it is time to create a serious game engine project, and I have chosen the name Pyro for it. Let's see how this goes.