RV740, una oferta tentadora

Una de las últimas cosas que pude leer antes de ser enviado al Tártaro (que no es un lugar donde hacen tartas precisamente) sin conexión con el mundo exterior, fue el review que hicieron en Guru3D del prototipo de la nueva y terrible arma secreta de ATI: una tarjeta basada en el RV740.
Aún no hay nombre oficial, así que en Guru3D optaron por llamarla HD4750. El prototipo casi alcanza a la HD4850, supera a la HD4830 y de paso, sin mucho disimulo le patea el trasero a la 9600GT. Todo ello con un precio previsto inferior a los 100 dólares.
Ya he empezado a planificar cómo adquirir una en este año, ahora veamos si todo sale bien y no me fallan los demás implicados.

En línea otra vez

Ha sido una larga ausencia de casi 15 días debido a un problema con mi conexión.
Pero al fin estoy de regreso, aunque con muy poco que decir. La falta de avances se debe a que me adentré en terreno desconocido: la física, usando btOgre y Bullet. Y en mayor medida debido a que logré hacer funcionar Mass Effect. Al parecer la versión 9.2 del driver de ATI era lo que necesitaba.
Mass Effect es un excelente RPG. Aunque no tan rápido de entender como Fallout 3, al final cualquier jugador experimentado debe cogerle la vuelta. Al principio el sistema de cámara y movimiento me dio la impresión de ser una locura, sin embargo luego de cinco minutos de juego descubrí que tal vez sea el más cómodo y útil que haya experimentado. Realmente se disfruta.
Así que por el momento no habrán más avances, hasta que logre llegar al final.

945, fuera de rango

Hace un par de días le presté mi HD2600 a una amiga para probar una motherboard. No tenía pensado encender más la PC hasta que me la devolviera, pero se me metió en la cabeza la idea de probar el proyecto con la integrada, que es una Intel 945G.
Los resultados fueron decepcionantes. La 945G sin sombras y efectos de clima en un escenario bastante despoblado apenas alcanza los 9 cuadros por segundo. Lo cual la sitúa fuera del mínimo para correr el juego y probablemente ni siquiera permita ejecutar Strata.
En cuanto organize las cosas aquí veré cómo se comporta en la ATI Xpress 200M, que de hecho presentaba un bug importantísimo: el terreno de Ogre se renderiza mal.

Partículas y efectos climáticos

Esta es otra mejora trivial, pero que me está dando dolores de cabeza implementar. En principio, el mapa indicará el tipo de clima del escenario, si es lluvioso, nevado, con niebla, etc. Además tendrá un porciento de probabilidad de que ocurra esa nieve o lluvia.
El caso es que la lluvia no queda como debe ser. El gran problema es tunear los parámetros del sistema de partículas y para más inri, lograr que se vea igual en la vista isométrica y en la de tercera persona. En la primera las gotas se ven enormes y en la segunda muy chicas. Supongo que sea por la distancia hasta el nodo al que se adjunta el sistema de partículas. Y el padre de todos los problemas es el rendimiento. De 97-100 fps cae a 45-50. Y eso que no es una lluvia realmente densa, como en Eternal Lands. En fin, creo que por el momento tendrá que quedarse así, hasta que logre dominar el sistema de partículas un poco mejor.

XFCE 4.6.0

Bueno, esto es noticia vieja, pero ayer no hubo forma de conectarme. Al parecer Blogger estaba caído como Gmail hacer unos días.
El caso es que ya está la última versión de mi escritorio favorito. Ligero y funcional, no se puede pedir más. Ahora a esperar que entre al portage y para los más conservadores tal vez esperar la 4.6.1 que saldría un poco más pulida.

XServer 1.6

Dos meses después de lo planificado, como es habitual, llega el 1.6. En Phoronix hacen una breve reseña, más bien mostrando lo que no tiene o lo que debería tener, en vez de lo que tiene. Tal como van las cosas no se asombren si la próxima versión, que viene convoyando XOrg 7.5, no trae nada de lo que nos prometen. Aparte de llegar atrasada.

Agua en Elymuria

No, no se trata de un descubrimiento astronómico.El caso es que ya tenemos agua en el proyecto, sin necesidad (por ahora) de usar Hydrax, un excelente add-on de Ogre que permite un montón de efectos simpaticones.
La idea es sencilla y generalizable: solo necesitas poner un plano bajo el terreno de forma que intersecte las secciones del mismo que quedan por debajo de una altura X. Le aplicas un material que simule agua y ya está. Justo ahora ando en busca de un shader sencillo para simular un agua más realista.

Física... más o menos

