Estos son los pasos:
- Paso 1: Aprende Álgebra Lineal
- Paso 2: Aprende C++ (o cualquier lenguaje que quieras)
- Paso 3: Desarrollar un motor matemático
- Paso 4: Aprender infografía
- Paso 5: Aprende OpenGL y haz muchos proyectos
- Paso 6: Aprender patrones de diseño
- Paso 7: Desarrollar un Motor de Renderizado
- Paso 8: Repasar las Leyes de Movimiento de Newton
- Paso 9: Aprender algoritmos de geometría computacional
- Paso 10: Desarrollar un motor de física
- Paso 11: Desarrolla un juego, Prueba & Repite
- Libros para empezar
Paso 1: Aprende Álgebra Lineal
Primero, aprende Álgebra Lineal. No, no me refiero al Álgebra que se enseña en la escuela secundaria. Me refiero a conceptos de Álgebra Lineal como Vectores y Matrices. Céntrate en aprender las operaciones de vectores y matrices, especialmente el producto punto, el producto cruz, las transformaciones espaciales.
Paso 2: Aprende C++ (o cualquier lenguaje que quieras)
Luego, aprende a programar. Te sugiero que aprendas C++. En este punto, no tienes que ser un experto en codificación. Pero sí aprende sobre clases, métodos, herencia, polimorfismo y encapsulación.
Paso 3: Desarrollar un motor matemático
A continuación, utilice sus conocimientos de vectores, matrices y codificación para desarrollar un motor matemático. Operaciones como el producto de puntos, el producto cruzado y la transformación del espacio se utilizan mucho en el desarrollo de motores de juegos.
Paso 4: Aprender infografía
Ahora viene la parte divertida. Familiarízate con los conceptos de Computer Graphics, especialmente con el Rendering Pipeline y los Shaders. Evita codificar y utilizar la API OpenGL por ahora. La API OpenGL es confusa de entender si tienes un conocimiento limitado de los conceptos de gráficos por ordenador.
Paso 5: Aprende OpenGL y haz muchos proyectos
Una vez que te sientas cómodo con los conceptos de gráficos por ordenador, aprende sobre la API OpenGL y los sombreadores OpenGL. Haz tantos proyectos como sea posible. Aprende a renderizar personajes, a rotarlos y a traducirlos. Aprende cómo funciona el texturizado y la iluminación con OpenGL. De nuevo, esta es la parte divertida, y sugiero hacer tantos proyectos como puedas.
Paso 6: Aprender patrones de diseño
El siguiente paso para convertirse en un desarrollador de motores de juegos es aprender la arquitectura de la API. Un motor de juegos es simplemente una API, un marco de trabajo, que se encarga de todo el renderizado, la física y las operaciones matemáticas. Es primordial que desarrolles una API que sea modular, flexible, mantenible y adaptable.
Para desarrollar una API, necesitarás aprender Patrones de Diseño. Los patrones de diseño más comunes son Singleton, Observer, Strategy, Composite, Factory entre otros.
Paso 7: Desarrollar un Motor de Renderizado
En esta etapa, estás listo para combinar tus conocimientos de Álgebra Lineal, Computación Gráfica, OpenGL y Patrones de Diseño para desarrollar un motor de renderizado.
Paso 8: Repasar las Leyes de Movimiento de Newton
Una vez que hayas completado el motor de renderizado, es hora de trabajar en la parte más difícil del motor, es decir, el Motor de Física.
La buena noticia es que no necesitas ser un físico para desarrollar un Motor de Física, pero sí necesitas conocer las Leyes de Movimiento de Newton y cómo se implementan utilizando algoritmos como el de Runge-Kutta.
Paso 9: Aprender algoritmos de geometría computacional
Un motor de juegos no es un motor de juegos sin detección de colisiones. Para desarrollar un sistema de detección de colisiones, necesitas aprender sobre algoritmos de Geometría Computacional como GJK, BVH y Sutherland-Hodgman. Estos algoritmos se utilizan para detectar si se ha producido una colisión, dónde se ha producido y qué objetos tienen más probabilidades de colisionar.
Paso 10: Desarrollar un motor de física
Una vez que conozca los algoritmos mencionados anteriormente, debería ser capaz de desarrollar un motor de física con un sistema de detección de colisiones.
Paso 11: Desarrolla un juego, Prueba & Repite
Enhorabuena, ya tienes un Motor de Juego. Desarrolla tantos juegos como puedas y prueba el motor de juego tanto como sea posible. Corrige errores, implementa nuevas características, desarrolla juegos y repite. Créeme; esta es la mejor parte de todas.
Libros para empezar
Aquí tienes una lista de libros que te ayudarán a empezar:
Matemáticas 3D
- Manualidades 3D para el desarrollo de gráficos y juegos
Motor de renderizado