¿Crees que es posible pasar directamente de la programación C ++ experimentada (aproximadamente 5 años) directamente al aprendizaje de DirectX 3d?
Quiero decir ... comenzaría con lo básico, estoy más interesado en configurar Demos (como obtener una buena demostración de agua y tal) que hacer un juego completo.
¿Crees que esto es posible?
Respuestas:
Absolutamente es posible. Un gran punto de partida Introducción a la programación de juegos en 3D con DirectX 10 de Frank D. Luna . Es muy fácil de leer, le permite implementar rápidamente muchas funciones comunes y sirve como una excelente base para aprender más sobre DirectX y la programación de juegos.
fuente
Por supuesto, aunque recomiendo comenzar con una aplicación 2D muy simple, ya que la curva de aprendizaje inicial (simplemente hacer que una aplicación DX se ejecute puede ser una tarea difícil) puede ser bastante empinada, y es útil saber si los problemas que está viendo son Específico 3D, o si solo te falta algo muy básico.
Implemente Pong: aprenderá conceptos básicos como poner en marcha una aplicación DX, procesamiento de entrada, detección de colisión básica y, lo más importante, cómo dibujar cosas en la pantalla.
Si es su primera aplicación, debería llevarle menos de una semana ponerla en funcionamiento. En ese punto, debe comprender los conceptos básicos del marco DX y estar listo para comenzar otro proyecto en el que pueda centrarse en los aspectos 3D: matrices de transformación, gestión de objetos / estado, selección, iluminación, etc. Tal vez implemente 3D pong, o Raquetball.
fuente
Por supuesto que es posible. También es posible aprender C ++ como su primer lenguaje de programación. Pero probablemente no sea la forma más rápida de llegar allí.
Pasar de "programación" a "programación de juegos" requiere aprender algunas cosas independientemente de los gráficos: bucles de juego, entrada en tiempo real, etc. Es MUCHO más fácil de aprender si no tiene que lidiar con el aprendizaje de una nueva biblioteca de gráficos al mismo tiempo. Aprende una cosa a la vez y probablemente te resulte mucho más fácil. (Y si eres un programador experimentado, aprender las cosas en 2D realmente no debería tomar tanto tiempo de todos modos).
fuente
¿Qué tiene en común 2D con 3D? No mucho. El 2D es un mundo plano o un 3D falso que, si bien tiene una apariencia visual que se parece un poco al 3D, tiene un código muy diferente del 3D real.
Incluso para las cosas que tienen en común, como la detección de colisiones, ¿qué tan difícil es extender el código en 3D? Muy fácil.
En pocas palabras, aprender 2D no te ayudará tanto como podrías pensar en tu viaje para aprender juegos 3D o diseño de motores. Tienen poco en común y, por lo que tienen en común, el 2D no es realmente un "peldaño" fácil para llegar al 3D.
Como sugirió David Lively, es posible que desee comenzar con un juego 2D muy básico como Pong, pero no piense que tendrá que recrear Final Fantasy, Super Mario Brothers, Zelda, etc. antes de poder continuar con abordando 3D. Incluso el trabajo introductorio como este no tiene el propósito de adquirir mucha experiencia en 2D, sino el propósito de hacer que todo sea lo más simple posible para que pueda ver conceptos y métodos básicos (detección de colisión, inicialización de la biblioteca de gráficos, etc. .) que tienen tanto que ver con 3D como con 2D, lo más rápido posible para que pueda pasar al siguiente paso. El siguiente paso podría ser crear un menú "Nuevo / Guardar / Cargar / Salir", que volverá a hacer lo más simple posible, y luego seguirá agregando cosas (+1 dimensión al movimiento, modelos,
Sin embargo, digámoslo de esta manera. Después de aprender algo de teoría en un curso universitario sobre diseño de juegos, nos encargaron hacer un motor 3D. Lo hice en aproximadamente una semana. Dibujó objetos en 3D, proyectó sombras, dibujó texturas, realizó mipmapping, detectó colisiones, le permitió saltar y apareció un menú si hacía clic derecho o presiona {ENTER} o {ESC}.
La parte que lleva mucho tiempo lo hace elegante ... ya sea afinando el motor o haciendo modelos / texturas / animaciones, contenido del juego, etc.
fuente
Si. Como ya conoces C ++, ahora solo tienes que aprender una API y una teoría. El obstáculo principal para aprender 3D específicamente es probablemente las matemáticas involucradas. Mientras que las matemáticas 2D son bastante fáciles de entender a un nivel mínimo, 3D requiere una comprensión más compleja. También hay un montón de cosas como sombreadores que definitivamente son más relevantes para 3D que para 2D. Sin embargo, si planeas hacer un juego, tomaría una ruta rápida en 2D solo para tener la sensación de hacer un juego de principio a fin (¡y tal vez obtener un sistema GUI que puedas usar!) Antes de entrar en 3D.
fuente