De vuelta al trabajo

Bueno, Informática 2009 ha traído cola, así que estos días de vacaciones pintan muy atareados. Para empezar regresé con el compromiso de adelantar el juego hasta un nivel de jugabilidad decente. La idea es presentarlo a finales de año en la UCI, en el evento UCiencia. Hay mucha gente interesada en verlo en acción, lo cual me halaga porque dicha universidad posee un capital enorme de gente con talento, mal empleado en ocasiones, pero talento al fin que muchas veces se escapa y logra convertirse en proyectos interesantes.
También al llegar me encontré una propuesta para publicar el trabajo en la revista electrónica UXi. Esto ya está liquidado (creo), así que esta podría ser mi primera publicación.

Ultimo día de Info 2009

Hoy me despido de la Feria Informática 2009. Han sido unos días cargados de trabajo y en general una semana corta, mucha gente que ver, información que compartir y las condiciones no han sido las mejores. Se me quedan miles de cosas que contarles acerca de la Feria, mi intención era darles un post diario, pero al principio pensábamos que había que pagar por el acceso y cuando todos se enteraron que era gratis entonces conseguir un puesto se volvió casi imposible.
Aquí me ven con un colega de Santiago (a mi izquierda) y Angel goñi, líder el proyecto Nova, justo depués que lo atosigáramos para que acelere la salida de la versión de 64 bits para servidores.

Aquí estoy con Abel, el creador de Guano, un escritorio ligero para PCs con bajos recursos.
Me quedan más fotos que trataré de subir en otro lugar, con mejores condiciones.

Cuba en Blender

Una de las grandes ventajas de estar en la Feria Informática 2009 es poder ser testigo de sucesos que están saliendo justo ahora en las noticias. Por ejemplo he podido compartir con el equipo de Nova, la distribución cubana de Linux (ls debo la foto con Angel, su líder de proyecto).
Y entre tanta gente tan brillante (que casi no necesitamos luz eléctrica) tenemos a Farsthary, el primer desarrollador cubano de Blender.
El y yo tuvimos bastante tiempo para compartir y conversar acerca de los respectivos proyectos. Realmente me he quedado asombrado de la cantidad de gente talentosa que tenemos por acá.

De viaje

Hoy salgo para Informática 2009. Empieza el lunes, pero primero hay un encuentro de usuarios de PostgreSQL, para crear el Grupo Nacional. De paso me doy una vuelta por la Universidad de las Ciencias Informáticas, a ver qué se pega. Así que es muy posible que no postee durante una semana o más. Esta vez sí me llevo cámara (prestada), en cuanto regrese pondré las fotos.

Alpha splatting, al fin (o casi)

Al parecer la solución que buscaba estuvo todo el tiempo frente a mí. Pero como dice el opening de Naruto, mientras más cerca está, más difícil es verlo.
El enlace lleva a una página del wiki de Ogre con el shader para hacer splatting de hasta 8 texturas en un pase, es personalizable y el resultado se ve igual ya sea D3D u openGL el backend de renderizado que utilices. Solo me queda un pequeño detalle y es que por alguna razón aunque visualmente está bien, la textura no se aplica correctamente, queda corrida hacia la derecha.

Nuevo look de CEGUI

Probando el editor de CEGUI me percaté hace unos días de que en la versión 0.6 viene un nuevo look: Vanilla. Es un poco más sencillo y menos recargado que el Taharez, y de colores claros. Acabo de intentar cambiar el proyecto a este look, sin embargo me di cuenta en medio del proceso que Vanilla apenas tiene implementados la mitad de los widgets que Taharez.
Así que no me queda más remedio que buscar alternativas a los Tab panels. La primera idea que tuve fue separar la ventana de información del personaje, que usa varias hojas, en ventanas diferentes. Una serie de botones permitiría abrir cada una de las fichas que componen la información (habilidades, información, etc) y también pienso simplificar la ventana de habilidades y concentrarla en una sola. antes tenía una hoja por cada grupo de habilidades.
Eso, si no cambio antes a las otras opciones que tengo.

ATI Catalyst 9.1

Bueno, a estas horas hasta los perros lo saben. Tenemos nuevo driver de ATI para Linux y lo más significativo es que al fin hay soporte completo para OpenGL 3. Para los afortunados poseedores de hardware OpenGL 2.1, que es también OpenGL 3, solo es cuestión de descargar (cuendo se pueda, que la cosa parece estar apretada) la nueva versión o esperar que entre en los correspondientes repos.
Otra característica que me llamó la atención es Hybrid Crossfire. La misma permite que combinemos la tarjeta integrada con la discreta, pero solo si tenemos un chipset AMD 780G o 780D y determinadas tarjetas como la 2400 o 3400. Vamos, que es algo así como que ahora puedes rascarte el trasero con ambas manos, pero solo si lo alcanzas con la mano derecha por el lado izquierdo y por el lado derecho con la mano izquierda y teniendo ambas enfundadas en guantes de boxeo rosados. Además según dicen en el foro de Phoronix, el rendimiento de una 3400+IGP en HC no alcanza al de una 3800. Decepcionante, no obstante vale la pena archivarlo para futuros usos.

