If computer graphics, mathematics, and programming fascinate you, then Game Engine Development may be suitable for you. The only downside is that it takes a long time to develop a game engine. In my experience about three years.

However, if you want to have a game prototype within six months, then use a game engine such as Unity or Unreal instead.

I say this from experience. Back in 2013, I decided to develop a 3D game engine from scratch. Three years later, in 2016, I was able to complete the "basic" framework of the engine.

Throughout these three years, I had to learn computer graphics, OpenGL, linear algebra, design patterns, computational geometry algorithms, etc. I had to read a lot. If you don't believe me, here is a photo of all the books I had to read to develop the "basic" framework of the engine.

Notice that I keep mentioning: "Basic Framework of the engine." Such statement is vital to keep in mind. After three years of development, all I had was a skeleton; the engine could only run simple games. And it lacked many, many features.

For most of last year (2017), I focused on improving the engine; I fixed hundreds of bugs and implemented features. The engine has improved a lot. However, it is not ready for primetime yet. My goal for this year (2018) is to make further improvements. Hopefully, version 1.0 will be ready by the end of 2018.

Here is beta version v0.0.8 of the engine as of today

Why do I tell you this? So that you understand the work required to develop a game engine. It is not an easy task, and it will take a lot of time.

So, if you want to have something ready within a reasonable amount of time, use a game engine to develop your game. But if you are interested in learning Computer Graphics, OpenGL/Metal, Design Patterns, Computational Geometry Algorithms, Linear Algebra, Object-Oriented Programming concepts, and don't mind going crazy, then go ahead and develop a game engine.