Hasta el año que viene

Todo parece indicar que esteré en la oficina muy poco tiempo en estos dos días, así que desde ahora me despido, nos volveremos a ver el año próximo. Les deseo a todos los que me leen un feliz 2015, con mucha prosperidad, tranquilidad, en fin, todo lo bueno.
Trataré de traerles buenas noticias a mi regreso y muchos avances en el proyecto, aunque la falta de internet en casa me limitará un poco en lo que puedo hacer. Se han estado publicando artículos al respecto en este mes, asegurando que se está haciendo todo lo posible para que haya más internet (no específicamente en las casas), pero no hay fechas concretas y los precios serán sin duda, astronómicos en sus inicios.
Así que los dejo por ahora.

Imágenes

Tal y como había prometido, aqu;i están algunas capturas de pantalla del proyecto. 

Primera escena, aún vacía.

Otra escena

Un jardín
Ciclo día/noche
Como ven, ya transcurre el tiempo en el juego y tenemos día y noche; las escenas pueden tener luces que se activan solo en horario nocturno. Está aún en progreso el sistema de diálogos, aunque el parser funciona, la parte visual está en pañales todavía.
Estos días de vacaciones de la semana próxima (aquí es feriado del 31 al 2) me vendrán muy bien y espero terminar algunas cosas básicas como la asignación de misiones y un sistema básico de inventario.

Godot se mueve

Luego de un largo período sin commits, esta semana he visto un par de actualizaciones relativamente grandes (una veintena de archivos modificados o algo así), incluso una de ellas posterior al lanzamiento de la versión 1.0. Se impone dedicarle algo de tiempo a este motor lo antes posible, pero el proyecto actual me está consumiendo bastante tiempo, y considerando al paso que va... mejor no interrumpirlo.
Esta semana se puede he logrado implementar unas cuantas funcionalidades interesantes, incluso una que pensé que me causaría unos cuantos dolores de cabeza: el cambio de escenas. Sí, ya se puede ir de una escena a otra. Lo demás es insignificante: cambio del cursor para señalar objetos o disparadores, avances en el sistema de diálogos, el editor de diálogos, cambios cosméticos en las escenas... nada comparable con eso.
Pero estos avances en Godot me llaman la atención y de veras pienso cogerlo en serio uno de estos días, cuando el wiki entre en funcionamiento y se llene un poco, y además baje los videos de Youtube. La documentación es uno de los detalles que tienen que pulir para conseguir más popularidad. Creo que Urho3D tendrá que ponerse las botas y moverse más rápido, porque la competencia es dura. Godot apunta a ser un motor mucho más cercano a las herramientas comerciales en cuanto a funcionalidades y calidad, y en estos días tienen efectivo en mano para mantener el buen ritmo durante unos meses.
Por supuesto, que a la larga esto nos beneficia a los desarrolladores.

Un día diferente

Hoy parecía ser un día normal de vacaciones. Me levanté, o mejor dicho, me despertó el vecino hurgando en el techo, justo a un metro y medio de distancia de mi cama. Desayuno fuerte (conseguí huevos) porque toca día de gimnasio y de ahí a trabajar: unas líneas en la próxima novela, código en el proyecto. Como es habitual, no miro TV ni oigo radio.
Al llegar a la oficina de camino al gimnasio, me avisa mi compañera: los Cinco han vuelto. Pero eso no es todo, me dice no se qué de restablecimiento de relaciones entre Cuba y Estados Unidos. Suena raro e increíble. Tengo casi 40 años y el diferendo entre los dos países jamás ha amainado, más bien empeora de vez en cuando, avivado desde ambos lados.
Como siempre digo, habrá que esperar a ver qué sucede.

Sistema semi-classless

Definitivamente, necesito un psicoanálisis. Por un lado, me gustan los sistemas basados en clases, pero también me encantan los que no tienen clase. En estos días he estado yendo de un lado para otro, debatiéndome entre mantener el sistema RPG que diseñé (a medias) para el proyecto anterior y crear uno nuevo.
Al final, me decidí por el nuevo, semi-classless (no encuentro una palabreja similar en español). Este otro sistema no tiene nada innovador ni especial, simplemente permite escoger las disciplinas que quieras, excepto las exclusivas de una profesión determinada. Las disciplinas favorecidas para cierta profesión cuestan solo un punto para subir un nivel, en cambio, las no favorecidas, cuestan dos. Por ejemplo, supongamos que quieres crear un mago que use espadas, que es una disciplina de la clase Guerrero. Cada nivel de Espadas costará dos puntos, o sea, que tendrás que invertir más tiempo para subir esas habilidades.
Como ven, nada del otro mundo, pero que ofrece cierta libertad a la hora de desarrollar tu personaje. Al menos, en teoría.

Naruto aún tiene mucho por delante

El universo de Naruto parece que no terminará por ahora, hace unos días leía que saldrán varias novelas protagonizadas por Kakashi, escritas por Akira Higashiyama, quien sirvió de guionista para la película Naruto Shippūden: Blood Prision, junto con un mini-serie manga con motivo del 15 aniversario de la franquicia. Hoy leo que habrá también una película dedicada a su hijo Bolt y a Hyuuga Hinata, que veremos en agosto del 2015. El propio Kishimoto lo anunció en la presentación de The Last - Naruto The Movie.
Es obvio que Naruto da para más (cuánto más, depende de los fans) y los responsables (autor, editorial, etc) piensan explotar esa posibilidad. En lo personal, no los culpo por sacarle algunos centavos extra mientras se pueda. No me hacen mucha gracia los rellenos y películas, pero hay gente que los recibe como agua de mayo y estarán de plácemes con estas noticias.

Ello

Resulta difícil entrar a competir en el terreno de las redes sociales, habiendo un gigante como Facebook. Google lo intentó con esa excelente idea que es Google Plus, pero aunque llegó cerca, no logró superarlo. Una red social que me gustó desde el principio, pero que desgraciadamente tuve que abandonar porque era demasiado pesada para conexiones con poco ancho de banda.
Hace unos meses leí acerca de Ello.co, una nueva red social que prometía no tener ningún tipo de anuncios. Por encontrarse en fase beta, el registro es por invitación. Tuve la suerte de que me llegase una, aunque en verdad no lo esperaba.
Tal como había leído, Ello es minimalista, tal vez en exceso, lo cual conspira con la usabilidad ya que la interfaz no es muy intuitiva que digamos. Que sea minimalista no quiere decir que no haga uso de AJAX y los toques cosméticos de moda. Me resultó mucho más fácil adaptarme a Facebook o G+.
Cada red social parece tener su público específico. Facebook es la red de todos: desde el usuario avanzado que está ahí porque los demás están, hasta la rubia tonta del aula que llena el perfil de imágenes imbéciles (y que curiosamente, es la que más amigos tiene porque está muy buena). En Google Plus abunda el usuario técnico y se comparte mucho contenido interesante. Las rubias aquí son inteligentes, porque las tontas simplemente no se han enterado de que existe.
Ello, por su parte, tiene un conjunto de usuarios raro, por decirlo de alguna manera. Amén de escaso, la mayoría del contenido que he visto se trata de fotografías profesionales, lo cual le da un cierto aire artístico y en mi caso, ajeno. Es como caer en una tertulia de poetas (algo en lo que tengo experiencia). Me resulta difícil pronosticar si Ello.co despegará algún día como red social. Al final he acabado pasando de ella la mayor parte del tiempo. No obstante, si alguien quiere probarla, tengo algunas invitaciones que puedo enviarles, solo dejen un comentario.

Mis novias informáticas

No solo de código vive el programador, de vez en cuando también hay que reírse. Les dejo esto que escribió un colega linuxero.

Sistema de diálogos, otra vez

