My old C++ Game Engine has been abandoned in favour a the new one I am starting to make. The new Engine will be more like a real engine.
You see, before, I had a lot of OpenGL code in my main.cpp file, and to me, this isn't good. A Game Engine should provide a layer of abstraction above the raw OpenGL code, so I just include my Engine header file and all the functions I call belong to the Engine or C++ itself. For example, with the way I was doing things before, if I wanted to move to Vulkan or DirectX, I would have to rewrite a lot of the code in my main.cpp file, and this isn't good.
So now, if I wanted to move to Vulkan or DirectX, I would just have to port my Engine to it, and my main.cpp file would stay compatible. While I have no plans on moving to Vulkan or DirectX, WebGL is a technology that interests me a lot, and to be able to port the games I will eventually made to WebGL would be good. Sadly, WebGL doesn't have all the features of "Desktop" OpenGL so it isn't 100% compatible, meaning I'd have to rewrite a lot of engine code.
To do this before would have taken a lot of unneeded effort, and that's not something I want. However now, it would still require effort to do so, but it would be for porting that engine, not main.cpp.
I have some plans, such as defining Colours and Checkerboard patterns as a class and being able to set models to them as I like. I'd like Colours and Checkerboard patterns to be castable to a Texture, so I don't need to do much else to get them to work.