Mi propósito es implementar un sistema de físicas acorde a lo usual en estos tiempos. Opciones hay muchas, con los respectivos add-ons para Ogre. Sin embargo Bullet parece ser muy buena, multiplataforma y proporciona aceleración mediante CUDA, para los felices poseedores de una tarjeta Geforce 8000 o superior.
Ayer incluí un soporte muy básico gracias a un wrapper sencillo que alguien escribió. Aún estoy lejos de alcanzar colisiones como tal, pero al menos la base está ahí y el autor prometió aclararme algunos puntos en cuanto se libere un poco de los compromisos de la vidad diaria.
Por otra parte trabajé un poco en el sistema de inventarios del personaje, aunque esto es apenas un cascarón. Espero que a medida que avance se refine el diseño.

Artifex Terra 3D

He estado haciendo experimentos con Artifex Terra 3D para facilitar la creación de escenarios para el juego. La última versión está muy bien, salvo que me obliga a trabajar en ventana. Al parecer depende de un diálogo estándar de Windows para abrir proyectos, lo cual causa un buen problema cuando se está en pantalla completa.
Pero como herramienta de modificación y texturizado de terrenos está muy bien. También es posible reutilizar los archivos con información acerca de los objetos en el mapa. Es una lástima que sean texto plano y no xml, que podría parsear directamente en mi código. Pero bueno, a largo plazo la solución es terminar Strata, que estará enfocado específicamente al juego.
No obstante, Artifex Terra es un opción muy seria a valorar si no quieres diseñar tu propio formato de mapas. siplemente usa su código de carga y ya está.

Diálogos y misiones en acción

Intenté condensar esto en un solo video, pero por alguna razón el Cinelerra explota, no importa en qué formato le suministre los recursos de video. Así que para no hacerlo muy largo tuve que cortar a mano y hacer cuatro videos separados.
En este vemos el primer diálogo.

Este es más corto, con el "herrero".

Aquí ya entramos en materia.

Y este es el último.

El proceso de implementar el sistema de diálogos del juego ha sido un poco largo, pero la idea subayacente es sencilla. El único problema que enfrento ahora es que la creación de una misión y todos los diálogos aparejados es bastante trabajosa y se cuelan errores a montones.

Sistema de diálogos, 90%

Hoy debía ponerles aquí el video con el sistema de diálogos. Pero he perdido mi flash y además el video ya ha quedado bastante atrasado comparado a las nuevas adiciones que hice hoy. Puedo considerar que el sistema está a un 90%.
En esencia, en el día de hoy integré el sistema de banderas, que es la base de las misiones y otras cosas. El sistema de banderas o flags permite que los scripts dejen determinados valores en cada entidad del juego, para saber si hemos visitado un determinado lugar, hablado con alguien, etc. En este momento, un script de diálogo puede acceder a la información de ambas entidades, jugador y NPC, a sus flags y estadísticas (el inventario queda aún pendiente). De hecho, en el código actual, que subiré mañana al SVN, ya hay dos misiones que pertenecen a la línea argumental principal del juego. Uno de los diálogos tiene dos líneas y además sorpresas que dependen de cierto atributo. La creación de personajes se basa en un script que produce números aleatorios, así que por el momento las cosas pueden salir o no. Espero antes que terminen mis vacaciones que esto no sea así, pero no garantizo nada, porque el trabajo con CEGUI es extremadamente pesado.

Sistema de diálogos, primera imagen

Ha tomado lo suyo, principalmente porque soy más vago que la quijada de arriba, pero ya casi está.
Quedan unos aspectos por limar, pero debería tenerlo a punto hoy para empezar la integración con el sistema de flags y misiones. En cuanto esté listo pienso montar un video para mostrarlo en funcionamiento. Tengo que reconocer que el look no me gusta, pero ya aparecerá alguna variante.
De paso, les informo que el sitio oficial en Sourceforge ha sido actualizado. Hay una nueva página con el trabajo inicial de diseño de las razas y las profesiones. Les agradecería sus sugerencias al respecto.

Definición de objetos visibles

En los dos últimos días he estado jugando con el exporter de Ogre (de paso, se me pasó la noticia de la versión 1.6.1) para Blender y MeshMagick.
MeshMagick es una herramienta que permite unir varios meshes, entre otras cosas. El caso es que algunas mallas pueden contener submeshes, que el exporter genera como archivos independientes. Esto no es óptimo, sin embargo en algunos casos puede ser necesario. De todas formas, me di cuenta de otras ventajas de tener un sistema que me permita definir objetos visibles compuestos de varias cosas. Por ejemplo un objeto del mapa puede estar formado por una malla y un sistema de partículas.
De paso, también descubrí un problema: si se activa la generación de la lista de bordes al exportar, la aplicación explota cuando el objeto se hace visible con sombras activadas. La lista de bordes (edge list) se usa precisamente para eso: para el cálculo de las sombras. supongo que tendré que hacer más experimentos acerca de esto.