Ever since I was in high school, I wanted to create my own games. But as I went through collage I learned Unity, allegro, game-maker, and even had some time with using RPGMaker. The problem was that the more SDKs I used, the more and more I felt limited by them. Sure these engines and Kits are extremely powerful and you can make great games with them. But you are limited to the thought patterns of the person or team who created that engine. Back in the day engines were created WITH the games themselves.
A lot of cool and innovate ideas cont be explored, mainly just because some of the things are not possible, or they require workarounds. Then the implementation of external services to your game becomes tedious. I can already hear the question now:
“So your creating a game engine to solve the problems of using a game engine?”You
No. I’m creating a game engine because I want to understand the challenge of it; And to make something I want in my own way. So far with every game iv made the engine has had to be rebuild from scratch. Now I’m on the 3rd iteration of it. Which is technically the fourth/fifth.
Tens of thousands of lines of code. Written and re-written, Revised, disposed of, re-implemented. Even now I’m not happy with it. Even tho it somewhat works.
My goals for this engine was it had to be made of separate pieces. Each of them inter-dependent of one another. Each of them could be there own stand alone part that could be used in any number of applications. The same module I use to play sound, should be easily implemented into a music player app.
The second goal, is that the Game engine itself Has NO! idea of the processes behind the modules. The game engine does not need to know nor care that its running OpenGL, Vulcan or DirectX.
The third goal, is that each of the pieces themselves should be implementable with a variety of different library’s.
Fourth, It needs to be intuitive. No “You can only do it this way” sort of thing. You should be able to do it. Even if it is not the best way to do so.
Finally the last goal, is that the parts need to be re-usable. There is a good chance that some of the parts or pieces are going to be re-Written of completely abandoned. I really need to stop writing the same code over and over again.