Una de las mecánicas RPG que siempre me ha intrigado es el sistema de diálogos; mi primera experiencia fue con Fallout 2, un clásico del género. Era sorprendente cómo las opciones variaban en dependencia de los objetos, atributos o habilidades que tenías. Desde entonces he perseguido la implementación de mi propio sistema de diálogos, igual de flexible, es una de esas tareas en la programación de videojuegos que aún tengo pendiente.
A pesar de haber logrado hacer uno bastante flexible, no era en lo absoluto fácil. Si recuerdan lo que publiqué aquí hace años, solo era un larguísimo script en Lua, con una longaniza de condiciones if/then/else que por supuesto, no se prestaba a automatizar su edición con una herramienta específica. A pesar de que he preguntado en múltiples foros y ocasiones, nunca he conseguido una respuesta lo suficientemente detallada como para facilitarme la tarea.
El viernes inicié por enésima vez el trabajo de diseño; lo complicado (para mí) es lograr una representación de ese un árbol enorme, donde las ramas son visible o no en dependencia de atributos/habilidades/objetos, que permita su fácil edición a través de una herramienta específica, escondiendo al escritor la complejidad del XML subyacente. Aunque logré avanzar un poco, no he ido mucho más lejos que antes. En esencia, lo que he conseguido es una estructura donde las líneas del NPC y las respuestas del jugador están en elementos separados. Las líneas apuntan a sus posibles respuestas, que a su vez apuntan a la siguiente línea del diálogo. Cada línea o respuesta puede estar condicionada a un "check", lo ideal es que pudiesen ser varios, pero no me pidan más de momento.
Suena fácil, pero durante el trabajo de diseño voy tropezando con nuevos detalles de los que no me había percatado. La herramienta en sí tampoco es trivial, tendré que meterme de lleno en Qt para implementarla y supongo que tomará lo suyo. Pero bueno, nadie dijo que programar juegos fuera fácil.

Ya está aquí el esperado trailer de Star Wars

Y nos trae un poco (muy, muy poco) de todo: sables de luz sith, el Halcón Milenario en plena pela con cazas Tie y por supuesto, Alas-X. Volando a ras del suelo, que es lo que está de moda. Alucinante.
Habrá que esperar a un trailer más largo que estoy seguro saldrá el año próximo para poder ver a nuestros queridos personajes de la trilogía original. Y esperemos que J. J. Abrams haya hehco un buen trabajo. Les recomiendo este artículo en The Verge, con el cast y una breve referencia de cada uno.

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.

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.
 
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.

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 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).

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.

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.

Los desarrolladores de Godot tienen un juego en Kickstarter

Y necesitan ayuda. Pueden ver el proyecto aquí, y le quedan unas pocas horas. El juego en sí no es libre, pero sin dudas repercutirá en el desarrollo del motor Godot, por lo que creo que vale la pena tirarles un cabo.

Ranking de motores de juegos, según su facilidad de uso

Desde mi punto de vista, claro. Es algo que tienen que tener en cuenta, ya que no soy un programador estrella ni nada que se le parezca. Este benchmark se basa en evaluar qué tan rápido puedo implementar una vista isométrica en el motor. He obviado detalles como el esfuerzo necesario para crear el escenario.

1- Urho3D: a pesar de ser muy verde y tener muy poca documentación, me ha resultado increíblemente fácil implementar el prototipo casi completo. El zoom que siempre tuve que descartar aquí viene ya integrado en la clase Camera. El desplazamiento del personaje está documentado en un ejemplo, usando navigation mesh, así que ni siquiera tengo que preocuparme por implementar un algoritmo de búsqueda de camino.
2- Ogre3D: lo conseguí tras un par de días de trabajo y revisando un ejemplo completamente diferente (cámara en 3ra persona). No funcionaba del todo bien, no conseguí implementar el zoom por mi pésimo dominio de las matemáticas.
3- Unity3D: unas horas de trabajo y búsqueda en Internet. No logré implementar el zoom, en la versión 4.5 no logré hacer funcionar correctamente el desplazamiento del personaje (que funcionaba perfecto en la 3).
4- Unigine: completamente imposible. No existe documentación y en el foro (antes de que me cancelaran la cuenta) no conseguí una respuesta adecuada para un novato.

5- REDKit: me metí en esto porque andaba pidiendo empleo en CD Projekt Red. Ejecuté el motor un par de veces y no logré entender nada.
6- CrystalSpace: los programas en CS ni siquiera parecen escritos en C++. No logré comprender el motor ni echar a andar un demo sencillo.

Como ven, en el hit parade hay tanto herramientas libres como comerciales, así que si están evaluando opciones, quizás esto les sirva de algo.

¿Y dónde está Torque3D?

La respuesta es sencilla: en el mismo lugar que hace varios meses, en la 3.5.1. Me aburrí de esperar la versión 4, porque el calendario de dos lanzamientos al año no se ha cumplido, incluso se hablaba de una 3.6 que aún podría salir este año (atrasando la cuarta entrega mucho más, hacia el 2015). Hay funcionalidades interesantes que mencioné aquí que están en progreso, pero lo esencial, que es la complejidad del motor, su falta de documentación y que la supuesta portabilidad no funciona tan fácil, no será solucionado en un plazo razonable, digamos de seis a diez meses.
Para el que ha logrado entenderlo y hacerlo funcionar en Windows y Linux, Torque3D podría ser un motor bastante bueno y capaz de resolver todas las necesidades. La comunidad no es tan grande como la de Ogre o Irrlicht, pero algunos de ellos son expertos con experiencia que data de la época en que era un motor comercial. Tampoco es que la de Urho3D sea mayor, pero al menos le veo muchas posibilidades de crecer a mediano plazo.
Si estos detalles fuesen solucionados, Torque3D podría convertirse en una opción seria para los que se inician en el desarrollo de juegos y que no pueden pagar una licencia comercial, ¡que los habemos y muchos! Si no, se mantendrá como ese pequeño reducto ocupado por afortunados que han logrado dominarlo, que crecerá con unos escasos miembros y proyectos indie de poca relevancia.

Star Wars Episodio VII ha culminado su filmación

Las tareas de filmación han concluido para lo que será la próxima película de Star Wars: el Episodio VII. J.J. Abrams ha publicado una carta de despedida a los actores y el resto del personal involucrado en el proceso, agradeciendo su profesionalismo y pasión, y todo el blah, blah de rigor (sois unos cracks, de esta nos forramos, mola mucho trabajar con ustedes).
La peli en cuestión podremos verla el año próximo, en Diciembre, así que toca armarse de paciencia. Hay que ver si esta nueva entrega es capaz de suscitar la misma emoción que la Trilogía Original, porque la Nueva... cosechó más críticas y decepciones entre los fans de toda la vida que éxito. Muchas cosas no eran como esperábamos; parece que con el ánimo de sorprender, Lucas no tuvo reparos en contradecirse a sí mismo cada vez que tuvo un chance. El resultado: un WTF! en toda regla. Por tanto, no es nuestra culpa si no esperamos el Episodio VII con las mismas ansias, a pesar de que será el reencuentro con personajes queridos como Han, Luke, Leia, y el Halcón.

Pues parece que Cinnamon no da para juegos

Cuando me vi en aprietos con el Catalyst hace unos meses, en el foro de Linux Mint me recomendaron que usara Xfce. Según el usuario que respondió mi pregunta, Cinnamon aún era un poco inmaduro y no apto para juegos. Al final, achaqué el problema a mi propia ineptitud: la solución simple era reinstalr el driver, dañado (aparentemente) por alguna dependencia de Warzone 2100. Me dije a mí mismo que Cinnamon no era el culpable.
Sin embargo, hace unos días tuve otro recordatorio de que quizás el usuario no estaba tan errado. Monté Cinnamon (sin reinstalar la distro) y actualicé la motherboard, ahora es G41, en lugar de la vieja G31 que tenía antes. Al intentar jugard Tales of Maj'Eyal, me encuentro que en pocos segundos el juego cuelga el sistema de entrada: ni teclado, ni clicks, aunque el cursor se mueve. Reiniciar el X no es suficiente, después de eso, Cinnamon carga sin barra de tareas y sin ningún tipo de entrada. Hay que apagar a las malas.
El fallo se repite con mi proyecto de Urho3D (que va muy bien, luego abundaré en el tema), no a menudo, pero sí me sucedió una vez. Nada, que parece que nunca puedes tener todo lo que quieres, así que toca seguir con mi viejo Xfce, que nunca te deja botado.

Los primeros pasos siempre son los más difíciles

Era hora de dejar la vagancia y trabajar un poco en mi lista de tareas pendientes, así que hice un tareasPendientes.pop() y salió nada más y nada menos que Urho3D. Era de esperarse.  


Obviamente, no voy a apurarme a dar opiniones acerca de un motor que he usado solo una semana y que aún está muy verde. En estos primeros días todo es difícil, es muy molesto no tener ni idea de cómo hacer las cosas y depender exclusivamente del foro. La sensación de inutilidad es abrumadora. Los detalles que entorpecen el trabajo fluido son legión. Desde el formato adecuado de imágenes, hasta el uso del editor de materiales (estamos hablando de un trabajo aún en sus inicios).
Urho3D quiere parecerse a un motor comercial, así que ofrece un editor y una API bastante completa que hoy por hoy, tiene todo lo necesario, incluyendo navmesh, conectividad y soporte para plataformas móviles.
Por supuesto, el editor aún carece de muchas funcionalidades, como editor de terrenos y partículas, es solo una herramienta para poner modelos en la escena. No está integrado en el motor, como en el caso de Unity, algo que he aprendido a apreciar y que ahora echo de menos cuando no lo tengo. El soporte para lenguajes script nos permite usar Lua o AngelScript, algo que no he explorado a fondo, pero que está alto en mi lista de prioridades, pues otra cosa a la que me he acostumbrado es a programar en script y no tener que compilar.

