Developing a game engine is as simple as losing weight. You need to eat healthy and run 6 miles a day. The hard part of losing weight is the psychological battle with yourself.
There is not much difference with developing a game engine. Technically, you need to learn OpenGL, C++, Python, Design Patterns, Algorithms and Linear Algebra. But that is the easy part. The real battle is the inner battle with your own mind asking you to quit.
I have been developing a game engine for about two years and every day I think about quitting. It is painful, psychologically, to work on something for so long and see little to no results. It drives you insane to stare at algorithms day after day and have no idea how to implement them. It rips your nerves apart to know that after weeks of debugging you can't find an answer.
Even though I want to quit, I just love working on the engine. It is a satisfying and scary feeling to push yourself over your intellectual and psychological boundaries. Intellectually, you will not be the same. Your developer skills will skyrocket. Psychologically, you will realize that your toughest enemy is and will always be your own mind.
If you decide to develop a game engine, be prepare to find out the following truths:
- It will be a slow process
- You will have tons of readings to do
- There will be not much to show for after all the hard work
- It can get a bit expensive
Aside from these issues, developing a game engine is fun. You have no idea how good it feels to bring pixels alive, simulate physics and see them collide. Try it, it is an amazing feeling.
PS. Sign up to my newsletter and get Game Engine development tips.