Videojuegos, Ingeniería y Matemáticas.

Hace apenas un ratito, un amigo preguntó en FB sobre programación. Básicamente estaba buscando información proveniente de alguien que trabajase como programador. Como me dí por aludido, y pensando en una oportunidad laboral, me acercé a responderle. Resulta que en realidad está en busca de fundamentos para poder orientar a sus hijos respecto de qué carrera decidir. Acto segudo, decidí compartirle mi experiencia de vida respecto de lo poquito que realmente sé sobre programación y como la he usado en el trabajo, lo cual nos trajo aquí al blog, puesto que es una historia más o menos larga de contar.

Desde siempre me han gustado los videojuegos. ¡Uff! ¡Que manera tan poco original de iniciar el segundo párrafo de un blog! pero la cuestión es así: mas de uno de los de mi generación -cuarentones actualmente- se podrá identificar con el hecho de que muchos tuvimos que enfrentar el ingles bajo la óptica de la necesidad de dicha herramienta en un contexto lúdico y ello fue en completo beneficio de nosotros a la hora de aprender dicho idioma. Pero eso no fue todo: también, y creo yo que de tanto jugarlos, eventualmente llega uno a hacerse la pregunta "¿Cómo diantre está hecho un videojuego?"

Pues bien, haciendo esa pregunta a la biblioteca ambulante que fue mi padre, y en vista de que los cartuchos venían en circuitos impresos, su sugerencia fue que quizá debía estudiar una ingeniería, ya sea eléctrica o electrónica, para así satisfacer esta interrogante. Esta sugenerencia provenía más bien de la curiosidad que siempre tuve de saber como estaban hechos los aparatos. De pequeño desarmé varios radios y algunos relojes pa saber como era por dentro. Las circuiterías se me figuraban como ciudades en miniatura y podía pasarme horas viéndolas.

Mi hermana opinaba que quizá debería optar por Sistemas Computacionales, pero en ese momento la carrera tenía demasiada demanda y pensé que no sería aceptado por lo mismo. Tenía en ese momento muchas dudas sobre los procesos de razonamiento. En específico, me preguntaba "¿Cómo se le hace para razonar?" cuestión que mi padre aparentemente no supo responderme adecuadamente y del todo, pero me mencionó que con la edad habria de ir aprendiendo a razonar. Bien que mal, terminé decidiendo por Ingeniería Electrónica. 

En el primer semestre tuve un Terrible profesor de programación. Solamente se limitó a gritar como enfermito el primer día, lo cual me dió risa (pero me aguanté: mi papá gritaba más fuerte y más cabrón) y acto seguido nos dejó una lista de programas que hacer. Ello no fue impedimento para que yo me clavara por horas en el taller de computo después de clases, explorando por mi cuenta ese "C" que nos dijo este tipo que aprendiéramos. Después de leer por mi cuenta la bibliografía del tema, y por supuesto arreglarmelas para poder teclear los diferentes programas que nos solicitó realizar, terminé haciéndolos todos yo mismo por mi cuenta y sin necesidad del profesor. Mientras tanto, veía que varios compañeros de semestres superiores trabajan con chingomil letras en su pantalla, algunos con interfaces gráficas, y los menos, haciendo laberintos navegados por cuadritos, o "Pongs" sencillos en lenguajes que yo ni siquiera consideraba en ese momento.

Desafortunadamente, estos alumnos eran de la carrera de Sistemas, por lo que Electrónica comenzó a diverger en sus temarios más o menos a partir del 5to semestre, después de haber visto toda el álgebra lineal y las Ecuaciones Ordinarias que toda ingeniería conlleva.

No fue hasta 7mo semestre que volvió a aparecer la programación, esta vez en forma de Builder C++. En ese momento conocí sobre los Frameworks que te aligeran el desrrollo de interfaces visuales y conecta lo programado con lo visual... Luego vimos un framework de PLCs llamado Step7 y junto con el Assembler para procesadores Intel que vimos en Microprocesadores, pues también pasé la gozadera de mi vida.

Fast Forward 7 años adelante. Yo, terminando la Maestría en Control Automático y dándome cuenta que no había aprendido a razonar en la carrera, o al menos no deductivamente, cosa que se requería en la maestría. Decido entonces que tendría que estudiar Matemáticas. En contraste, la filosofía de la Ingeniería que aprendí en el TecTuxtla -que en realidad no es mala- es altamente inductiva. Y la inducción tiene sus ventajas, pero hasta cierto punto. En pocas palabras, no siempre "porque hoy se murió un burro significa que es año de mortandad", dijera mi madre.

La verdad es que para ese momento había abandonado un poco ese sueño de hacer un videojuego, ¡Pero estaba yo entrando a la H. Facultad de Ciencas! cuna de Gamer/Geeks/Otakus al menos 10 años menores que yo, con la sangre todavía hirviendo, con más ambición que yo y sobre todo, más desenfadados que yo. 

Estando en el tronco común me inscribí también a Japonés del Centro -ahora Facultad- de Lenguas. Uno de mis compañeros de Japonés, también de Ciencias, pero de Cómputo, me comentó que en la presentación de inducción del primer día, una de las doctoras básicamente les dijo que abandonaran la idea de hacer "jueguitos", que eso se lo dejaran a los Rockstars que son los diseñadores de videojuegos. Tenía razón en lo de Rockstars. En lo de abandonar un sueño, quizás no. Se sabe que aquí en México el desarrollo de videojuegos está en pañales, pero alguien tiene que empezarlo. Además -notó mi compañero- siempre lo prohibido es lo que más atención llama. Y además también habia muchos seminarios de cómputo que entraban como optativas y estaban, ya orientadas, ya dedicadas al desarrollo de Videojuegos. Habiendo conseguido los créditos necesarios, -y después del año de Programación requerido- no tardé en anotarme a los seminarios de Diseño de Videojuegos, Inteligencia Artificial y Modelado en 3D.

Fast Forward 9 años, Época actual. Un poco a mi pesar, no me dedico profesionalmente a hacer videojuegos. En algún momento la anterior coordinadora me encargó hacer un sistema de cálculo de pagos en Python, un poco para "asustar" a los demás compañeros respecto de la eficiencia que podrían tener empleando Excel para hacer cálculos prácticamente a mano, contra lo que supondría un sistema que simplemente se alimenta con una base de datos y produce resultados. Cuando la corrieron, la nueva coordinadora medio revisó lo que había estado trabajando, me pidió algo similar pero para Costos en lugar de Pagos, y listo. Entambó el proyecto. Ahora todo se vuelve a hacer con Exceles trabándose como "la gente normal"...

Sin embargo, durante ese lapso de tiempo he hecho algunos juegos sencillos de los que me siento orgulloso en mayor o menor medida. Diría que mis principales son "An Abandoned Cat", que es de un señor que busca a su gatito perdido (solo son 3 niveles de una pantalla) con un poco de influencia de Mekorama y la estética de Minecraft. "Manray Quest", donde repito fórmula, pero esta vez el escenario es un edificio de apartamentos en lugar de un bosque, y es un gatito que busca su peluche a ritmo de Ská en ruso. "Bad Roots" trata de un granjero que debe cortar raices que crecen, pero maximiza los puntos cuando corta exactamente una raiz cuadrada, y "Dragon/Ritchie", que es un shooter 2D Top-down donde controlas a un dragón que tira fuego, y puedes cambiar a una foca que tira agua, y cada personaje le hace daño a un tipo de enemigo: el dragón ataca Ents mientra que la foca (Ritchie) ataca robots. Este último está basado en Ikaruga y Dino Riki (del NES) con fondos sonoros de música clásica en 8-bits.

Actualmente continúo desarrollando "Space Fighter Agalotl", Shooter 3D on-rails que presenté en el Diplomado de videojuegos que llevé el año pasado. Tengo muy poco tiempo disponible dado lo pesada que es la nueva coordinadora, pero trato de ver los momentos en que tengo espacios para avanzar de a poquito. Quizá si no me detengo logre terminarlo a pesar de todo.





Comentarios

Entradas más populares de este blog

Inicio