Una sorpresa muy grata que me llevé fue que el demo que incluye corría perfectamente en una G31 (intel GMA 3000), usando DirectX 9. En Linux, por supuesto, el motor usa OpenGL, pero el G31 no soporta OpenGL 2 que es lo mínimo requerido. En cambio, el G41 sí implementa hasta la 2.1, y ahí corre perfectamente.
Definitivamente estaré trabajando con Urho3D por unos días más, este motor ha logrado sacarme de Wasteland 2 y volverme a dedicar a la programación. El futuro pinta muy bien si mantienen el ritmo de trabajo actual y la comunidad sigue creciendo, en un año este podría ser el motor número uno entre las herramientas libres de desarrollo de juegos, desplazando a Ogre3D. Habrá que esperar a ver si me equivoco (que es lo que siempre pasa).

Mono en Unreal Engine

Si lo tuyo es C# y no quieres aprender otra cosa, ya puedes desarrollar juegos con UE y C#: Miguel de Icaza anunció ayer que ya está disponible Mono para Unreal Engine. Con anterioridad, Mono se había abierto camino hasta Unity 3D, parece que Xamarin le ha cogido el gusto a eso de integrar C# en motores de juegos. Aunque insisten en que no es un producto soportado, es solo un parche para una versión específica del motor.

Tenemos Ubuntu nuevo

Vaya ubunteros, a bajar se ha dicho: ya tenemos Ubuntu 14.10 Utopic Unicorn. Yo, por mi parte, sigo con Mint, que es lo que uso desde que tengo uso de razón (y valga la redundancia), o sea, desde que Fedora 20 me dio un palo horrible con los drivers de AMD y lo mandé al carajo. No era un mal sistema, pero no admito problemas con los drivers de video.
Mi larga relación con Ubuntu acabó hace un par de años, cuando Shuttleworth tuvo la peregrina idea de inventarse su propio servidor gráfico, por no se qué desacuerdos tontos con el desarrollo de Wayland, que le equipo de desarrollo del mismo se encargó de ridiculizar adecuadamente. Sin más allá ni más acá, le dio por reinventar la rueda. Y no es que el software libre esté escaso de reinventos y libertad de opción, pero cuando se trata de un componente tan esencial como el servidor gráfico, ahí sí que no transo. Tener dos servidores gráficos (excluyo a Xorg, que ya está en declive y en algún momento será sustituido por Wayland) es una jodienda desde cualquier punto de vista, pero en especial para los drivers de video, que tendrían que soportar dos arquitecturas distintas, al igual que los toolkits gráficos como GTK o Qt, o los escritorios como KDE y Gnome. Hay cosas que simplemente no puedes duplicar y esperar que la comunidad se lo trague sin más.
Por eso me fui a Mint. Aún no está muy claro qué piensan hacer, pero por lo menos tengo un año de gracia (seguirán usando la 14.04 como base por un tiempito), hasta que se vean obligados a elegir y de paso me obliguen a mí. Para esas fechas, ya Fedora tendrá Wayland, que está previsto en la 21, junto con los respectivos drivers propietarios, algo crucial para un desarrollador de juegos o jugador. En mi caso, ambas cosas.

Importando capturas de movimiento

Ayer fue un día bastante interesante. Entre esas muchas cosas que tengo pendientes estaba jugar un poco con la importación de capturas de movimiento en Blender. Hay un excelente video en Youtube, el cual desgraciadamente no les puedo incluir aquí por restricciones de la nueva conexión. El proceso no es para nada complicado, aunque sí un poco trabajoso, pues hay que emparejar cada hueso del BVH con su correspondiente destino en el esqueleto del modelo. Existe una opción de emparejamiento automático, pero supongo que funcione mejor si ambos esqueletos son muy similares.
En mi caso, usé como base un modelo orgánico creado por MakeHuman (que se merece un post aparte, pero de entrada les digo: no les va a solucionar sus necesidades en un entorno de producción), con el esqueleto básico para juegos. Dicho esqueleto no coincide con el que tengo en la extensa biblioteca de capturas que bajé hace unos meses, pero eso no es problema, como ya les decía. Así que no le tengan miedo a este proceso, que no es para tanto.
Soy de la opinión que nada reemplaza el trabajo específico para el proyecto, de ahí que no recomiende el MakeHuman para modelos definitivos, sin embargo, el uso de capturas de movimiento sí puede representar un ahorro significativo de tiempo (y dinero) en cualquier proyecto y existen un montón de colecciones gratis que todo grupo de desarrollo debería tener en su biblioteca de recursos.

Deberías echarle un vistazo a Urho3D

Urho3d es uno de los motores que tengo en la lista de pendientes desde hace meses, junto a Godot, pero su editor no me pareció gran cosa cuando lo probé, amén de otros problemas para compilar. Aunque no ha mejorado mucho (estas cosas van con calma), ahora sí toca mirarlo en serio. Al parecer, algunos desarrolladores están descubriendo este motor, y lo más importante, unos pocos están agregándole cosas.
Esa es una de las cosas buenas de Urho3D, que ha logrado reunir varios contribuyentes y el flujo de commits es estable. De veras me sorprende hacer un pull cada día y encontrarme con actualizaciones. Eso indica que muchas "pequeñas cosas" están siendo trabajadas, pero también les dará una idea de que el motor está en pañales aún. Sería interesante montarse en la máquina del tiempo y ver cómo estará dentro de un año.


Por mi parte, voy a echarle un buen vistazo en cuanto la salud y el trabajo literario me lo permitan.

Wasteland 2 micro-review

A pesar de que lo conseguí a los dos días de haber salido, realmente no he podido dedicarle el tiempo que se merece. La espera fue larga, pero al final, el juego llegó (como espero que llegue Pillars of Eternity) y la verdad es qeu no decepciona. ¿Cosas que no me gustan? Para empezar, me esperaba una historia mejor, más cautivante. El juego en sí es divertido, pero la trama no llega al nivel de Mass Effect. Por eso en ciertas ocasiones lo dejo aparcado ahí hasta el día siguiente.
En el apartado gráfico, nada que mencionar. No juegas Wasteland 2 para ver gráficos impresionantes. Lo estrictamente esencial para jugar, y para reírnos viendo gente desmembrada por los golpes críticos. Unity3d no parce destacar por su rendimiento, aunque hay que considerar que la AMD R7 250 no es nada del otro mundo.
Y aquí les dejo algunos consejos, para los que aún no han empezado a jugarlo.
Mucho cuidado al crear el grupo, trata de balancear las habilidades. Necesitarás alguien capaz de abrir cerraduras, un experto en explosivos, un sniper... En fin, tómate tu tiempo en analizar las ofertas. No es obligatorio que crees un personaje desde cero, puedes llenar el grupo con lo que ofrece el juego. Olvídate de igualar los atributos si creas tu propio personaje, por necesidad, algunos serán bajos y otros altos. Piensa qué tipo de jugador quieres y mejora los atributos esenciales.
¡La primera impresión es importante! Siempre trata de disparar primero, y por supuesto, ubicar tu equipo en posiciones estratégicas.
Utiliza los cohetes, granadas y todo tipo de explosivos. A diferencia de Fallout, que tenía una habilidad "Tirar", en Wasteland puedes arrojar explosivos sin invertir puntos de nivel. Tampoco he encontrado la habilidad para los lanzacohetes. Ambos son extremadamente efectivos contra grupos, así que, ¡abusa de ellos!






Aquí otra vez, hasta que me descubran

Al parecer, nadie notó que me había ido, así que les aviso: he regresado. Por poco tiempo, pero he regresado.
Las buenas noticias es que he sobrevivido al cambio. Y que al fin tengo noticias del proceso editorial, igual que el cornudo, soy el último en enterarme de que la novela ya está siendo ilustrada. Vamos por buen camino.

Hasta la vista, baby

