martes, 8 de septiembre de 2009

"El Mundo Maravilloso de Programación de Videojuegos" por Kunashu



Muy a menudo me encuentro con muchachos que me dicen que se metieron a la carrera de ingeniería en sistemas porque quieren aprender a programar videojuegos. Después me sorprendo porque cuando me les acerco varios semestres después, me dicen que ya no se sienten apasionados por hacer videojuegos. Me pongo a meditar, para encontrar la respuesta del porqué muchos desertan de este sueño.


He llegado a varias conclusiones, que en mi opinión tiene sentido. La primera es que muchos chavos piensan que la carreara de ingeniería en sistemas les va a enseñar a programara videojuegos. Esto es un gran error, pues esta carrera solo proporciona las bases para que uno se pueda mover a diferentes áreas dentro de sistemas, como desarrollo de ERP, desarrollo de software embebido, software distribuido, ingeniería de software, entre otros.  Desafortunadamente, sólo hay algunas pocas universidades que ofrecen unas cuantas clases optativas para programación gráfica, pero en sí, ninguna de programación de videojuegos. En verdad no he visto apoyo para latinos en este rama de programación, ni siquiera de la organización IGDA que se encuentra en México.


Otra razón por la cual hay muchos desertores es que cuando uno se propone a desarrollar juegos, se mete a buscar APIs (Aplication programing interfase) y se encuentra con un mundo de opciones. Uno puede usar DirectX, la API de IPod, Flash, OpenGL, XNA, RPG Maker, Dark Basic, y muchas más.


Según la industria, DirectX y OpenGL son las API que usan los pros. Así que uno se trata de meter y se encuentra perdido entre los apuntadores, HINSTANCE, WNDCLASSEX, ¡¡¡y todavía no estamos programando videojuegos!!!!. Entonces uno se puede abrumar y mejor se pone a programar páginas web, jeje (nota: No tengo nada en contra de programar páginas web, es solo un ejemplo :P).


Por medio de este post quiero presentarles una opción para embarcar en la aventura que es programar videojuegos. Seré sincero, puedes ser un poco tedioso y sí involucra matemáticas, pero después de haber resuelto unos cuantos problemas, verás que agarrarás un gusto por las misma y te veras leyendo libros de física  y algebra lineal por puro gusto (chin creo que me estoy proyectando :P).


Primero déjenme mostrarles una API relativamente nueva que se llama XNA. Ahorita están en la versión 3.1. Se puede encontrar en el siguiente link: creators.xna.com. Esta es una API que se usa en conjunto con el lenguaje de C#.


Ya se algunos me pueden mentar la madre por recomendar un producto de Microsoft, pero antes de que avienten bombas molotov a mi casa, escuchen lo que tengo que decir. Esta pequeña biblioteca fue algo que finalmente Microsoft pudo hacer bien. Aparentemente se enfocaron en que el programador no se tenga que preocupar en cosa tediosas como apuntadores, manejo de la tarjeta de video, entre otras cosas, y que se enfoque en programar videojuegos. Eso es algo muy bueno, porque uno se puede enfocar en aprender cosas como un sistema de tiles, de partículas y de menús sin la necesidad de preocuparse de que la memoria no se liberó.


Yo recomiendo le echen un vistazo y busquen tutoriales sobre cómo hacer cosas básicas como animaciones 2D, uso de vectores, rotar objetos en pantalla y chequeo de colisiones. Por mi parte, procuraré subir artículos sobre algunos tips de cómo darle más estilo a sus juegos cada semana.


Con esto me despido y nos estamos viendo.


Kunashu


4 comentarios:

Kaleidos dijo...

Por Kaleidos y Horchato
Estimado Kunashu efectivamente no es facil encontrar el camino. También es cierto que hay muchas opciones. Sin embargo, sentimos que el XNA es limitado porque solamente sirve para Xbox 360 y PC. Por suerte, cada vez hay más herramientas "user friendly" con sistemas accesibles para simples mortales y con más opciones de plataforma. Saludos!

Anónimo dijo...

Nancy dice:

Estoy llena de dudas y sonrio.

Kunashu dijo...

Si es verdad que XNA esta limitado por que solo sirve para Xbox 360 y PC. Lo que se me hace chido es que gracias a xna, uno puede aprender conceptos básicos de programación de videojuegos como un sistema de partículas sin enfocarse mucho en la API. Así una vez que se dominen, se pueden aplicar usando la API que uno quiera. :D

Kaleidos dijo...

Sipi! gracias por los comentarios Kunashu ;)