Desarrollar juegos no es algo tan simple como me dio la perra y hagamosle.
Como han dicho, desarrollar juegos tiene su fundamentacion matematica la cual es base para el 99.9% de los efectos que se ven en los juegos de hoy dia.
* Se requiere de dominar el algebra Lineal, la geometria y algo de calculo
* Si el engine tendra parte fisica, dominar las leyes de la fisica newtoniana es un requisito.
* La geometria es fundamental para temas como las colisiones y alguno que otro efecto raro, o simplemente trabajo con poligonos.
* Dominar de manera colosal un lenguaje de programacion optimo para la tarea como C/C++ y depronto C#.
* Tener buenas practicas de programacion para no llegar a la locura cuando el codigo del engine sea tamaño Impressive.
* Buenas pautas en diseño de software definen el futuro del juego, un buen diseño termina en un buen producto.
* Dominar un API comercial actual y no salirse de ella, las mas comunes son OpenGl y Direct3D que ofrecen una abstraccion de las GPU actuales
* No tenerle miedo a absolutamente nada por complejo que se vea, y no hacer las cosas mas complejas de lo que realmente son. Keep it simple, baby.
* No trabajar solo, debes tratar de lograr un pequeño equipo de trabajo en el cual cada uno se encarga de una parte del jeugo o del engine.
* Por ultimo, un buen arte es la base del juego, unos buenos diseños unos buenos modelos y mapas definen el futuro del juego asi como tambien la historia.
Antes que nada si te vas a meter en ese mundo debes entender que uno va aprendiendo y a medida que va aprendiendo se va moldeando, si aprendes errores, tu vida de game programmer sera un error, asi que preocupate que cada poquitico que entiendas, lo entiendas perfectamente.