O  adiós a las armas. O mejor, hasta luego.
El caso es que las condiciones de mi conectividad cambian, y no podré seguir actualizando el blog. Realmente, ni siquiera sé qué me permitirán acceder, o la calidad de la conexión.
Siempre que pueda me daré una vuelta por aquí desde las salas de navegación públicas, que cuestan un ojo, en especial considerando que dentro de un mes o dos debería quedarme sin trabajo. Pero bueno, es difícil abandonar este experimento que ya tiene unos cuantos años de vida, aunque nunca fue muy popular que digamos, ni siquiera como parte de ese ente tan llevado y traído que llaman "blogosfera cubana". Será que porque no me dedico a escribir de Cuba, no me consideran parte de Cuba.
No obstante, espero que la despedida no sea definitiva. Tal vez me tome dos o tres años, pero de alguna forma, regresaré.

Montón pila burujón puñao de cosas

El foro de Free Gamedev tiene algunos hilos con un montón de recursos interesantes, en concreto este con los modelos de Ryzom convertidos a dos formatos utilizables, este con mucha música libre y este último con más sonidos royalty free. Sírvase usted mismo y no olvide dar crédito a los creadores. Y en el tercer caso, una donación si es posible.

Yo también voy a decirlo: deberías ver esta serie

Pues sí, yo también voy a picar: debes ver Halt and catch fire. Leí la recomendación en Incognitosis, y me di a la tarea de buscarla. Desgraciadamente, a todos mis amigos les había pasado por alto, y en ese ente llamado "el paquete", que demanda un post por sí solo para explicar su naturaleza, estaba llegando, pero ya en su capítulo  4 o 5. Un par de semanas de indecisión me costaron algunos capítulos más, y cuanmdo logré hacerme con el 1-3, ya del 4 al 7 no se podían recuperar. Hasta que hace poco una brillante idea me llegó y estoy en proceso de hacerme con el resto de la serie.
Definitivamente es una serie que hay que ver, aunque quizás muchos de ustedes hagan como mis amigos, qeu simplemente han aparcado los 3 episodios que les di en espera de tiempo libre. Es que la competencia es dura: The last ship, Falling skies, Defiance (a propósito, qué final de temporada), The strain... todas esas cosas exigen su tiempo y ver a unos tíos luchando por construir una PC tal vez no resulte tan llamativo.
De todas formas, les sugiero que le echen un vistazo.

El caso del Catalyst desaparecido

Han sido casi tres semanas de continuo instala y reinstala, debido a montones de detalles diferentes. El lado bueno ha sido que he aprendido cosas sobre cómo funciona el arranque de Windows, por ejemplo. Pero con el trabajo y tiempo que me ha costado, creo que preferiría seguir ignorante. Solo les aconsejaré que si quieren instalar Windows en un disco duro, remuevan cualquier otro que ya tenga Windows, porque en ese caso el instalador coloca los archivos de arranque en la instalación anterior y la reciente no funcionará por sí sola.
Sin embargo, Mint  ha ido mucho más alla. Me he visto obligado a reinstalar tres veces, debido a un misterioso problema con el driver de AMD. El caso es que luego de un par de días funcionando, el controlador simplemente dejaba de funcionar, coincidentemente, luego de instalar las dependencias de Warzone 2100. Me recomendaronq ue evitar Cinnamon, pero el problema se repitió en la versión Xfce. Así que opté por volver atrás: desinstalé el 14.6 beta y monté el 14.4. Eso solucionó el problema por ahora, y espero que definitivamente.
En verdad lamento haber quitado Cinnamon, peor bueno, siempre se puede instalar desde los repos.

Sí, Flash Gordon tendrá un remake

Las casualidades son las casualidades. Resulta que de un tiempo a acá he venido pensando por qué nunca se ha hecho un remake del viejo Flash Gordon, esa peliculita que nos hacía disfrutar de lo lindo con sus efectos especiales tan retro cuando éramos niños (eso fue en los 80, hace décadas). Y vengo hoy, y recuerdo googlear al respecto, porque Google, como Warren Sánchez, tiene todas las respuestas.
Pues bien, la 20th Century Fox planea hacer un remake de Flash, pero lo que no sabemos aún es para cuándo. Aunque hay anunciados guinistas, no me molestaré en mencionarlos (por supuesto, Google tiene todas las respuestas, incluyendo esa) porque me pesa copiar y pegar tres nombres y porque en una etapa tan temprana eso podría cambiar. De hecho, que esté anunciado no quiere decir que la peli llegue a término algún dia, especialmente si consideramos que la peli de los 80 fue un fracaso comercial en USA.
Y hablando de personajes clásicos de la ciencia ficción: Buck Rogers también se merece u n remake. Pero si lo habrá o no, eso tendránq eu averiguarlo ustedes, aunque les adelanto que un tal Miller está interesado...

Leyendo a Bef

Como ya mencioné una vez: me alegra descubrir vida más allá de la literatura CF/fantástica norteamericana, en especial si es latina. Andaba detrás de Ojos de lagarto (en formato impreso, para variar), una novela del mexicano Bernardo Fernández, Bef, desde que Yoss me la recomendó y me dijo que se publicaría en Cuba. Al parecer llegaron muy pocos ejemplares acá a mi ciudad, pero un amigo logró hacerse con uno y luego de muchas vueltas llegó a mis manos.
Aunque el inicio me resultó un poco lento, el libro levanta a medida que entra en calor. Debo advertirles que aunque la historia va de dragones, no se trata de fantasía en el sentido tradicional de magos y etc. Ojos de lagarto nos lleva por muchos lugares de nuestro mundo, durante un largo período que abarca finales del siglo XIX y principios del XX, en persecución de estos elusivos seres mitológicos. Pero aún así, es un género y estilo que no abunda en el escenario literario cubano, que siempre tiende a ser más bien metafórico o poético, o sea, que abusa de la metatranca, para decirlo en buen cubano. Así que esta novela de Bef, al igual que las de Yoss, es un cambio que se agradece, no solo en ese sentido, sino también al aportar variedad internacional en nuestras librerías. Aquí debo hacer la salvedad que no resulta rentable para los autores extranjeros publicar en Cuba (equivale prácticamente a donar los derechos), pues ni siquiera lo es para los autores cubanos.
Si tienen posibilidad de echarle mano a este librito, no dejen de leerlo.

Drew Karpyshyn y las novelas de Mass Effect

Estaba casi llegando a una sequía de lectura, en la que no sabía qué leer a continuación de Leviatán, de Yoss (excelente novela, que les recomiendo), cuando me dio por buscar las novelas basadas en el universo de Mass Effect. Las tres primeras de ellas fueron escritas por Drew Karpyshyn, guionista y diseñador involucrado en Mass Effect 1 y 2.
Existe un curioso paralelismo entre el Leviatán de Yoss: una criatura semi-racional, capaz de devorar civilizaciones, y los Segadores. Pero volviendo a estas tres joyitas que no deberían faltar en tu colección si eres fan de la mejor saga de juegos de CF de la última década. Eso sí, evita la cuarta novela, que fue un total desastre, tanto que tuvieron que pedir disculpas y retirarla para correcciones (no fue escrita por Karpyshyn, por supuesto, que en ese momento estaba ocupado con SWTOR, si no recuerdo mal).

 Las tres novelas se sitúan cronológicamente antes de cada título de la saga, pero no veremos al Comandante Shepard en ellas, aunque en la tercera sí se hace referencia a él en varias ocasiones. Tal vez no sean una maravilla literaria, como leí por ahí en algún lugar, pero estos libros te harán pasar un buen rato y añadirán profundidad al universo de Mass Effect.


Cámara isométrica en Unity3d

Tengo el mal hábito de que lo primero que intento hacer en un motor de juegos es una vista isométrica. Si resulta fácil, entonces el motor se puede considerar como fácil de usar. Los juegos isométricos han caído en el olvido y no es de extrañar que los motores intenten facilitar otros modos de cámara más populares como primera y tercera persona.
Pensé que lo había conseguido en Unity en unos pocos minutos (gracias a Google), pero el efecto no era exactamente el deseado. Al final, logré darme cuenta de lo que estaba mal, pero eso lo veremos más adelante.
Para empezar, crea un GameObject vacío, que servirá como padre de la cámara. En aras de simplificar, digamos que estará ubicado en (0, 0, 0). Crea una cámara y hazla hija del susodicho GameObject. Las coordenadas de la cámara serán (15, 15, 0), también en aras de simplificar. Podría ser (0, 15, 15), pero en ese caso, tendrías que calcular las rotaciones a mano. Cambia la cámara a modo ortográfico, para conseguir el efecto más aproximado al isométrico antiguo.
Agrega este script C# a la cámara:

using UnityEngine;
using System.Collections;

