Saludos
Escribo este post un poco con la esperanza de poder aclarar y aclararme cual debería ser el camino a seguir, según qué situaciones, para desarrollar videojuegos, centrándonos en el tema de programar, más que de hacer diseño de niveles.
Yo ya tengo algunos conocimientos básicos, por lo que mi duda va más orientada hacia el futuro, que hacia la actualidad.
Personalmente, uso Unity, como muchos cientos, debido a su facilidad y a que permite hacer real, sin demasiados conocimientos, muchas de las cosas que queramos. No quiero entrar en el debate de si es bueno o no, bajo mi punto de vista, aunque Unity en la actualidad me permite calmar las ganas de crear juegos, me gustaría entender mejor como funciona lo que hay por detrás.
He estudiado algo de XNA, y con ello aprendí (un poco) el tema de la matrices, las proyecciones, y ya sólo de ojeada, el lenguaje que usa para los shaders.
Mi problema, e imagino que el de cualquiera que empiece en esto, es qué camino debería seguir uno llegados a este punto, en el que más o menos te defiendes, sabes, más o menos lo que es programar, y ya has hecho algunos trabajos reales en .NET y por placer en Android SDK y Unity.
Existen muchas API diferentes en este bonito mundo, y supongo que aquí se empieza a notar mi desconocimiento, porque no sé ni si se llaman API, engine o cómo exactamente.
Me refiero a: XNA, DirectX y OpenGL. (ya sé que XNA no está al mismo nivel, pero tampoco se aleja mucho por lo que leí en su momento)
Aunque he visto otros frameworks tipo Dark GDK (http://www.thegamecreators.com/?m=view_product&id=2128), creo, que son variaciones de estos primarios. Y supongo que XNA es una variación de DirectX. ¡Cuantas suposiciones! xD
Mi problema es que quiero verlos todos, y no abarco ninguno. Miro un poco de XNA, y luego paso a OpenGL (más bien OpenGL ES) y asi continuamente.
Por ejemplo, ¿para programar un visor de objetos 3D y poder crearlos, tipo 3DMax, que usaría? Imaginad la pregunta en su modo más simple, obviamente, no me refiero a programar 3dsmax.
Vale, me diréis que OpenGL es compatible con todos los SO, DirectX es privativo, y que XNA está muerto.
Pero para entender mejor todo el tema de la programación 3D, y al mismo tiempo, estudiar algo que me complemente en el futuro, ¿qué sería la mejor opción?
Personalmente, mi pequeño sueño desde niño ha sido programar Doom 1 como lo hizo John Carmack, sin Unity, UDK, ni nada. Un poco de C, pizza y muchas ganas.
Pero si de los sueños podemos sacar algo util, mejor, por eso mi duda va un poco orientada a qué estudiar, pero que me ayude a seguir mejorando en el futuro.
Ya sabéis como funciona esto, estudias una cosa, y poco después ves que otra cosa que usabas, se basa en esa misma. No digo que quiera llegar a ASSEMBLY, tampoco quiero exagerar, pero al menos no sentir que no tengo ni idea cómo funciona internamente un Raycast en Unity.
Otra duda que siempre he tenido, y tarde o temprano, yo creo que cualquiera que se meta en este mundo se plantea es... ¿cómo se diseña un nivel?
Me refiero: Si usas XNA, hagas lo que hagas, lo haces escribiendo, no hay un visor como en Unity o en UDK. Puedo entender que programes los objetos para que actúen de de una u otra manera según que situaciones, pero por ejemplo, un mapa del Doom, que tiene una forma establecida, unos enemigos en unas posiciones establecidas y unas texturas establecidas, ¿cómo cargas todo ese 3D a nivel de código? Teniendo en cuenta que hay colisiones, distintos materiales, animaciones en las puertas, texturas... Por no hablar de un Mario Bros, con los trozos de tierra (donde los pies hacen contacto con el suelo, vamos ) en X sitios a lo largo de un más que extenso ancho que ocuparía mucho más que un folio A4 dibujado a mano.
Estas ultimas preguntas son demasiado especificas, pero mi verdadera pregunta es: ¿Qué tengo que estudiar para responderme todas esas dudas?
Creo que si hubiera continuado estudiando XNA habría podido responder esa ultima pregunta, pero me daba tanta cosas que haya donde fuera me dijeran que XNA estaba muerto, y que usara DirectX o OpenGl... Jajaja, pero claro, ¿cual?
Muchas gracias por leerme!
Un saludo
Escribo este post un poco con la esperanza de poder aclarar y aclararme cual debería ser el camino a seguir, según qué situaciones, para desarrollar videojuegos, centrándonos en el tema de programar, más que de hacer diseño de niveles.
Yo ya tengo algunos conocimientos básicos, por lo que mi duda va más orientada hacia el futuro, que hacia la actualidad.
Personalmente, uso Unity, como muchos cientos, debido a su facilidad y a que permite hacer real, sin demasiados conocimientos, muchas de las cosas que queramos. No quiero entrar en el debate de si es bueno o no, bajo mi punto de vista, aunque Unity en la actualidad me permite calmar las ganas de crear juegos, me gustaría entender mejor como funciona lo que hay por detrás.
He estudiado algo de XNA, y con ello aprendí (un poco) el tema de la matrices, las proyecciones, y ya sólo de ojeada, el lenguaje que usa para los shaders.
Mi problema, e imagino que el de cualquiera que empiece en esto, es qué camino debería seguir uno llegados a este punto, en el que más o menos te defiendes, sabes, más o menos lo que es programar, y ya has hecho algunos trabajos reales en .NET y por placer en Android SDK y Unity.
Existen muchas API diferentes en este bonito mundo, y supongo que aquí se empieza a notar mi desconocimiento, porque no sé ni si se llaman API, engine o cómo exactamente.
Me refiero a: XNA, DirectX y OpenGL. (ya sé que XNA no está al mismo nivel, pero tampoco se aleja mucho por lo que leí en su momento)
Aunque he visto otros frameworks tipo Dark GDK (http://www.thegamecreators.com/?m=view_product&id=2128), creo, que son variaciones de estos primarios. Y supongo que XNA es una variación de DirectX. ¡Cuantas suposiciones! xD
Mi problema es que quiero verlos todos, y no abarco ninguno. Miro un poco de XNA, y luego paso a OpenGL (más bien OpenGL ES) y asi continuamente.
Por ejemplo, ¿para programar un visor de objetos 3D y poder crearlos, tipo 3DMax, que usaría? Imaginad la pregunta en su modo más simple, obviamente, no me refiero a programar 3dsmax.
Vale, me diréis que OpenGL es compatible con todos los SO, DirectX es privativo, y que XNA está muerto.
Pero para entender mejor todo el tema de la programación 3D, y al mismo tiempo, estudiar algo que me complemente en el futuro, ¿qué sería la mejor opción?
Personalmente, mi pequeño sueño desde niño ha sido programar Doom 1 como lo hizo John Carmack, sin Unity, UDK, ni nada. Un poco de C, pizza y muchas ganas.
Pero si de los sueños podemos sacar algo util, mejor, por eso mi duda va un poco orientada a qué estudiar, pero que me ayude a seguir mejorando en el futuro.
Ya sabéis como funciona esto, estudias una cosa, y poco después ves que otra cosa que usabas, se basa en esa misma. No digo que quiera llegar a ASSEMBLY, tampoco quiero exagerar, pero al menos no sentir que no tengo ni idea cómo funciona internamente un Raycast en Unity.
Otra duda que siempre he tenido, y tarde o temprano, yo creo que cualquiera que se meta en este mundo se plantea es... ¿cómo se diseña un nivel?
Me refiero: Si usas XNA, hagas lo que hagas, lo haces escribiendo, no hay un visor como en Unity o en UDK. Puedo entender que programes los objetos para que actúen de de una u otra manera según que situaciones, pero por ejemplo, un mapa del Doom, que tiene una forma establecida, unos enemigos en unas posiciones establecidas y unas texturas establecidas, ¿cómo cargas todo ese 3D a nivel de código? Teniendo en cuenta que hay colisiones, distintos materiales, animaciones en las puertas, texturas... Por no hablar de un Mario Bros, con los trozos de tierra (donde los pies hacen contacto con el suelo, vamos ) en X sitios a lo largo de un más que extenso ancho que ocuparía mucho más que un folio A4 dibujado a mano.
Estas ultimas preguntas son demasiado especificas, pero mi verdadera pregunta es: ¿Qué tengo que estudiar para responderme todas esas dudas?
Creo que si hubiera continuado estudiando XNA habría podido responder esa ultima pregunta, pero me daba tanta cosas que haya donde fuera me dijeran que XNA estaba muerto, y que usara DirectX o OpenGl... Jajaja, pero claro, ¿cual?
Muchas gracias por leerme!
Un saludo