So, you want to develop a game engine?
That is great! The good news is that you will learn so much about computer graphics. Your programming skills will improve x10. You will no longer be the same.
Now the bad news:
1. It is a slow process
Yes, it is a slow process. There is so much that you have to read. So many algorithms you have to implement. So much that you have to learn and understand. If your programming skills are weak, then you will have to work on it. If your understanding of Design Patterns is weak, then you have to improve it. If your Linear Algebra is weak, then you have to practice it. If your understanding on OpenGL is weak, then you have to read over 700 pages. All these just to implement the Rendering Engine. Add more long nights, frustration, and confusion if you plan to add a physics engine.
Just to get the 3D animation right in a game character took me over three months of implementation.
2. You will have tons of readings
I hope that you enjoy reading, because you will do a ton of it. I have read over 48 books on:
- Computer Graphics
- Physics Engine
- Collision Detection
I'm not even mentioning all the articles I have read on these topics. Trust me, there will be tons and tons of reading. Obviously, I haven't read all of these books cover to cover (Some I have). But as you progress through the development, you will find yourself reading over chapters that were initially over your head.
Here is a photo of some of the books I had to read to develop a game engine:
3. Not much to show for after all the hard work
This is the hardest one, psychologically I mean. It sucks to spend months and months reading and coding, just to add a small feature to the engine. For example, getting the shadows right can take quite a few weeks of work. The concept is straight forward, but getting it right takes time. It is easy to give up when you see few results. But is a sad reality. There will be months of a lot of work with few results.
4. It can get a bit expensive
Yes, I think I have made Amazon rich! Just kidding. But for real, expect to spend a lot of money on Amazon. I'm sure you know how expensive technical books are, so you know what I mean. If you can, try to buy used books. Just for the heck of it, let's see how much I have spent on Amazon. I have bought about 48+ books to develop my game engine. Let's assume that on average I have spent $50/book. That brings up a total of $2400 just on books.
See, buy used books instead :).
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 OpenGL development tips.