// Camera Controller
// Revision 2
// Allows the camera to move left, right, up and down along a fixed axis.
// Attach to a camera GameObject (e.g MainCamera) for functionality.

public class CameraController : MonoBehaviour {

    //float Xmax, Ymax;
    int UP = 1;
    int DOWN = 2;
    int LEFT = 3;
    int RIGHT = 4;
    int dir = 0;
    int rot = 0;
    int RLEFT = 1;
    int RRIGHT = 2;
    // Use this for initialization
    void Start () {
            }
   
    // Update is called once per frame
    void Update () {
        if (Input.GetKeyDown(KeyCode.W)) {
            dir = UP;
           
        } else if (Input.GetKeyDown(KeyCode.S)) {
            dir = DOWN;
        } else if (Input.GetKeyDown(KeyCode.A)) {
            dir = LEFT;
           
        } else if (Input.GetKeyDown(KeyCode.D)) {
            dir = RIGHT;
        } else if (Input.GetKeyUp(KeyCode.W) | Input.GetKeyUp(KeyCode.S) | Input.GetKeyUp(KeyCode.A) | Input.GetKeyUp(KeyCode.D)) {
            dir = 0;
        }
       
        if (Input.GetKeyDown(KeyCode.Q)) {
            rot = RLEFT;
        } else if (Input.GetKeyDown(KeyCode.E)) {
            rot = RRIGHT;
        } else if (Input.GetKeyUp(KeyCode.Q) | Input.GetKeyUp(KeyCode.E)) {
            rot    = 0;
        }       
       
        //camera scroll
        if (dir==UP) {
            transform.Translate(0,0,5*Time.deltaTime);
        } else if (dir==DOWN) {
            transform.Translate(0,0,-5*Time.deltaTime);
        } else if (dir==LEFT) {
            transform.Translate(-5*Time.deltaTime,0,0);               
        } else if (dir==RIGHT) {       
            transform.Translate(5*Time.deltaTime,0,0);       
        }
        //camera rotation
        if (rot == RLEFT ) {
            transform.Rotate(0,25*Time.deltaTime,0);
            transform.LookAt(transform.position);
        } else if (rot == RRIGHT ) {
            transform.Rotate(0,-25*Time.deltaTime,0);
            transform.LookAt(transform.position);
        }            

             
    }
}

El gran problema de mi primera versión era que la vista no rotaba alrededor de un punto, o mejor dicho, sí lo hacía, pero no mirando al centro. Y es que crear la cámara como hija del GameObject objetivo no garantiza que la cámara se mantenga enfocada en el mismo, de ahí que a cada rotación haya que agregarle un transform.LookAt(transform.position); para mantenerla mirando al centro. Como siempre, esto ha sido resultado de mucho ensayo y error, así que ni es la mejor solución y hay cosas que no sé por qué o cómo funcionan. De todas formas espero que les sirva de ayuda si se deciden a programar un reboot de Fallout 2.

Primera partida de D&D en Santiago de Cuba

Durante más de un año los dados de Dungeons&Dragons donados por Yoss habían estado durmiendo en mi gaveta, en espera de reunir un grupo para iniciar la partida. Muchos detalles conspiraban contra la realización del magno evento: para empezar, esto es Santiago: poca gente y menos entusiasmo, algo así como Pueblo Paleto. La mayoría de nosotros vive luchando el día a día, el tiempo para diversiones es escaso. Además, una partida requiere algunos manuales e implementos. De los primeros solo tenía el Manual del Dungeon Master y el Manual de Monstruos, ambos incompletos (imprimir cientos de páginas es un problema, incluso en la capital).
Llegué a la partida bastante acobardado, sin haber leído los manuales en meses, pues había prestado la copia impresa. Los demás frikis invitados conocían del tema por The Big Bang Theory, o sea, que estaban un poco marginalmente por debajo de mi calificación. Y así nos lanzamos a la aventura, inventándonos las reglas, usando piedras y monedas en vez de miniaturas, y compartiendo el parque con la comunidad de jugadores de Yugi-oh. De vez en cuando alguien se acercaba y nos miraba jugar y tirar aquellos dados raros que nunca habían visto. Hubo de todo, incluyendo un jugador que quería ser Dios (baste decir que los demás le comparan con Sheldon) y que se entretenía dibujando su personaje en la parte de atrás de la hoja de jugador.
A pesar de todos los problemas, la partida se reiniciará como debe ser el mes próximo. Esta vez sí iré mejor preparado, haremos una modesta inversión en miniaturas y manuales impresos (que aunque modesta, no dejará de hacer un hueco en mi bolsillo), y espero que sea una experiencia lo más cercana posible al D&D en otros lugares del mundo.

LEyendo a Carlos Sisí

Esta es la evidencia de que hay vida más allá de la literatura inglesa. Mi primera experiencia con este autor español no fue muy impresionante, estaba haciendo un repaso de los últimos premios Minotauro y Panteón era uno de ellos. Un libro de CF normalito (no malo, aunque de esos el premio tiene algunos que francamente, no pude terminar de leer), que me hizo pensar que el certamen estaba bastante flojo. Claro, el problema es que lo estaba comparando con  Señores del Olimpo, de Javier Negrete, que es una novelita de fantasía de las buenas.
En fin, tenía pendiente leer la saga Caminantes, al menos sus 3 primeros libros, pues creo que saldrán más, y al fin encontré un hueco para ello, después de terminar con Dashner y su Corredor del laberinto. De paso, una serie olvidable, con una precuela francamente pobre. Si algún día tienen que escoger entre comprar mi novela y Virus Mortal, les recomiendo que compren la mía. Me esperaba mucho más de una trilogía que va camino al cine.
En cambio, los 3 libros de Carlos Sisí fueron algo relajante y agradable. La serie mejora mucho en el segundo volumen, tengan eso en cuenta si por alguna razón el primero no les resulta del todo atractivo. Y ahora que me detengo a pensar, es mi segunda incursión en el tema Z (Z de zombies, por si no les queda claro), la primera fue con Guerra Mundial Z, de Max Brooks. La idea central es que el mundo ha sido desbordado por una misteriosa epidemia que convierte a los muertos en zombies agresivos. Un grupo de supervivientes tendrá que enfrentarse a la dura tarea de subsistir en una España en ruinas, donde los Caminantes no son la única amenaza.
Definitivamente tienen que leer esta trilogía, y espero que todo lo que venga después sea de similar calidad.

Amazon quiere estafarte con este concurso literario

Amazon ha organizado un concurso literario para autores independientes bastante ridículo, considerando la cantidad de dinero que mueven al año. Para empezar, ni siquiera se han molestado en pagar un jurado decente que se lea todas las obras en concurso, el premio es por popularidad, en este casi medida según las ventas. Sí, habrán 5 obras finalistas, de las cuales Amazon elegirá un ganador, pero esos 5 obviamente no saldrán de entre los menos descargados. O sea, que puedes en cierta forma influir en el resultado final, comprándote los libros y dándoles puntuación (ni idea de cómo es el proceso, pues no puedo comprar). Si uno de ellos es un bodrio, me pregunto cómo podrías deshacer tu voto, porque no sé si Amazon admite la devolución de un ebook (lo mismo, no conozco el proceso). Por supuesto que tamaño sinsentido redunda en beneficio de Amazon (y en alguna medida en favor de los autores que compiten).
Pero la cosa no para ahí. No hay un premio en metálico para el ganador, lo cual raya en lo absolutamente tacaño. Amazon bien podría permitirse un premio de algunos miles de dólares, sobre todo porque están jugando al seguro, contra dinero ya ingresado. Al parecer consideran suficiente premio que el autor venda un poco más que los demás competidores.
Por supuesto que el sistema es bastante rentable (para Amazon) y bastante poco confiable (se presta a todo tipo de trampas, está de más decirlo). Encima se quedan con algunos derechos de forma ilimitada. Para mí, es una falta de respeto mayúscula, vuelvo a repetir que Amazon podría haber organizado algo de primer nivel, en varios idiomas, con categorías por género, y un jurado de renombre. Hay que ver que es verdad eso de que mientras más adinerado más tacaño...

Torque no quiere que hagas esto