Sistema de diálogos

Ayer fue un día bastante malo en lo personal. Lleno de malas noticias, problemas que salen a flote nuevamente... Nada, cosas de la vida que tenemos que enfrentar. Aún así logré sobreponerme para trabajar un poco en las ideas que tenía para el sistema de diálogo.
En un principio pensaba implementarlo de la forma siguiente: cada diálogo es un script lua que recibe un parámetro. Este parámetro indica el lugar donde estamos, es "root" si el diálogo se inicia, o es otro valor que indica la respuesta que el jugador escoge. El script retornaba una lista de pares de posibles respuestas/códigos y la próxima línea del diálogo del NPC. Esto no funcionó y se hacía un poco complicado recuperar la tabla con las opciones.
Así que me decanté por una idea diferente. Ahora hay una clase contenedor cuyo objetivo es contener la línea y respuestas actuales del diálogo. A partir de ahí lo mismo, cuando seleccionamos una respuesta se vuelve a ejecutar el script, esta vez pasádole el código de la respuesta seleccionada, y el mismo nos limpia el contenedor y lo llena con la próxima ronda.
Por supuesto el script del diálogo puede llegar a ser complejo, pero no veo otra solución para lograr un sistema flexible.
Esto significa que ya estoy un paso más cerca de lograr un sistema básico de quests y a su vez algo más cerca de alcanzar la jugabilidad mínima.

MyGUI

Como me recomendara Valtovar, ayer me dediqué a probar MyGUI. MyGUI es un GUI para Ogre que intetna ser rápido y fácil de usar. Para los usuarios de Linux, les advierto que la versión disponible para descarga (2.2) no funciona, así que hay que halar el svn. Aún así algo no compiló, sin embargo pude probar muy brevemente el Layout Editor. Mi primera impresión es que el rendimiento no es bueno, pero eso es algo que aún tengo que confirmar en algún proyecto de prueba. No le he echado un vistazo a fondo al API como tal, así que poco puedo opinar en ese apartado, salvo que el problema que me preocupa -el cambio de imágenes en tiempo de ejecución en un componente- tampoco parece ser muy fácil de resolver.
Me quedaría por probar Navi, pero eso será más adelante porque hay un conjunto de objetivos más importantes que debo resolver a corto plazo.

Troyano para MacOS X con Lua

Se ha reportado un nuevo troyano que se está distribuyendo en copias piratas de iWork 09 y Adobe Photoshop CS4. Lo que ha llamdo la atención de la comunidad de usuarios de Lua es que el mismo incluye un intérprete de dicho lenguaje con un pequeño cliente P2P.
En la lsita de correo de Lua se discutió acerca de si tal cosa sería buena o mala publicidad para el lenguaje, aunque no se llegó a una conclusión definitiva. Como diría un amigo: que hablen, aunque sea mal, pero que hablen de ti.

Mejores juegos Open Source del 2008

El conteo de votos ha concluido y aquí tenemos los 10 primeros según los lectores de LinuxJuegos. Frets on Fire gana el primer lugar, seguido de Battle for Wesnoth y OpenArena.
Además podemos ver la lista completa de los nominados, la cual es una buena referencia si estamos en busca de algún juego gratis y no queremos ir probando sin ninguna opinión previa. Todos los géneros están representados: RPG 3D single player y online, estrategia, arcade y FPS; para todos los gustos y todos los hardwares gráficos.
Como siempre, se nota cierto hueco en los RPG, aunque Scourge hace lo posible (y lo hace bien).

XFCE 4.6 casi está

Hace unas horas acaba de liberarse el primer RC de la rama 4.6 de XFCE. La misma, si no se encuentran problemas, se convertirá en la versión definitiva.
XFCE es un escritorio ligero, aunque últimamente han tratado de desligarse del término ligero, y apuntan más a un entorno funcional pero con un consumo de recursos discreto. Esta rama incluye cosas interesantes como por ejemplo un nuevo sistema de configuración accesible mediante una herramienta de la línea de comandos.

Aplicación multihilos

Esta anotación de Javier Pastor me ha traído a la mente una asunto que de vez en cuando ocupa mi atención por unos segundos, pero que rápidamente envío a la gaveta de asuntos pendientes.
Como bien lo dice el artículo, nos están cayendo los cores como moscas y nosotros los programadores nos la vemos negra para aprovecharlos.
Pues sí, el tema de cómo llevar el juego a una arquitectura que aproveche varios hilos es algo recurrente cuando hago un poco de ejercicio mental. Por el momento no me queda muy claro qué cosas podría mover a hilos separados. He pensado que la música de fondo, que requiere un flujo constante, es el primer candidato. Otro podría ser la inteligencia artificial, que justo ahora se maneja ejecutando el script de una entidad en cada vuelta del ciclo. Habría que ver como encaja eso con scripts que se disparan ante determinados eventos, aquí me encuentro con una especie de subparalelización que aún no sé cómo resolver.
En fin, que el asunto irá otra vez a pendiente hasta que otra cosa me lo vuelva recordar.