En primer lugar, aumente su formación teórica básica en lo que aún no sabe. Estudie la teoría y escriba algunos ejemplos breves.
El ejemplo de fondo teórico básico incluye:
- Algoritmos y estructuras de datos
- Diseño de software (UML, patrones de diseño, OOP)
- Sistemas Operativos y Programación Paralela
Luego, considere aprender un lenguaje adicional (por ejemplo, Java o C #). - Estudiar idiomas adicionales ayuda mejor bajo los pros y los contras de cualquier idioma que esté usando y lo ayuda a aprender las mejores prácticas que quizás no conozca.
Luego elija un nuevo dominio (programación web, gráficos por computadora, procesamiento de imágenes, visión por computadora, acceso a datos, ...). Estudie la teoría y escriba algunos ejemplos breves.
A continuación, cree un ejemplo grande, que encapsule una aplicación de varias capas, manejando el acceso a datos, la interfaz de usuario y un dominio específico que haya elegido. Ponga énfasis en la arquitectura de la aplicación (asegúrese de que sus partes estén tan acopladas como sea posible).
Con suerte, aprenderá cómo aprender nuevos enfoques y tecnologías e integrarlos con una buena arquitectura.
Específicamente para la programación de juegos, recomiendo elegir los siguientes dominios / tecnologías:
- Conceptos básicos de procesamiento de imágenes
- Cualquier tecnología de interfaz de usuario específica
- Conceptos básicos de gráficos por computadora
- Cualquier motor gráfico específico (por ejemplo, DirectX, OpenGL, OGRE, ODG, Java3D, ...)
- Conceptos básicos de física mecánica
- Cualquier motor de física específico (por ejemplo, PhysX, ...)
- Cualquier motor de juego específico (por ejemplo, XNA, ...)
- Programación multiproceso
- Programación distribuida
Editar:
Cómo aprender:
- Lea y ejecute ejemplos de CodeProject.
- Explore algunos libros en una biblioteca o tienda de libros / libros electrónicos hasta encontrar un par de libros que le gusten (que coincidan con su estilo de lectura + cubran los temas sobre los que desea leer).
- Leer blogs
- Pruebe cosas y pregunte en StackOverlow cuando se quede atascado.