Luego de un buen tiempo, tengo que admitir que Torque3d me gusta cada vez menos. El colmo es que ha logrado que en mi disgusto, me interese más por Unity3d, que tampoco me gustaba nada.
Aunque los creadores insisten en que Torque3d es un motor que sirve para cualquier cosa, tal parece que no quisiera que hicieras algo diferente a un FPS o TPS. Entre las muchas dificultades que me he encontrado está que no puedo usar el mouse para rotar la cámara si el cursor está activo. En ese caso tengo que implementar todo eso yo mismo en vez de usar las funciones por defecto de la cámara, lo cual me ahorraría bastante trabajo. Algo similar me ocurrió en Unigine, donde tenía que cambiar entre cursor visible e invisible para moder utilizar el UI y hacer clicks.
Otro fallo curioso y bastante tonto es que si cambio la configuración de entrada, ese cambio afecta el editor. Al intentar reasignar WASD para otros usos, la cámara en el editor dejó de funcionar. Al parecer, Torque no distingue entre el juego y el editor, ambos usan la misma configuración de entrada aunque sean distintos.
Dos meses de trabajo y aún no consigo el efecto deseado. Sin embargo, todo eso que quería implementar lo conseguí en Unity3d en media hora. WTF!!

Oculus compra RakNet y lo libera bajo licencia BSD

En una movida que aún no entiendo muy bien, Oculus Rift ha comprado RakNet, la conocida biblioteca de red, desarrollada por Kevin Jenkins. Si llevas un tiempo en el mundo de los videojuegos, del lado del desarrollador, claro, te resultará familiar RakNet. Es un middleware bastante popular, pero nunca lllegué a usarla porque no me quedaba muy claro si había o no una versión libre.Sin embargo, ahora sí me queda bien claro, ya que está disponible en Github, bajo licencia BSD. Al parecer habrá algo llamado Oculus Connect, que me suena a multiplayer o algo parecido.
Así que ya saben, ya la pueden usar libremente, cortesía de Oculus Rift, que ahora tiene dinero en la cartera para salir de compras y regalar.

La aventura del correo

De vuelta luego de las vacaciones que me dejaron bastante quemado de sol, sordo de un oído y agotado. Y eso que ni siquiera me alejé más de 20km de la ciudad. Y al fin encontré tiempo para instalar mi correo en el móvil. Para estar un poquito más cerca del desarrollo, como aquel que dice.
El famoso correo nauta.cu (nauta para los amigos, que en verdad son muy pocos), que en otro lugar del mundo hubiera pasado desapercibido, aquí es toda una novedad. Como mencioné hace un tiempo, es la primera vez que un ciudadano cubano puede tener acceso a dicho medio de comunicación en un dispositivo propio. Anteriormente, dependíamos del correo corporativo o de internet (el acceso a este último desde los centros de trabajo fue prohibido hace unos años).
Pero no todo fue miel sobre hojuelas. Nauta nació con un sinfín de problemas, el más importante: pésima planificación. A los pocos días ya había colapsado, de hecho la calidad de las comunicaciones móviles ha decaído bastante y resulta casi imposible entender a alguien por teléfono móvil. Su segundo mayor defecto es que se paga por tráfico, tanto entrante como saliente, y además pagas por el tráfico habitual del protocolo y por otras cosas que ni siquiera te imaginas. Muchas personas se acostaron con un saldo para levantarse con otro mucho menor. La solución al problema fue desactivar la transferencia de datos.
En mi caso, esperé bastante para configurar mi correo. Ya tenía la cuenta, pero las colas en la agencia para activar el GPRS y configurar el APN+el cliente de correo eran kilométricas. Y resulta que cuando al fin logro ir y activar el GPRS para mi línea, pues entonces el teléfono no conecta. Esto me llevó a flashear una ROM original (adiós CyanogenMod, creo que jamás lo volveré a usar) que no arrancaba, luego intentar JellyBlast y luego otra ROM original de Movistar. En fin, casi toda una tarde luchando con el teléfono que no arrancaba el sistema.
Al final de todo aquello... pues tampoco conectaba. Estaba a punto de creer que mi móvil tenía algún problema, cuando hoy resulta que sin configurar APN ni nada, mi teléfono se conecta y descarga el correo perfectamente. WTF!!! Desde hoy puedo llevar mi correo conmigo todo el tiempo. Incluso soy uno de esos felices usuarios que pueden dejar la transferencia de datos activa sin que el saldo se escurra inexplicablemente.
Advertencia: si tienes un amigo cubano, nunca, nunca le envíes un adjunto a su cuenta nauta. A menos que estés dispuesto a recargar el saldo de su teléfono para pagarle el gasto que representa recibir varios cientos de kb.

Primera película cubana de animación 3D

Aunque el trailer es viejo, en estos días la noticia estuvo en la TV nacional: el estreno de la primera película cubana de animación 3D está cercano.


El guión está basado en un cuento de José Martí, que a su vez es una adaptación del "Pulgarcito" de Edouard Laboulaye (no del de Charles Perrault), un detalle siempre pasado por alto (probablemente el 90% de los cubanos piensen que la historia es original de Martí).
Sí, ya sé que la animación deja mucho que desear y que los modelos no tienen la calidad Pixar a la que estamos habituados. Ya hay un listillo en los comentarios del video que se apuró a criticar. Pero deberíamos tener en cuenta, antes de lanzarnos a despalillar por la libre, que es la primera película cubana, y a pesar del alto nivel de ayuda proporcionado por los productores gallegos, una parte del trabajo fue realizada por personas que cobran un salario muy lejano al de los artistas de Pixar o Dreamworks. Estas personas seguirán cobrando lo mismo aunque la peli sea un éxito mundial. Es válido aspirar a cosas mejores, pero esas vendrán con el tiempo y la experiencia. Lo importante ahora es que el primer paso está dado, habrá que ver si le siguen otros.

Torque3d está recibiendo un poco de amor

La jugada de Garage Games al fin está rindiendo frutos, una cosecha exigua, pero cosecha al fin. Hace unos años, no había nada más alejado del software libre que la familia de productos Torque. Pero la vida da vueltas, el motor que una vez fue el caballo de batalla de los desarrolladores indie (creo que el término ni siquiera existía en esa época) estuvo a punto de perderse, como lágrimas en la lluvia. Ante esta disyuntiva, Garage Games decidió abrir el código de Torque bajo licencia MIT.
Pero las historias felices no ocurren en la vida real. No apareció de la nada una comunidad dispuesta y amorosa que recibiera a Torque como el mesías salvador de los videojuegos libres. Para empezar, no era un motor multiplataforma. Nunca se le exigió tal cosa. La estructura detrás de él estaba orientada a cliente que pagaban licencia y soporte, así que la documentación es anticuada y escasa. Han tenido que pasar un par de añitos para que Torque gane contribuyentes y al fin se vean los resultados.
Por ejemplo, ya el port para Linux de Torque3d es una realidad. Torque2d incluso va más adelantado en cuanto a plataformas soportadas. El renderer OpenGL avanza, y ya hay un voluntario trabajando en un renderer DirectX 11. Otra contribución muy bienvenida es la migración de deferred lighting a deferred shading. Explicado a grosso modo, el algoritmo actual (deferred lighting) necesita dos pases y tiene ciertos inconvenientes, pero se está implementando un deferred shading más eficiente y moderno. Quizás podríamos tener Physically Based Rendering en algún momento.
Algunas de estas cosas caerán con al 3.6, otras, no tengo idea de cuándo vendrán. Sin embargo, sigo insistiendo en que Torque, más que nada, necesita documentación. Habrá que ver cuándo llega.

Worldbuilding, worldbuilding, worldbuilding!

