martes, noviembre 25, 2014

No tengas miedo a tirar tu código

Luego de un fin de semana bastante productivo, he tenido que reiniciar el proyecto desde cero. Cometí el grave error de no probar si todo iba bien en Visual Studio, esperé demasiado y ahora tengo un montón de errores inexplicables que costaría mucho tiempo erradicar. Así que he tomado la decisión de pasarme compeltamente a AngelScript, algo que debí haber hecho desde el principio. Pensé que podía escribir las clases en C++ y registrarlas en el intérprete de AS, lo cual en realidad me habría tomado tiempo y trabajo adicional para registrar a mano todas las estructuras de datos.
Ahora, he reducido el programa en C++ a un mero lanzador con las funciones mínimas, que ejecuta el script del juego. O sea, todo lo que implementé el fin de semana: la cámara, la animación del personaje, tiene que ir a la basura y reescribirse en AngelScript, que es casi C++, pero no del todo.
Pero esto es algo que suele suceder. Todo programador tiene que estar dispuesto a reiniciar el trabajo y tirar a la basura el esfuerzo de días, o semanas. Por eso, no debemos dejar que el miedo a empezar de nuevo nos haga tomar esta decisión demasiado tarde.

lunes, noviembre 24, 2014

Urho3D 1.32 (y un plus)

Tal como esperaba, ha sido liberada la versión 1.32 de Urho3D; la lista de cambios es demasiado larga, tanto, que ni siquiera me voy a detener a comentar ninguno de ellos. Un pequeño paso hacia el objetivo de lograr un motor maduro, confiable y efectivo. En el anuncio podrán encontrar la descarga para las plataforma soportadas: Linux, Windows, OS X, iOS, Android y Raspberry Pi.
En los foros se ha mencionado la posibilidad de sacar una versión cada dos meses, pero tratándose de un proyecto libre, mantenido por voluntarios y con una comunidad aún naciente, yo no contaría con ello. En lo personal, prefiero seguir utilizando el código actualizado de github, aunque el estado actual permite hacer mucho.
Y hoy les traigo dos por el precio de uno: acabo de descubrir otro motor libre: Banshee, que al menos en el texto luce impresionante y apunta a ser un Unity3D libre (pueden leer aquí la presentación de su autor). Lamentablemente, muy verde aún y es el resultado de tres años de trabajo de un solo desarrollador. Lo seguiré con cuidado pero sin hacerme ilusiones, porque por lo general estos esfuerzos de un solo hombre no acaban bien a menos que consigan apoyo. El gato escaldado hasta del agua fría recela, y yo ya he sufrido unas cuantas decepciones.
 

viernes, noviembre 21, 2014

Definitivamente he abandonado la idea de usar Lua en el proyecto. Por alguna razón el cmake se esta limpiando el sistema excretor con las opciones de compilar el soporte de Lua o LuaJit. Pero los programadores de juegos deben ser criaturas adaptables, así que no queda otra que evolucionar y pasar a otra alternativa. En este caso, AngelScript.
La sintaxis es muy similar a la de C, por lo que no debería ser tan difícil vencer la inercia. Después de todo, ni siquiera dominaba a fondo Lua y en verdad hace unos cuantos meses que no lo utilizo, así que solo estaba dejándome llevar por la tendencia. He dedicado un par de días a indagar en el foro cómo registrar las clases e instancias de la aplicación anfitrión en el motor de scripting creado por Urho3D y creo que ya tengo cierta idea al respecto, por suerte no han faltado respuestas en ese hilo.
Me espera un fin de semana bastante atareado tratando de armar un prototipo un poco mejor estructurado que la aplicación de pruebas que he venido desarrollando. Ojalá la inspiración acompañe a los buenos deseos de trabajar.
Un detalle adicional: si estás pensando en integrar algún lenguaje scripting, o simplemente tienes ganas de experimentar, te dejo este curioso proyecto, que es un intérprete con una sintaxis basada en C++/C# (eso dice el autor). Nos vendrían bien más lenguajes script así, y más motores que los utilicen.

