I don't play video games. I don't even own a game console. I have played Atari games less than five times. And for what I can remember, I only played Mario Bros less than ten times. Yet I'm working in developing a game engine.
I know what you are thinking. "How in the world could you be developing a game engine if You don't even play video games?". Trust me. I ask myself this question often.
Many times I feel like an impostor. Like attending a party, I never was invited. But before I get kicked out of the party, let me explain myself.
I'm good at math. I love programming. I love computer graphics, and I love challenging problems. I have never been a gamer. I could care less for gameplay, game story, etc. What gets my curiosity are the graphical effects in a game. For example, have you ever wondered how shadows are produced? Or how characters collide with each other? Have you ever wondered how the engineers take full control of pixels on a screen and simulate realistic physical effects?
Those were the questions I asked myself whenever I played a video game. And the answers to these questions got me interested in computer graphics.
I taught myself OpenGL. I spent hundreds and hundreds of hours trying to understand computer graphics. Eventually, I became good at it. However, that hunger to be the master of pixels on a screen was not satisfied. I wanted to do more with computer graphics. I wanted to do something beyond my intellectual abilities. Something that I knew I was not qualified to do. Something that I knew with 99% certainty that I was going to fail.
Why did I decide to develop a game engine? I don't know. It just happened. I woke up and without knowing what a game engine is or does, I decided to develop one. I jumped into developing something I didn't understand.
I read a lot and understood nothing. Programmed a lot and threw everything I coded into the trash. My first couple of attempts were complete failures. But with every failure, I was more intrigued. I couldn't throw the towel. And 3 1/2 years later, I finally was able to get it right.
In the end, I have felt in love with game engine development. No, I still don't play games. I leave the gameplay and the game story for gamers. I'm more interested in creating a tool that helps game developers create games faster and easier. I'm more interested in coding 1000 lines of code so that developers can enable collisions in a game with one line of code. Or write 100 lines so that developers could enable shadows in a game with one line of code.
So why is a non-gamer developing a game engine? Because you need someone like me, a geek who loves mathematics, programming and computer graphics, to develop tools game developers need to create games you enjoy.