Un consejo de alguien que ya pasó por eso, si vas a empezar tu propia saga de novelas o juego, antes deberías hacer un poco de worldbuilding. Worldbuilding, o construcción de mundos, traducido muy literalmente al idioma de Cervantes, es el proceso de crear el universo donde está ambientado el susodicho proyecto de novela o juego.
Bueno, pero se supone que la novela en sí debería detallar el universo en que se desarrolla, me diría cualquiera que haya pasado por un taller literario. Y es cierto. La novela, juego, serie de TV, o lo que sea, debe describirnos el lugar, la sociedad, etc. Sin embargo, es un ejercicio muy útil y que nos ahorrará descalabros, sentarnos con antelación y definir con cuidado (o al menos, con algo de cuidado) todos esos elementos, empezando por el lugar. Recuerdo un taller literario cuyo coordinador odiaba a muerte los mapas en los libros. Aunque tu mapa no llegue a la obra impresa (o digitalmente publicada en Amazon), es una herramienta que te permitirá organizar mejor la acción. ¿Hacia dónde viajan los personajes? ¿Cuánto tiempo les tomaría el viaje? En nuestro mundo actual acostumbramos a caminar poco. Sí, incluso yo camino relativamente poco, apenas unos kilómetros al día. Es por ello que no tenemos una noción realista de cuánto toma viajar a pie desde una ciudad a otra, cuánto agota una marcha forzada de cuarenta minutos o más.
Todas esas sencilleces se visualizan mejor con un mapa, a menos que seas un escritor veterano y con cabeza para recordar todos los detalles de tu mundo particular.
Otro elemento en que el mapa ayuda es saber dónde vive cada quién, y aquí el lugar se combina con quienes: la sociedad que habita tu universo, sus facciones, razas, y demás.
El tercer elemento esencial es la fauna y flora del lugar. No escatimes bichos, pero por favor, estudiar un poco de biología primero no está de más, o tal vez leerte algún buen ensayo sobre worldbuilding, los chicos del taller Espacio Abierto tienen algunos muy buenos. Si metes un monstruo de diez toneladas de peso, con cuernos en la nariz y la cola, capaz de volar, será mejor que tengas una muy buena justificación mágica para eso.
No está de más enriquecer el worldbuilding con un poco de historia antigua y reciente, detalles de la tecnología o magia y cosas por el estilo. No suelo llegar a incluir trasfondo para los personajes específicos, porque eso ya más bien tiene que ver con la trama del proyecto en cuestión.
Todas estas cosas evitarán que se te "olvide" incluir algo que podría ser crucial, lo que me sucedió con mi primera novela de Elymuria. En teoría, iba a ser una introducción al universo de mi proyecto de juego, sin embargo el resultado final carecía de muchos elementos que deberían estar ahí: como las pociones. Las pociones nunca faltan en un RPG, sin embargo, descubrí que las había pasado por alto completamente. Peor aún, la idea inicial era para una novela sencilla y corta, así que las aventuras eran muy pocas. Cuando lees la novela, te da la impresión de que hay muy pocos monstruos en Elymuria, y lo peor es que este problema se transfirió a la segunda novela. De sucederte esto, te verás obligado a meter cosas con calzador, o luchar con inconsistencias, y no importa lo pequeñas que sean, alguien siempre las encontrará si tu novela llega a más de cuatro gatos.
De nuevo, los remito a algún ensayo decente sobre el tema, pues este texto es más bien para aclararles que el asunto existe y es de importancia. Solo resta desearles suerte en su futuro best-seller, ya sea juego o novela.

¿Es posible hacer un juego libre con un motor privativo?

La pregunta del millón, a la cual no he obtenido respuesta precisa ni en FreeGamedev ni en la lista de correos de usuarios de Linux en Cuba. Unos dicen que sí, otros que no.
Supongamos que queremos hacer un juego libre, open source. Torque3D es la opción más avanzada, a menos que estemos dispuestos a invertir mucho cerebro en agregarle a Ogre todo lo que falta (a propósito, Ogre 1.8 no compila en Fedora 19 ni en Linux Mint 16; aún espero respuesta en el foro al respecto). Pero Torque es... digamos que tiene sus cosas, y solo de mirarlo se te quitan todos los deseos de programar en él. ¿Irrlicht? ¿CrystalSpace? Ninguno. Vamos a ahorrarnos la lista (aunque en serio recomiendo echarle un buen vistazo a Godot). ¿Podríamos hacerlo con Unity? Una herramienta potente, versátil, fácil de aprender y documentadísima. El motor de elección de un montón de proyectos recientes como Wasteland 2 y Pillars of Eternity. Dan una versión gratis, pero si no te disgusta ponerte el parche en el ojo, puedes encontrar la versión Pro en cualquier sitio de torrents. Junto con muy buenos libros, que te llevarán de cero a héroe en 21 días.
Supongamos que puedes pagar 19 dólares al mes. En ese caso eres un burgués acomodado y consumista y deberías donar dinero a las personas con hambre del tercer mundo, como yo. Ah, y también podrías pagar la suscripción de Unreal Engine 4, un motor bestia entre los bestias, y no escaso de documentación.
Aquí empieza el debate filosófico y ético. ¿Es posible hacer un juego libre con Unity3d o Unreal? Yo desisto de encontrar la respuesta correcta. La mía es que haré lo que me dé la gana.

El misterio de las 300 visitas al día

Por favor, necesito que alguien me diga si me he vuelto famoso de momento, y de ser así, dónde está la fortuna que me corresponde, para poder empezar a protagonizar escándalos y borracheras (un buen escándalo demanda cierto financiamiento). Desde hace un mes el tráfico de visitas se ha incrementado notablemente, incluso, durante la semana pasada, el promedio se mantiene sobre las 300 diarias, a pesar de que no hay ninguna publicación. Lo normal es que descienda a los 20-30 durante los días posteriores a la última anotación. El tráfico habitual en este blog nunca sobrepasaba las 50-60 visitas, y creo que cuenta con unos 100 seguidores a través del feed.
El gran emisor de visitantes es Estados Unidos, seguido a veces por Rusia o india. No me extraña la India, porque tengo un spammer jodedor tratando de colarme enlaces en los comentarios, los cuales no dejo pasar. Si quieres un dofollow, pues esfuérzate en dejar un comentario con algo de sentido, si no, te puedes ir al carajo. Pero el español nunca ha sido un lenguaje muy popular en Rusia, así que es raro que este país se mantenga por encima de España en las visitas.
El tráfico no parece venir de los buscadores ni de ningún otro referente, más bien son visitas directas. El mismo no viene acompañado de comentarios, así que alguien me ha sugerido que podrían ser bots. Lo que no me explico es qué buscan esos bots. En fin, ni puta idea de qué rayos está pasando.

El drone stealth de 24 es retro

Luego de varios años en espera y de casi darlo por perdido, Jack Bauer is back! Si eres seguidor de la serie ya sabes de qué va la cosa, pero si eres de esa gente con pésimo gusto que prefiere ver doramas coreanos, la historia es más o  menos la siguiente: hay una tía más mala que la tiña que ha logrado hacerse con el control de varios drones con capacidades furtivas. El aparato (Vanguard) en cuestión no existe, por supuesto, pero lo curioso es que su diseño es más bien retro:

 

Como pueden ver, está basado en el veterano y ya jubilado F-117, cuya silueta era angulosa. Y fue así porque en la época de su diseño las computadoras no podían trabajar con superficies curvas, si no ando muy errado. El Vanguard va equipado con Hellfires, un cohete muy versátil que sí existe, y que inició su vida como arma antitanque guiada por láser, pero ha sido actualizado con una cabeza de fragmentación y guía de radar pasiva. Supongo que esta última versión es la que de vez en cuando se deja caer, literalmente, sobre los talibanes o cualquier otro infeliz inocente que esté en el lugar equivocado haciendo algo remotamente sospechoso.
En cambio, éste es el verdadero RQ-180, el drone stealth en servicio actualmente.

 
Su existencia fue reconocida hace muy poco, aunque antes de eso tuvo el dudoso privilegio de protagonizar un escándalo cuando los iraníes lograron engañar uno y hacerlo aterrizar intacto. De ser cierto el asunto, los rusos y chinos deben haberle revisado hasta el tubo de escape.
Es un aparato enorme, pero no se sabe a ciencia cierta si tiene capacidad de portar armamentos. Su objetivo principal es volar en "cielos en disputa", o sea, sobre países enemigos como Corea del Norte, por lo que no tengo idea de qué harían una docena de aparatos similares (y armados) volando sobre Europa. Pero bueno, sin eso no habría necesidad de Jack Bauer.

Sí, tendremos otro Mass Effect

Pero eso ya lo sabíamos, ¿no? Nosotros lo queríamos, a pesar de que la saga declinó en cuanto a calidad en favor de simplicidad y acción, y Bioware nos complace.


Para los que, como yo, necesitan media hora para descargar el video, les adelanto que es muy poco lo que se muestra, porque obviamente es muy poco lo que se ha hecho. Unos escenarios vacíos, modelos de personajes forrados de armadura, y unos tíos trabajando en oficinas oscuras. Parece que se toman en serio eso del ahorro en Bioware, y yo que pensé que eso de apagar los aires acondicionados y las luces era exclusivo de acá.
La idea era no presentarse en el E3 simplemente con Dragon Age (otro trailercillo soso, pero con mucha exhibición de Frostbite), sino también confirmarnos que están trabajando en la próxima entrega de Mass Effect, teniendo en cuenta lo que los usuarios han pedido. Que ha sido bien poco, creo, solo conocer nuevos lugares y personajes. Solo eso, nada de una mejor mecánica de juego que no sea tan simplona, o un RPG de verdad. Toca esperar al E3 del 2015 o el 2016 para ver si nos muestran este nuevo título en acción.

