Este es uno de los pocos RPG libres que han tenido la suerte de mantenerse activos. Y además han sido bendecidos con su inclusión en el programa Google Summer of Code. Cada 2 años más o menos le echo un vistazo y me complace ver que siempre hay nuevos detalles, tal vez no todos los que uno esperaría de dos años, pero siendo yo mismo un desarrollador aficionado, comprendo lo difícil que es mantener un proyecto, por no mencionar cambios innovativos.
Este año le tocaba, sobre todo porque algunas cosas interesantes se acometieron como parte del GSoC. El juego es bueno, sigue estable como siempre, y el único detalle molesto es el que siempre ha estado ahí: FreedroidRPG es muy lento. Me ha llevado toda una mañana completar un par de misiones iniciales. Luego de tres horas de juego en Mass Effect o Fallout tienes como mínimo 4 o 5 misiones completadas y una idea de qué va la historia.
Cualquier misión trivial (ve y consigue esto, ve y mata tal cosa) que tome más de 20 minutos debería ser rediseñada. Esta es una lección que debemos tener en cuenta.
Splatting resuelto
Gracias a esta respuesta en el foro de Ogre, ayer logré solucionar el asunto del splatting con el nuevo sistema de terrenos.De paso, descubrí un nuevo detalle que me obliga a replantearme el diseño de los escenarios: el tamaño del terreno no puede ser muy grande o los parches de las capas adicionales se ven pixelados. Eso es porque cada punto del mapa alfa tiene que mapearse a una extensión muy grande. En mi caso, un mapa de 512x512 no es suficiente para un mundo de más de 8000x8000, y apostaría que 1024x1024 tampoco. Por tanto, debo usar escenarios más chicos o enredarme con el paginado de terrenos (y usar páginas chicas).
Otra cosa que me estoy planteando es rediseñar la ventana de información de personaje y en vez de pestañas usar diálogos independientes.En general, pienso simplificar el interfaz de usuario y utilizar solo widgets básicos, así es más fácil migrarlo a un skin nuevo de ser necesario.
También logré actualizar Bullet a la 2.76 para MinGW y de paso compilar OgreBullet, también con gcc. Ya casi tengo a punto el proyecto para Code::Blocks nuevamente. Para el proyecto de Visual C, compilé ogg y vorbis, que aún no se han integrado.
Todo eso entre la noche de ayer y la mañana de hoy, mientras llenaba de agua los depósitos y mi casa se inundaba poco a poco por la lluvia. Parece que la humedad propicia la productividad, supongo que tendré que pensar en programar en una piscina.
Otra cosa que me estoy planteando es rediseñar la ventana de información de personaje y en vez de pestañas usar diálogos independientes.En general, pienso simplificar el interfaz de usuario y utilizar solo widgets básicos, así es más fácil migrarlo a un skin nuevo de ser necesario.
También logré actualizar Bullet a la 2.76 para MinGW y de paso compilar OgreBullet, también con gcc. Ya casi tengo a punto el proyecto para Code::Blocks nuevamente. Para el proyecto de Visual C, compilé ogg y vorbis, que aún no se han integrado.
Todo eso entre la noche de ayer y la mañana de hoy, mientras llenaba de agua los depósitos y mi casa se inundaba poco a poco por la lluvia. Parece que la humedad propicia la productividad, supongo que tendré que pensar en programar en una piscina.
Edición de video, según Linux
La semana pasada me correspondía un round más con la edición de video en Linux. Era hora de darle otra oportunidad a Cinelerra, que nunca me ha funcionado, y algún otro software. Cinelerra se mantuvo firme en su empeño de no funcionar, explotando cada vez que cargaba un clip, no importa el formato. Me fui por la variante Pitivi, que está en el portage, y para variar esta sí funciona.
Pitivi es un editor de video no lineal bastante sencillo, de hecho, demasiado sencillo. Su guía es el manual de usabilidad de Gnome, y ya sabemos cómo se las gastan los de Gnome. Así que no debe sorprender que la interfaz de Pitivi sea bastante escueta y ni siquiera tenga un menú contextual en lugares tan importantes como la pista de video/audio. No obstante me las arreglé para luego de unos minutos descubrir cómo cortar un pedazo de video y supongo que para algún trabajo de poca complejidad este software sea suficiente.
Una opción que debería probar también es OpenShot, sin embargo no está en el portage.
Pitivi es un editor de video no lineal bastante sencillo, de hecho, demasiado sencillo. Su guía es el manual de usabilidad de Gnome, y ya sabemos cómo se las gastan los de Gnome. Así que no debe sorprender que la interfaz de Pitivi sea bastante escueta y ni siquiera tenga un menú contextual en lugares tan importantes como la pista de video/audio. No obstante me las arreglé para luego de unos minutos descubrir cómo cortar un pedazo de video y supongo que para algún trabajo de poca complejidad este software sea suficiente.
Una opción que debería probar también es OpenShot, sin embargo no está en el portage.
Mass Effect 2
Luego de un maratón que duró todo el día de ayer (casi todo el día, más exactamente), terminé Mass Effect 2. Hay algunos guiños curiosos al mundo de la informática que recuerdo: en tus mensajes puedes recibir spam e incluso llegué a recibir una variante de estafa. Hay un arma que no se puede duplicar porque está protegida por tecnología FRM (no les suena a DRM?) y en la base de los geth herejes, cuando ordenas a Legión que tome control de las torretas, en una de ellas el mensaje fue "Ejecutando sudo" (será que Legión usa Ubuntu?).
Y para los que aún no lo han jugado, un consejillo para que el pesado proceso de adquirir minerales no sea tan costoso. Los minerales son necesarios para las mejoras y por orden de abundancia son paladio, platino, iridio y elemento cero. El mayor error de principiante es escanear y obtener sin fijarse en la disponibilidad, que está indicada por el gráfico a la derecha. No gastes sondas si el pico de disponibilidad está por debajo de la tercera línea. Incluso, puedes darte el lujo de cosechar solo los picos altos. En mi caso, llegó a sobrarme de todo, incluso el escasísimo elemento cero. Extrae solo el mineral que necesitas, así evitas gastar en sondas. Las investigaciones se pueden encontrar en las misiones, así que no las compres hasta que hayas completado todas las misiones.
Bueno, al fin estoy libre de esta tarea, ahora solo me quedan Metro 2033, Alpha Protocol y Starcraft 2, y a finales de año Fallout: New Vegas. Un año cargadito de juegos...
Y para los que aún no lo han jugado, un consejillo para que el pesado proceso de adquirir minerales no sea tan costoso. Los minerales son necesarios para las mejoras y por orden de abundancia son paladio, platino, iridio y elemento cero. El mayor error de principiante es escanear y obtener sin fijarse en la disponibilidad, que está indicada por el gráfico a la derecha. No gastes sondas si el pico de disponibilidad está por debajo de la tercera línea. Incluso, puedes darte el lujo de cosechar solo los picos altos. En mi caso, llegó a sobrarme de todo, incluso el escasísimo elemento cero. Extrae solo el mineral que necesitas, así evitas gastar en sondas. Las investigaciones se pueden encontrar en las misiones, así que no las compres hasta que hayas completado todas las misiones.
Bueno, al fin estoy libre de esta tarea, ahora solo me quedan Metro 2033, Alpha Protocol y Starcraft 2, y a finales de año Fallout: New Vegas. Un año cargadito de juegos...
Aprendiendo de los demás: Venetica
Debo haber mencionado varias veces que me interesaba en especial probar un par de juegos comerciales hechos con Ogre: Torchlight (manténganse en sintonía, porque vienen Torchlight 2 y el ya anunciado MMO, ambos con Ogre) y Venetica. Mis experiencias con el primero fueron muy gratas. De haber vivido en otro país los desarrolladores tendrían mi dinero, sin duda alguna, porque creo que lo merecen y además merecen seguir haciendo buenos juegos.
El segundo, aunque estaba en mi poder desde hace varios meses, se había retrasado. La referencia que tenía no era muy buena, aunque venía de un jugador acostumbrado a títulos de altos vuelos. Hay que reconocer que la calidad gráfica de Venética en cuanto a modelado de personajes no es excelente, quedando incluso por debajo de Drakensang. Sin embargo sorprende por sus escenarios (y la pregunta que me asalta es: cómo rayos los hacen?) y tiene elementos como secuencias cinemáticas, etc.
Qué se puede aprender de Venetica? Pues un detalle que echo en falta es la carencia de pistas visuales sobre los objectos interactivos. No sabes si algo se puede abrir o recoger hasta que te paras junto a él. Por ejemplo, Mass Effect maneja esto muy bien, llegando al caso en ME 2 de que puedes avistar un objeto interactivo a gran distancia. El combate es bastante dinámico, pero al costo de ser un rompe-ratones: click, click, click... Los consejos sobre cómo jugar olvidan el importante detalle de que necesitas un entrenador para gastar tus puntos de habilidades. Algunas teclas de acción en la configuración pro defecto están muy cercanas, así que a menudo me encuentro abriendo el inventario en vez de sacando la espada.
Pero el juego en general no está mal y da para pasar el rato si no tienes otra cosa a mano. No tengo el precio a mano, pero definitivamente también lo pagaría. Por desgracia nunca he logrado que funcione en Wine, así que los linuxeros tendrán que buscar otra variante para probarlo.
El segundo, aunque estaba en mi poder desde hace varios meses, se había retrasado. La referencia que tenía no era muy buena, aunque venía de un jugador acostumbrado a títulos de altos vuelos. Hay que reconocer que la calidad gráfica de Venética en cuanto a modelado de personajes no es excelente, quedando incluso por debajo de Drakensang. Sin embargo sorprende por sus escenarios (y la pregunta que me asalta es: cómo rayos los hacen?) y tiene elementos como secuencias cinemáticas, etc.
Qué se puede aprender de Venetica? Pues un detalle que echo en falta es la carencia de pistas visuales sobre los objectos interactivos. No sabes si algo se puede abrir o recoger hasta que te paras junto a él. Por ejemplo, Mass Effect maneja esto muy bien, llegando al caso en ME 2 de que puedes avistar un objeto interactivo a gran distancia. El combate es bastante dinámico, pero al costo de ser un rompe-ratones: click, click, click... Los consejos sobre cómo jugar olvidan el importante detalle de que necesitas un entrenador para gastar tus puntos de habilidades. Algunas teclas de acción en la configuración pro defecto están muy cercanas, así que a menudo me encuentro abriendo el inventario en vez de sacando la espada.
Pero el juego en general no está mal y da para pasar el rato si no tienes otra cosa a mano. No tengo el precio a mano, pero definitivamente también lo pagaría. Por desgracia nunca he logrado que funcione en Wine, así que los linuxeros tendrán que buscar otra variante para probarlo.
Bullet 2.77
No logro encontrar confirmación de esto, pero un post de opengl.org menciona que esta nueva versión incluye soporte para ropas mediante OpenCL, contibución hecha por AMD (pero que funciona en tarjetas ATI y Nvidia, y también en hardware de Apple). Una jugada inteligente para serrucharle el piso a CUDA. Lo ideal sería que optimizaran también el cálculo de colisiones, o puestos a pedir, todos los cálculos posibles.
Targets Linux en CodeBlocks
Anoche dediqué un buen rato a crear los targets para Linux en Code::Blocks. Esta tarea la tenía pendiente desde hace rato, porque todo iba bien con scons. Pero al reinstalar me encontré que no podía instalar kate, mi editor favorito, debido a un raro problema: emerge me pide que cierto paquete tenga un flag activado y desactivado a la vez. No me calenté más la cabeza y decidí usar Code::Blocks.
El proyecto actualizado ya está en el SVN, así que ahora pueden usar tanto scons como Code::Blocks para compilar. Recuerden que este último no autodetecta las dependencias, así que si alguna falta o algún camino está mal puesto, hay que deducirlo al estilo Visual C: por los mensajes de error.
Además hoy inicié la integración de Caelum. Luego de ver el demo me quedé impresionado con el efecto y decidí incluirlo. Lo que no sé es cuándo lo tendré funcionando como debe ser.
El proyecto actualizado ya está en el SVN, así que ahora pueden usar tanto scons como Code::Blocks para compilar. Recuerden que este último no autodetecta las dependencias, así que si alguna falta o algún camino está mal puesto, hay que deducirlo al estilo Visual C: por los mensajes de error.
Además hoy inicié la integración de Caelum. Luego de ver el demo me quedé impresionado con el efecto y decidí incluirlo. Lo que no sé es cuándo lo tendré funcionando como debe ser.
Direct3D 10/11 en Linux
Phoronix informa que ya tenemos soporte para Direct3D 10/11 en Mesa. Un nuevo state tracker de Gallium3D ha sido enviado al repositorio, con un soporte inicial para esta API. Supongo que el mayor beneficiado será Wine, que ya no tendrá que traducir las llamadas a D3D a OpenGL. De hecho, el autor lo pone todo como si fuera la mar de sencillo y se deshace en elogios acerca de lo bien diseñada que está Direct3D. Veamos si en la vida real resulta tan trivial tener una adecuada implementación de esta API que nos permita jugar títulos como Metro 2033 o Dirt.
Postgresql 9
Han lanzado la versión 9.0 de PostgreSQL, el servidor de bases de datos relacionales libre más avanzado. Para variar, los comentarios en Barrapunto son bastante informativos y los insultos escasean, por esta vez les recomiendo su lectura si están en esto de las bases de datos. Llevo usando Postgres unos cuantos años (cuando empecé MySQL no existía) aunque no he hecho nada serio, y con serio me refiero a aplicaciones que manejen cientos de operaciones. Cuando mucho, dos o tres inserciones en un día. Así que no puedo opinar mucho al respecto, excepto que no comparto la opinión de que MySQL sea más fácil de instalar y administrar. Las veces que he tenido que hacerlo, ha sido una verdadera tortura. No considero que MySQL sea una mierda definitiva, pero si vas a empezar en esto de las bases de datos, valora Postgres primero.
Particiones ext4 en Windows 7
Uno de los detalles iniciales que me molestaba al instalar Windows 7 era el acceso a mis particiones ext4. Anteriormente usaba ext3 y ext2fsd para leer y escribir desde Windows XP. Sin embargo, una búsqueda inicial me decía que ext2fsd no funcionaba en Win 7. Pero no es así.
El gran problema de este software no es Win 7, si no algunas características de ext4 que aún no están implementadas. De hecho, ahora estoy usando la versión 0.48, que no es exactamente la última, pues luego se liberaron ligeros cambios referentes al acceso a archivos grandes, y tengo que decir que estoy complacido.
Para que funcione, solo debemos desactivar los extents, una característica de ext4 que aumenta el rendimiento, especialmente en archivos muy grandes. Lo molesto del caso es que esto debe ser hecho al formatear con el siguiente parámetro: -O ^extents. El síntoma habitual de una partición ext4 con extents es que los directorios aparecen vacíos. En ese caso, ya sabes que tienes que arreglarlo, o renunciar a usar ext2fsd hasta que se arregle este problema.
El gran problema de este software no es Win 7, si no algunas características de ext4 que aún no están implementadas. De hecho, ahora estoy usando la versión 0.48, que no es exactamente la última, pues luego se liberaron ligeros cambios referentes al acceso a archivos grandes, y tengo que decir que estoy complacido.
Para que funcione, solo debemos desactivar los extents, una característica de ext4 que aumenta el rendimiento, especialmente en archivos muy grandes. Lo molesto del caso es que esto debe ser hecho al formatear con el siguiente parámetro: -O ^extents. El síntoma habitual de una partición ext4 con extents es que los directorios aparecen vacíos. En ese caso, ya sabes que tienes que arreglarlo, o renunciar a usar ext2fsd hasta que se arregle este problema.
Integrando la física
Ya estoy en proceso de integrar la física en el juego, con vistas a la primera tech preview (que espero sea antes de diciembre). He decidido dejar las pruebas y lanzarme de lleno con OgreBullet en el proyecto, aprender sobre la marcha. Por el momento el resultado no es mucho, porque solo ha sido un día de trabajo, veré si el fin de semana las cosas mejoran. De momento, los objetos se crean en el mundo físico de Bullet y descubrí la causa de un problema raro: las cosas aparecían amontonadas en el mismo sitio. La solución es fijar la posición después de crear el objeto en Bullet.
Inicialmente la física tendrá dos funciones: colisiones y raycasting más preciso. Más adelante supongo que habrá ragdoll, objetos rodando por las pendientes y cosillas como impactos que derriben a los personajes, etc.
Los afortunados dueños de una Geforce 8000 o superior, recuerden que pueden tener detección de colisiones en Bullet aceleradas con CUDA, cosa que aún no tengo idea de cómo hacer. Los demás, a esperar por la versión OpenCL.
Inicialmente la física tendrá dos funciones: colisiones y raycasting más preciso. Más adelante supongo que habrá ragdoll, objetos rodando por las pendientes y cosillas como impactos que derriben a los personajes, etc.
Los afortunados dueños de una Geforce 8000 o superior, recuerden que pueden tener detección de colisiones en Bullet aceleradas con CUDA, cosa que aún no tengo idea de cómo hacer. Los demás, a esperar por la versión OpenCL.
Encuesta sobre gráficos en Linux
Como todos los años, Phoronix ha realizado una encuesta entre sus lectores sobre los gráficos en Linux. Los resultados son interesantes en algunos aspectos, por ejemplo Nvidia y ATI van muy parejas en cuanto a cuota de usuarios, con ligera ventaja para la primera. Otro detalle significativo es que mientras los usuarios de Nvidia en su mayoría usan el driver propietario, excepto un 5% que usa Nouveau, casi la mitad de los de ATI usan el driver libre (en este caso, la mitad más grande).
Las resoluciones más comunes son entre 1280x1024 hasta 2560x1600 (sin incluir esta última), algo a tener en cuenta al diseñar la distribución de elementos en la pantalla y valorar el rendimiento. Así que 1200 parece ser la nueva resolución mínima, en estos tiempos de monitores LCD >20 pulgadas (y yo aún con un trasto CRT de 17, qué vergüenza). Sin embargo, los usuarios de Linux parecen estar más interesados en usar estas resoluciones altísimas para ver películas que para jugar a esos clásicos de toda la vida, como Rogue o NetHack.
Los resultados definitivos se publicarán en Octubre.
Las resoluciones más comunes son entre 1280x1024 hasta 2560x1600 (sin incluir esta última), algo a tener en cuenta al diseñar la distribución de elementos en la pantalla y valorar el rendimiento. Así que 1200 parece ser la nueva resolución mínima, en estos tiempos de monitores LCD >20 pulgadas (y yo aún con un trasto CRT de 17, qué vergüenza). Sin embargo, los usuarios de Linux parecen estar más interesados en usar estas resoluciones altísimas para ver películas que para jugar a esos clásicos de toda la vida, como Rogue o NetHack.
Los resultados definitivos se publicarán en Octubre.
De terrenos y sonidos
Hoy he dedicado el día a implementar el splatting en el terreno. Splatting es la técnica que permite usar una imagen RGBA como mapa de mezclado para aplicar una o varias texturas sobre una superficie. El nuevo sistema de terrenos de Ogre permite hacerlo sin necesidad de acudir a shaders externos, como antes. Sin embargo, esto no es tan trivial como debería, ni está documentado tan claramente como debería. De hecho, pienso que las nuevas funcionalidades ameritan dos demos separados, uno para las posibilidades de manejo de los materiales, como el splatting y otro para la modificación del terreno.Por el momento la base está implementada, falta lograr que funcione correctamente.
Lo otro que trabajé fue el sistema de sonido, abandonado desde el inicio del proyecto. El sistema de sonido usa OpenAL para la reproducción de audio posicional y ogg-vorbis para los archivos de sonido. Esta fue una idea que nunca llevé muy lejos y requiere un estudio y rediseño a fondo.
Lo otro que trabajé fue el sistema de sonido, abandonado desde el inicio del proyecto. El sistema de sonido usa OpenAL para la reproducción de audio posicional y ogg-vorbis para los archivos de sonido. Esta fue una idea que nunca llevé muy lejos y requiere un estudio y rediseño a fondo.
Suscribirse a:
Entradas (Atom)