jueves, noviembre 20, 2014

C# llega también a Unigine

C# sigue imparable en su PDM (Plan de Dominación Mundial), o al menos en su plan de dominar a todos los motores de juegos. Aunque Unigine tiene su propio lenguaje script basado en C, muy fácil de aprender y según ellos uno de los más rápidos, ahora ofrecen también la posibilidad de programar usando C#. Una de las ventajas es que ahora podremos usar Visual Studio para desarrollar juegos con Unigine.
Entre las funcionalidades disponibles la más importante, me parece, es la posibilidad de ejecutar código de UnigineScript desde C# y viceversa.

miércoles, noviembre 19, 2014

Mi novela, oficialmente en la Feria del Libro de la Habana

Aunque mi editora me lo había confirmado, por otra vía me llega la reafirmación de que mi novela La piedra ardiente, será presentada en la Feria del Libro 2015, en la Habana. La editorial Gente Nueva ha presentado la lista de títulos de la Colección Ambar, que agrupa policiales, ciencia ficción y fantasía, que en esta ocasión presenta nada menos que nueve títulos. Comparto escenario con un team de lujo: escritores ya establecidos (y excelentes), como Michel Encinosa, Yoss, Jesús Minsal, Erick Mota, Eric Flores, etc. La competencia será dura, pero la capital es tal vez la única plaza fuerte de la lectura en Cuba, y sumado al ambiente de Feria que incita al derroche, confío que podré conseguir buenas ventas.
No está confirmado que esté invitado, aunque mis amigos dicen que sí, que es muy posible que esté presente en el lanzamiento. A propósito, me parece que la portada es la de la derecha en la segunda fila (yo mismo ni siquiera he visto la portada de mi libro).

viernes, noviembre 14, 2014

Okam Studios lo consiguió

Hace unos días mencioné que Okam Studios tenía un proyecto en Kickstarter, y les pedía a los que pudieran que diesen su aporte, pues ya le faltaba muy poco para expirar y aún no lograban el financiamiento mínimo solicitado. Por suerte, alcanzaron el límite a tiempo, así que el proyecto va.
Me alegra que lo hayan conseguido, en primer lugar porque esto repercutirá en el desarrollo del motor libre Godot, y en segundo, porque es bueno ver a los desarrolladores latinos salir adelante. Le deseo mucho éxito a esta compañía y que esta aventura interactiva  llegue a buen término.

miércoles, noviembre 12, 2014

Crear árboles

No, no es que me haya metido a ecologista. Ayer (y hoy) medediqué a la tarea de probar algunas herramientas para crear árboles, supuestamente con poco esfuerzo.
Mi primer intento fue con lo que tenía más a mano: el addon Sapling de Blender. No logré entenderme con él, por alguna razón, una vez que selecciono un objeto ya no logro ver el panel de parámetros del addon. Los árboles creados tienen un número excesivo de polígonos y el método para generarlos no me gusta mucho, sobre todo la ubicación de las hojas.
Gracias a la sugerencia de un amigo encontré el tree[d]. Al parecer el desarrollador lo abandonó, pues la última versión es vieja y hay que bajarla de un caché. En la página (supuestamente) oficial ya no se hace mención a él. Extremadamente sencillo, con buenos resultados, aunque no me gusta el aspecto cuando se integran en Urho3D.
Al final, acabé echándole un vistazo a NgPlant. Muy potente, multiplataforma, pero complejo y tedioso de usar. Casi todos los generadores parten de un árbol pre-generado, pero en NgPlant hay que hacerlo desde cero, rama por rama, afinando los parámetros para cada una.
Después de invertir varias horas en esto, llegué a la conclusión de que los artistas están para algo. De todas formas, acabarás perdiendo horas de trabajo que deberías usar en programar y el resultado no será perfecto. A menos que seas un genio que se le de bien modelar y programar.