¿Soy el único raro al que no le gusta el WoW?

Esta era una de esas tareas que tenía pendientes para "el día que viaje a otro país y alguien me preste su cuenta". Mis experiencias con el World of Warcraft siempre fueron muy malas, servidores vacíos la primera vez, allá en la UCI (me cuentan que después se llenaron con cientos de estudiantes), servidores privados muy inestables, mi propia latencia... nada agradable.
Hace unos meses conseguí el cliente completo, que son unos cuantos gigabytes, y me di a la tarea de encontrar algún server privado que tuviese una población aceptable (requisito esencial para una buena experiencia, después de todo es un MMORPG) y la versión del cliente que tenía a mano, algo que por suerte, conseguí a la primera.



Sin embargo, aunque reconozco que el juego me gusta, sigo prefiriendo el Regnum y sus peleas entre reinos, donde ya puedo ganar de vez en cuando, aunque aún estoy muy lejos de los Warmasters con su nivel 60 y mejoras compradas con dinero real.
Los gráficos del WoW no me impresionan (de hecho, me parecen de cartón) y la jugabilidad me parece más o menos pasable, sin nada excepcional. Un amigo me dice que la experiencia en el server de Blizzard es completamente distinta y prometió darme su cuenta que no usa (pero que su primo mantiene activa), habría que ver si la cosa cambia realmente en cuanto a interacción con los demás jugadores. Porque la mecánica de juego, pues seguirá igual.
En fin, que esto solo prueba que hay gente para todo, ni yo mismo me hubiera creído que a alguien le gustara más el Regnum que el WoW. Será que soy un bicho raro.

Nuevo premio cubano de CF y fantasía

Ayer me llegó un correo del Proyecto DIALFA anunciando la creación del premio Juracán, que se otorgará al mejor libro cubano publicado en los géneros de ciencia ficción y fantasía, en las categorías de novela y colección de cuentos. El mismo está inspirado en otros premios internacionales de votación popular como el Hugo. ¿Y qué es "Juracán"? Pues esto:
Juracán era el nombre que le daban nuestros aborígenes cubanos taínos a los fenómenos atmosféricos conocidos hoy por huracanes. En la creencia taína, el Juracán estaba conformado por tres dioses: la principal, Guabancex, una deidad femenina señora de los vientos huracanados, acompañada por sus dos ayudantes: Guataubá, el pregonero que daba los relámpagos, y Cuatrisquie, que desataba las aguas torrenciales. Los tres conformaban la terrible tormenta que arrasaba con cuanto se encontrará en su paso. 
Lamentablemente, como toda iniciativa nacida en el seno de una comunidad cubana, sin apoyo gubernamental, nace lastrado por algunos defectos. El premio se limita a los libros publicados en la capital, que es donde radica el grupo. No es que fuera de la Habana se publique mucha CF y fantasía (al menos en Santiago, que tiene una editorial de cierto renombre, no hay interés alguno en esos géneros), pero cualquier exclusión es mala. Cabe señalar que las tiradas son bastante exiguas y los libros pueden quedarse a mitad de camino, sin llegar a  todo el país. Por mencionar un ejemplo, de los nominados de este año hay dos que no llegaron hasta acá y eso afectaría mi votación.


Y ni hablar de un premio en metálico. Sin embargo, este premio tiene un gran valor, al menos para mí, porque es el reconocimiento de los lectores a una obra que les ha gustado. Lo cual no es lo mismo que el reconocimiento de un jurado, que según mis experiencias, tiende a premiar otras cosas más teóricas o "vanguardistas". Lo limitado del público votante no menoscaba el orgullo que deberían sentir los premiados y el esfuerzo de los coordinadores del Proyecto DIALFA. Obviamente, estaré incluido en la edición del 2015 o 2016.
Ojalá algún día las condiciones permitan que el Premio Juracán incluya a todo el fandom y las publicaciones de Cuba, desde Occidente hasta Oriente.

Primer tutorial de OpenGL 3

Lo prometido es deuda, así que aquí está. Tenía muchos planes para este tutorial, como por ejemplo una versión para Windows, pero al final lo he dejado solo con el proyecto de Code::Blocks, debido a un par de razones (uff, he escrito esto ya tres veces hoy). Primero, considero que el código fuente es mucho más útil, o por lo menos para mí lo fue mientras estaba elaborando este demo. Segundo, falta de tiempo. Mi horario está limitado al tiempo de oficina, que debo compartir entre muchas tareas, como escribir, trabajar en otros proyectos, cinco minutos para relajar, y por supuesto, trabajar.
Espero poder publicar algunos otros en algún momento.

TESO parece algo decepcionante

Las reviews iniciales de The Elder Scrolls Online no lo han tratado muy bien (en especial la de Tom's Hardware lo hace polvo), algo sorprendente para un juego que nos tenía a todos embobados. Por lo menos yo, daba por hecho que sería un paletazo de los buenos y lamenté no haber podido probar la beta.
Sin embargo, todo parece indicar que el juego adolece de ciertos problemas, el más grave de todos es ser aburrido y repetitivo, algo imperdonable para un MMORPG. TESO es un intento de llevar la experiencia de un solo jugador de Elder Scrolls a multijugador, lo cual funciona (según unos, pero no lo hace, según el review que se lea) pero puede irse al carajo cuando te reúnes con otros jugadores, en ese caso las decisiones que has tomado ya no importan. Es que incluso, el inicio de la historia es bastante estúpido: siempre apareces prisionero y un profeta te dice que estás destinado a cambiar el mundo. Sí, tú y otro millón de jugadores (y bots). Una verdadera patada al sentido de singularidad que debería ofrecer un MMO.
Aunque todas las reviews reconocen que las clásicas misiones de ve-y-trae/mata-10-algos/alguien, eso no libra a la campaña (otra vez, muy a lo single player) de ser sosa y aburrida. Además, Bethesda ha gastado una pepinada en meter doblaje en todas partes (de ahí que el cliente pese una indecente cantidad de gigabytes), en vez de ahorrarse ese dinero y espacio, o invertirlo en más variedad de escenarios. Y es que a pesar de su buen motor gráfico, la apariencia del juego tampoco escapa al problema de ser aburrido y repetitivo. Los personajes tampoco se libran, incluso cuando supuestamente tendríamos miles de combinaciones de objetos, gracias a la habilidad de Artesanía, con diversos estilos.
Lamentable. En especial viniendo de un estudio que  ha demostrado saber hacer buenos RPGs. Así que ya saben lo que les espera si se deciden a gastar su dinero en este MMORPG.

Wastelands 2

Ayer era noticia en todas las webs especializadas que Wasteland 2 estará disponible en agosto. La espera de más de 20 años acaba al fin, pero no solo eso, sino que también veremos un juego que viene a llenar ese vacío que los distribuidores han dejado. Casualmente logré hacerme con la beta hoy y en verdad lamento no haber podido ser uno de los backers del proyecto en su campaña de Kickstart.
Unos pocos minutos de juego no bastan para hacerse una opinión completa de este título, sin embargo creo que estoy complacido con el trabajo de Brian Fargo y su equipo. Wasteland 2 es lo que debió ser Fallout 3, no esa porquería que nos vendió Bethesda y que después Obsidian hizo todo lo posible por mejorar. Desde la música hasta la mecánica de juego, da la sensación de estar jugando Fallout 2 con un motor mejorado.
Si el sistema de mapa de Fallout 3 te parecía una estupidez, pues no te preocupes, WL2 tiene un mapa más lógico, solo basta con tener la ubicación señalada y ya podrás viajar hasta ella. En definitiva, para eso están los mapas. Un añadido interesante es que necesitas agua para realizar el trayecto.
El combate es mucho mejor que antes y a pesar de ser por turnos, no aburre (aunque no me he encontrado una pelea masiva de verdad). En ocasiones la IA suele moverse por caminos raros, pero tal vez eso se arregle en la versión definitiva.

Gráficamente el juego se ve bien, aunque no excepcional. El rendimiento de Unity3D  no me impresionó, pero hay que considerar que mi tarjeta es gama media-baja y el CPU tampoco ayuda. La jugabilidad, como debe ser en este tipo de juegos, se encarga de suplir cualquier carencia en este sentido.
Este es un juego que les recomiendo comprar sin pensarlo dos veces. Con toda seguridad InXile se merece el dinero, y se merece regalarnos (como siempre digo, es una metáfora) más proyectos como este. No me cabe duda que su nueva iteración de Planescape nos sorprenderá igual que Wasteland 2.