Como muchos ya sabréis, llevo casi un año embarcado en un posgrado de la UOC sobre diseño y desarrollo de videojuegos. La verdad es que haciéndolo he comprendido que mi pasión son los videojuegos, tanto jugarlos como hacerlos y no podría estar más contento. No solo eso, si no que además he vuelto a tener esa alegría por programar que tenía al principio de la carrera. Esa ilusión la empecé a perder a medida que iba progresando en la carrera. Esa ilusión acabo prácticamente muriendo en mis últimos trabajos para empresas de desarrollo de aplicaciones web.

Simplemente no es lo mío, y menos en un país donde se ningunea por sistema el trabajo de los programadores y sus habilidades. De esto probablemente escriba otro post pronto.

La cuestión es que ahora mismo estoy eufórico por una tontería. En la última práctica del posgrado antes del proyecto final estoy aprendiendo a implementar inteligencia artificial (IA) para videojuegos. Nada sofisticado, claro, porque solo tenemos unas tres o cuatro semanas para hacerlo. Pero si bastante resultón y entretenido.

Las prácticas las desarrollamos en C++ (salvo algunos cuantos que decidieron tirar por Unity). Uno de los puntos opcionales de la práctica consiste en integrar LUA en nuestro juego para poder scriptear esa IA. LUA, para el que no lo sepa, es un lenguaje de scripting muy usado en videojuegos cuyo propósito es poder simplificar el desarrollo de algunas partes del videojuego, sobretodo aquellas que conciernen al diseño del mismo.

Prácticamente el 85-90% del tiempo de desarrollo de esta práctica se me ha ido en meter el LUA en mi juego porque he decidido usar Luabind, que es una capa intermedia entre C++ y Lua. C++ soporta LUA “out of the box”, pero Lua por si solo es bastante simple y generalmente se necesitan una serie de abstracciones que solo las encuentras en librerías como Luabind o LuaPlus y si no tienes que hacértelas tu. Y aquí ha empezado mi infierno.

En resumen, he tenido que pelearme con ciertas dependencias que he tenido que construir a mano (boost, básicamente) porque si no empiezan a salir errores raros de compilación o peor aún, de ejecución. Estuve ayer peleándome con una excepción rarísima y al final resulta que todo tenía que ver con el compilador de VC++ (trabajo en Windows con Visual Studio 2010 proporcionado por la propia UOC). Todo esto me ha puesto muy de mal humor durante el proceso y soy una persona que en la intimidad o en confianza con la gente de alrededor, tiendo a ventilar en voz alta mi frustración, como puede verse en la imagen que acompaña este post.

Aquí yo cagándome en todos los muertos de la aplicación de test.

Aquí yo cagándome en todos los muertos de la aplicación de test.

Pero bien está lo que bien acaba. Al final he conseguido que LUA me funcione completamente en mi proyecto y ya estoy listo para meter el código de mi IA, que está diseñado y medio implementado en C++ y que tengo que traducir a LUA antes del lunes para poderlo entregar.

Y la sensación de felicidad en estos momentos es absoluta.


Deja un comentario

Entradas relacionadas

Drupal

D8 para D7 developers: Namespaces

En este primer capítulo vamos a ver los namespaces en PHP y Namespaces de PHP en Drupal, un concepto básico de orientación a objetos. Si ya sabes de que van los namespaces y el autoload, Leer más…

Drupal

D8 para D7 developers: Introducción

Hace pocos meses se ha publicado la versión 8 de Drupal. Llevo trabajando con Drupal de forma profesional desde hace ya diez años. He tocado todas las versiones desde la 4.7 que empezó a ganar Leer más…

Videojuegos

Chasr Headquarters

Hace un par de meses, Myddna y yo cambiamos de hosting, de uno compartido a un VPS propio, para poder tener nuestros blogs, webs y otras historias como nosotros queramos y sin que la empresa Leer más…

A %d blogueros les gusta esto: