jueves, 3 de febrero de 2011

Historia


Empiezo con una historia por ahora no demasiado larga pero sí interesante para mi de contarles. Pienso redactar desde donde viene mi interés por los videojuegos y cuales fueron mis pasos, desde chico hasta ahora como programador de juegos.

Dejo todo claro con links (los que recuerdo) y libros que fueron para mi fundamentales en el aprendizaje ya que creo que esto puede ser de gran ayuda para aquellos que se pregunten cómo empezar con el desarrollo de videojuegos, pregunta que alguna vez me hice yo, y que en alguna ocasión recurrí a internet para buscar consejos.

Y así empiezo, a los 13 años o 12 quizá (es una gran duda fue por mitad de primer año cumplo años el 19 de junio es más probable que haya tenido 13 jaja), mi mejor amigo me prestó un cd que mucho no le gustaba, resultó ser el Div Games Studio 2.0 (una amigable y muy bien documentada herramienta como para comenzar con el desarrollo de video games). Otro compañero a quien ya se lo había prestado, me explicó las bases de como empezar con esta herramienta. De ahí en más comencé a aprender, a prueba y error y leyendo una y otra vez la documentación del CD. Sin Internet era todo distinto, había muchas menos alternativas, cuando no entendía algo había que leer de nuevo y volver a probar. Por un lado, eso también estaba bueno.

Aquí surgió DSL Tech y entre los desarrollos se encontraron un juego de naves, el viejo Pong, intentos de juegos de aventura y RPG, y un generador de nombres y sobrenombres asignados aleatoriamente en base a unos vectores largos creados para ese fin y formando nombres muy graciosos jaja :P

En base a todo esto y a mi gusto de la programación como un hobby es que desde chico ya tenía en claro que la computación era lo mío. 

Por estos años continué con el Div, y pasé brevemente por Visual Basic y por algo de Java Mobile.

En 2007 comencé Ingeniería en Sistemas, y en ese mismo año, por mi cuenta me había comprado El lenguaje de programación C de Kernighan y Ritchie (el mejor libro de programación que leí hasta ahora). 

Con la base de ese libro fui realizando los ejercicios que planteaba, y algun que otro proyecto DOS por mi cuenta, de todas formas mi orientación iba hacia otro lado, mi gusto del Software fue siempre a lo gráfico es por eso que pronto pasé a C++, tomando como principal referencia la web C Plus Plus, y leyendo tutoriales de allí, y ya después el libro: The C++ Programming Language de Stroustrup.

En la facultad mientras veíamos C, como principal proyecto para DOS en C está mi calculadora, digna de ver!!



Al conocimiento de C++ agregué SDL, y surgieron juegos como los siguientes:






La última foto es de un juego interesante de ver, el Fuckin' Last Pong, es un excelente y entretenido Pong 2 Players, bastante mejor que los pongs anteriores que había desarrollado en Div.

Como pilar fundamental para aprender SDL tomé los tutoriales de Lazy Foo, son verdaderamente interesantes, muy recomendables!!

También realicé en este tiempo una aplicación explicando de cierta manera recursividad y el algoritmo usado para resolver Torres de Hanoi, en esta aplicación se muestra el recorrido de llamadas que va haciendo para resolver el problema:





A todo esto luego incorporé la librería Box2D y a jugar con las físicas!! Todo este tema me llamó la atención luego de haber conocido juegos indie como Tower of Goo y una demo del Crayon, que de ambos surgieron versiones completas (el primero llamándose World of Goo). El Crayon usó Box2D como librería para la simulación de físicas reales. Estos 2 juegos son excelentes juegos independientes (como también el Braid y el Super Meat Boy).

De Box2D tomé como fuente principal de aprendizaje su User manual, y luego adapté ese código para funcionamiento con SDL, o sea para representar con gráficos las figuras geométricas que calcula Box2D.

Mi incorporación de físicas al desarrollo se puede apreciar en Coding Me!





A todo esto le siguió mi aprendizaje de Base de Datos en la facultad, y de Java e interfaces, conexiones a BD y redes. Lo que despertó mi interés para relacionar todo esto con los juegos. Es por eso que comencé a dejar un poco de lado las aplicaciones de escritorio (más que nada porque no tuve el tiempo para trabajar en ambas cosas). Y continué ampliando el Ahorcado en Java que desarrollé como un ejercicio de la facultad, primero transladándolo a un applet.

Y luego conectándolo mediante sockets a otro servidor Java, que a su vez se conecta a la base mysql y así manejando la web app en 3 capas. También le sume un poco de conocimiento de Developers para Facebook para administrar los distintos jugadores del Ahorcado Online que está actualmente funcionando en Fb.

Siguiendo con está línea de Internet, continué con RIAs y desarrollo de Web App con Flex. Orienté hacia esta tecnología ya que Flex usa Actionscript al igual que flash, y este es el lenguaje que mejor se adapta para la programación de juegos online.

La mejor fuente a mi gusto para aprender Flex son una serie de videotutoriales con ejercitación incluída llamados Flex in a Week, el contenido de esa web es realmente excelente!! Me llevo un poco más de 1 week jaja creo q 10 días (por cuestiones de tiempo) pero realmente valió la pena ver cada uno de los tutoriales.

Noté a simple vista que los juegos de Flash en Fb son los mejores, además las librerías de gráficos en Java son bastante pobres. Ya antes me había desilusionado al aprender un poco de Java Fx (Lenguaje Java orientado a RIAs), y es por eso también que decidí orientarme a Adobe Flash. Además le tengo bastante fe al progreso de Flash hacia aplicaciones 3D para la Web.

Linkeo mi anterior entrada para mostrar lo hecho en Flex: RIAs con Flex.

Y mi último paso fue pasar por fin a Flash y Flash Media Server y distintos tipos de conexiones con estos, como Remote Shared Object, y RMTP, y algunos otros protocolos interesantes que aún no implementé.

Actualmente para as3 me baso con la referencia oficial de Actionscript y este libro que tengo desde el año pasado.

Como mi último enlace dejo el de Emanuele Feronato, una página más que recomendable de Flash, en la cual hay excelentes tutoriales. 

Bueno eso es todo por ahora, y ya pronto voy a traer otra nota con un nuevo proyecto Flash.

Saludos,
Daniel SL