Ir al contenido principal

Entradas

Mostrando entradas de 2010

Un día con Blendelf

Al final, los de Unigine me han denegado el kit de evaluación. Según la respuesta, solo es para estudios trabajando en proyectos medianos o grandes. No me cabe duda que están haciendo un excelente trabajo con este producto y se han ganado el aprecio de la comunidad (el mío incluido), pero están perdiendo la oportunidad de insertarse desde abajo en la cadena de producción. En fin, no seré yo quien les diga cómo llevar sus negocios.
De momento las vacaciones me han permitido dedicar un tiempo de trabajo serio a Blendelf. Este motor promete mucho y es muy sencillo, además de que incluye su propio editor de escenas, que corre en Window y Linux. Eso sí, un poco primitivo, pero no podemos pedir más de un proyecto aún en pañales. Con ayuda de Blender y el editor, pude tener un demo corriendo en cuestión de minutos. Lamentablemente compilarlo en Linux es toda una odisea, que no logré llevar a buen término. Si a alguien le sobran algunos eurillos, estría bien que donasen para apoyar el desarro…

Sitios de interés

Si andas perdido por la y estas buscando un poco de entreteniminto con lo mejor del cine y las series no cabe duda que el sitio que buscas se llama cinefilosonline.com. Si no estas satifechos y sientes ganas de llevar una vida saludable y cuidas tu salud para ti es el sitio yovivosaludable.com, encontrarás recetas y tips para que te sientes siempre bien. Finalmente para que sacies tu apetito por completo el mundo de losautos  te espera junto con información  turística,  el sitio ideal para ti es autosyturismo.com no te lo puedes perder encontrarás todo tipo de autos y las mejores recomendaciones para que viajes por el mundo.

Feliz Navidad

No tengo mucho hábito de celebrar navidad por una cuestión de educación, así que  siempre lo olvido, pero bueno, no voy a dejar pasar el día sin felicitarlos. Les deseo a todos una feliz navidad, que tengan una cena con un pavo de 8 kilos, y si les sobra algo, recuerden que por acá tenemos desarrolladores de juegos que también necesitan comer pavo de vez en cuando (y justamente, cuándo, es lo que me pregunto)!
De paso, puedo decirles que el proyecto sigue vivo y en desarrollo activo. Esto de trabajar en equipo tiene sus ventajas (aparte de poder culpar a los demás) y una de ellas es que aparecen ideas y se descubren problemas mucho más rápido. Hemos decidido cambiar el sistema de dos vistas a uno de cámara libre y en la próxima semana se debe iniciar el trabajo en el sistema de sonido.
Se mantienen los planes de sacar un tech preview muy pronto, pero no tenemos fecha fija. Los cambios en el código han sido importantes y se han reestructurado algunas cosas, lo cual ha traído nuevos bu…

HD rocks

Ayer un amigo me facilitó una copia con buena calidad de Piratas del Caribe 3. Es una versión aparentemente ripiada de un bluray, a 720p, que le va de maravillas a mi pantalla nueva. Y resulta increíble la definición de imagen que hemos alcanzado, aunque usualmente veo anime en HD, incluso con mayor resolución (sobre los 1900), no había visto una imagen real y la perfección de detalles que ahora podemos disfrutar. Casi que podemos contar los pelos de la barba de los piratas.
Todo esto viene aun precio, claro. Acá en la oficina ni siquiera vdpau es suficiente para mover el video sin cortes, he tenido que acudir al framedrop para mantener la sincronía audio/video. Me pregunto cómo será verlo a 1080p. O como será verlo a 1080p en 3D. Para caerse de culo, supongo.

colocando un nodo frente a tu entidad

Ayer estuve trabajando en el sistema de proyectiles, que usa el sistema de partículas de Ogre, así que hoy les traigo un truco muy sencillo: cómo determinar las coordenadas de un punto frente a un nodo. Los SceneNode tienen una función getOrientation(), que devuelve un Quaternion. Teniendo en cuenta que mis modelos están orientados hacia el eje +Z, la fórmula queda así:

Vector3 punto = Node->getOrientation() * Vector3(0, 0, distancia) + Node->getPosition();

O sea, obtenemos la orientación y la multiplicamos por un vector distancia (en este caso uso Z para la distancia) y el resultado lo sumamos a la posición actual del nodo.

Dos monitores

Hace unos pocos días recibí mi nuevo LCD de 20", gracias a las gestiones de un amigo, que me lo consiguió en la capital a mejor precio (no obstante, aún tengo deudas por pagar). Como aún no he vendido el viejo CRT, me animé a probar cómo se siente tener dos monitores a la vez. Por le momento no logro que funcione en Linux igual que en Windows: una pantalla principal y otra que es como una extensión. El 7 maneja esto de una forma muy inteligente: en mi pantalla auxiliar puedo poner, digamos, un video, aunque el Classic Mediaplayer del Klite se colgó un par de veces con un video mientras lo arrastraba hacia mi extensión del escritorio. También, mientras juego, los gadgets son enviados hacia esta extensión, así que puedo vigilar la temperatura del disco duro o la tarjeta con el gadget del Everest (muy cómodo!). Basta con arrastrar hacia la derecha las cosas que quieres poner allí y ya está. Al principio uno pierde un poco el sentido de la posición del mouse, porque hay que traerlo d…

Salvas, cargas y rayos mediante Ogrebullet

Un título raro, pero describe más o menos los últimos cambios en el proyecto. Durante el fin de semana Steffen concluyó el proceso de salvar y cargar juegos. el formato ahora es binario, no XML y estará comprimido. Yo no tuve tiempo para trabajar, así que solo pude hacer algunas pruebas sencillas con la selección basada en rayos de OgreBullet. En verdad, algo muy sencillo de hacer, aunque aún me da problemas con la intersección en el terreno. OgreBullet es más o menos una caja negra para mí, así que encontrar la razón de la divergencia entre el resultado de los rayos según Ogre y el de los rayos según Bullet puede tomarme algo de tiempo.

Qué semana!

Semana de lujo para los jugadores. Les traje el trailer de Mass Effect 3 y alguna que otra noticia relacionada con juegos, Unigine y Linux (y los que me sigan en twitter habrán visto el enlace al review del demo de Diablo 3). Pero las cosas no acaban ahí. Para acabar la semana por todo lo alto al fin Blizzard confirma oficialmente Titan, su próximo MMO. No hay más datos por el momento, excepto que se espera para el 2014, según un plan de ventas filtrado hace un tiempo, y que no se basará en ninguna de las actuales franquicias de la compañía. El plan de ventas también revela que Diablo 3 será una trilogía, como Starcraft 2. Venga, que eso de ordeñar a los jugones hasta que no den más (y esto es una metáfora, siempre dan más) mediante DLCs y similares se está poniendo de moda. Qué puedo decir, a todos nos gusta el dinero fácil.
Otros que van con calma pero aplastantes son los de Bethesda. Después de embolsillarse 300 millones (un menudito, vaya) por prestarle a Obsidian el framework de …

Cambios en la salva de juegos

Oficialmente tenemos nuevo miembro en el equipo de desarrollo: Steffen, que está dándole un repaso al sistema de salva de juegos. Ahora las salvas están comprimidas y es posible que pronto estén en formato binario también en vez de XML. Durante el proceso hemos encontrado una serie de problemas que por suerte se han solucionado, como por ejemplo que los nodos no se estaban destruyendo correctamente. Luego les posteo el código aquí para que lo tengan de referencia. Ahora estamos en proceso de definir todo lo que debe ser guardado para cada entidad, que es mucho (inventario, habilidades, etc). Después de todo no ha sido tan negativo retrasar el tech preview.

Grandes noticias

Para empezar, Bioware anuncia oficialmente Mass Effect 3. La página parece ser un video, digo parece porque llevo varios minutos esperando  que muestre algo. Bueno, esto no es nada nuevo, ya sabíamos que Mass Effect va a ser una trilogía y no sé si les recomendé que guardasen sus salvas, porque la trama de ME 3 va a depender de decisiones que hayamos tomado en ME 2. Pero mejor visitan el sitio y me cuentan.
Por otro lado, los resultados del concurso de Unigine aún no se han dado. Me tomé la molestia de venir el sábado expresamente a verlos, pero nada. Y la razón es de peso y además, trae más buenas noticias: las propuestas iniciales, que eran 10, crecieron a última hora. Eso no es todo, según el CEO de Unigine Corp, han decidido regalar tres licencias, no una como estaba previsto. También reveló que uno de los clientes de Unigine está interesado en asociarse con el equipo ganador para la realización del proyecto. Una excelente movida en la que todos salimos ganando si los tres proyect…

Caelum

Ayer hice un intento más serio de integrar Caelum en el proyecto. Los resultados que se pueden lograr con este add-on son bastante agradables a la vista: cielo, ciclo noche/día, niebla, precipitaciones, todo eso basado en shaders. Sin embargo las cosas no me fueron muy bien. El sol no queda donde debe y por alguna razón parece estar utilizando dos luces, lo que acaba con el rendimiento, porque cada objeto proyecta dos sombras. Eso, añadido a que la posición incorrecta de la fuente de luz estira las sombras, una receta infalible para acabar con la tarjeta más potente. Si no recuerdo mal, Ogre no maneja bien las sombras en estos casos o algo así.
Así que de momento veo dos desventajas: Caelum es demasiado detallado y ya no está en desarrollo. Si quieres algo sencillo, como un ciclo noche/día, lluvias y cielo realista, casi es mejor hacerlo uno mismo. Caelum se mete en detalles tales como la latitud y longitud del observador, día exacto del calendario, hace uso intensivo de shaders, etc.…

Editando videos con PiTiVi

Hace un tiempo mencioné que andaba en busca de un editor de video para Linux. De las opciones disponibles, solo hay dos en el portage: Cinelerra y Pitivi. El primero es prácticamente imposible de usar, a menos que tengas la paciencia de probar todas las posibles variantes y descubrir los caminos que te llevan a explotar la aplicación. Es algo así como jugar al buscaminas con secuencias de video y operaciones. Pitivi al menos te permite cortar y ensamblar pedazos, tal vez no de la forma más cómoda y rápida, pero al menos no explota. El caso es que acabo de descubrir que aparte de eso, no sirve para más nada. Como lo oyen.
El paso final de toda edición es generar un video con el resultado de tus largas horas de trabajo. Y aquí es donde Pitivi falla miserablemente. Ayer dediqué más de una hora a grabar diferentes secuencias de video, hacer un picadillo con ellas y armar una especie de gameplay trailer para subirlo hoy a youtube y al final descubrí que el renderizado final era una caca. …

Propuestas al concurso de Unigine

Phoronix ya tiene detalles acerca de las diez propuestas al concurso de Unigine. No es que sean muchos, pero al menos sabemos que entre ellas están un MMORPG, un arcade y un FPS. Las demás no han especificado género. Lo cual ha suscitado (no es de extrañar) enconadas discusiones en el foro. Es la naturaleza humana tratar de arrimar su sardina a la brasa y los demás que coman sashimi, así que unos quieren un FPS original, otros un buen MMO, otros un RPG al estilo Morrowind. Sí, tengo que admitir que yo me inclino por la última opción (y si analizamos el hilo en el foro, hay casi tantos pedidos de RPG en sus diversas variantes como de FPS innovativos).
Algo que debemos tener en cuenta es que el equipo ganador se enfrenta a la tarea de producir un juego comercial que les reporte algún ingreso. Tampoco espero que cuenten con un financiamiento abundante. Por ello no deberíamos esperar productos excesivamente innovativos o complejos. De estar en su lugar no me arriesgaría con nada que se p…

Distribuciones rolling release

Hace unos días circuló la noticia de que Ubuntu podría dejar el esquema de versiones para pasar a uno de actualización continua. Para los que no estén familiarizados con la idea, que es similar a la de Gentoo (y otras), las versiones desaparecen y las actualizaciones grandes, como un kernel superior, otra versión de X, etc, se van integrando de forma continua en los repos sin necesidad de esperar por un ciclo de versiones. Gentoo maneja dentro del portage dos ramas: una con los paquetes estables y otra con paquetes inestables, los llamados enmascarados. Las "versiones" de Gentoo se refieren al instalador, no a la distribución en sí, ya que todo lo demás puede actualizarse y personalizarse a gusto.
El caso es que Gentoo no está manejando esto de una forma muy óptima o precisa y en otras ocasiones me he quejado de las abundantes inconsistencias. Justo ahora los controladores de Nvidia que necesito están aún enmascarados y además, afectados por un inexplicable bloqueo debido a …

El mar de los scripts

Un detalle que me he encontrado al avanzar en la implementación de la IA mediante scripts es lograr que las acciones se desarrollen a una velocidad más humana. El problema de los scripts es que para cada entidad se ejecutan varias veces por segundo. Si tienes cuatro entidades envueltas en un combate, sucede que cada una puede encolar un montón de acciones de ataque en un segundo o dos o tomar decisiones sobre entidades que en la próxima iteración estarán ya muertas. Me vi obligado a limitar un poco esto, ahora las entidades mantienen solo una acción en la cola. Sin embargo, a pesar de los chequeos que he introducido, esto se parece mucho a la programación multihilo y hay riesgos de que las acciones se ejecuten sobre entidades inválidas. Me parece que tendré que implementar algún tipo de "recolector de basura", que no deseche las entidades muertas hasta algunos segundos después de su muerte.
Esto de la IA ha resultado ser un desafío bastante interesante y al que me gustaría d…

Tech preview retrasado

Engel me señaló algunos problemas en el código actual, que impiden sacar una versión de prueba en este momento. Aunque la idea no es que el proyecto sea jugable, eso no quiere decir que sea por completo inútil. En general los últimos cambios que he hecho en la parte de inteligencia artificial de los personajes han complicado un poco la cosa. Al mismo tiempo, es más lento probar y depurar, porque hay que realizar más acciones para llegar a la misión en cuestión. Me parece que es esencial terminar la salva y carga de juegos.
En este momento estoy trabajando para lograr que la misión inicial funcione correctamente y que la batalla no sea un simple desfile. Eso implica retocar la velocidad con que ocurren las acciones e implementar algo que sirva como pista visual. A pesar de los problemas, estoy alcanzando mi objetivo: un combate a gran escala con decenas de unidades de diferentes tipos en la cual el jugador es un mero participante más (de hecho, puedes escurrir el bulto y dejar que los …

Ponencia no aceptada

Al parecer, el trabajo que presenté para el evento Informática 2011 no será aceptado. Hace unos días me enviaron un correo explicando que había detalles ciertos detalles en la ponencia que no eran de su agrado, a saber: lenguaje poco científico, falta de citas y bibliografía serias y carecer de gráficos o imágenes.
Si por lenguaje científico se entiende salpicar el trabajo con fórmulas esotéricas en letra pequeñita (tampoco es que letra más grande ayude a entenderlas) y términos fuera del alcance de los meros mortales, pues estoy muy jodido porque es algo que no puedo ni pienso hacer. Lo más que podría, por complacer al comité organizador, sería introducir algunas referencias a deferred shading, SSAO o PSSM, deliberadamente ofuscadas en medio de un párrafo acerca de las ventajas de FSAA en el tratamiento de las enfermedades venéreas (no hay infección que se resista a un buen FSAA).
En cuanto a citas y bibliografía, pues parece que en este mundo académico no caminas si no es en base a…

El tech preview está cerca

Tenía en planes lanzar hoy la tech preview que tenía prometida, pero descubrí algunas inconsistencias entre los scripts que tengo aquí y los de la otra. Desventajas de no tener internet en casa, me es muy difícil mantener sincronizado el código. No obstante hoy por la noche pienso ultimar todos los detalles. Esta prueba técnica espero que me sirva para ver si el proyecto sobrevive el choque con sistemas diferentes al mío, la idea no es que sirva para jugar, ni siquiera para dar una idea del juego como tal. Esto es muy difícil de conseguir ofreciendo solo el SVN, hay que lanzar una pequeña versión alfa y facilitar su instalación para atraer una base de usuarios un poco más amplia. Aunque lo más probable es que dichos usuarios instalen, ejecuten y no prueben el proyecto más de un minuto, al menos algunos de ellos podrán reportar algo de utilidad como hardware compatible, errores, etc.

Unigine ofrece una licencia gratis

Con el objetivo de apoyar el desarrollo de juegos para Linux, Unigine Corp ha hecho un anuncio sorprendente hoy: darán una licencia gratis de su motor Unigine a un equipo experimentado. Las condiciones para participar en el concurso, que cierra el 10 de diciembre, son las siguientes:
El equipo debe haber terminado un juego, o tener uno en desarrollo.Los miembros deben tener experiencia con desarrollo en Linux.Debe estar listo para acometer el desarrollo de un juego 3D nativo para Linux.El ganador obtendrá una licencia gratis con acceso al motor binario y actualizaciones y soporte completo, válida para un proyecto en PC. El segundo y tercer lugar conseguirán grandes descuentos.

El caso Drupal

Desde que decidí usar un CMS, me decanté por Drupal. EL Joomla no me hizo ninguna gracia, en especial después de que algunos en la oficina decidieran usarlo sin contar conmigo, obligándome a instalar MySQL, cuando todos los servicios que teníamos usaban PostgreSQL.
Había notado un problema raro con la versión 6 en los dos sitios que tenemos: los cambios no eran visibles para los usuarios anónimos. He preguntado un par de veces en los foros pero sin éxito alguno. Pero ayer estuve pensando si no sería un problema con el cacheo. Drupal puede aumentar el rendimiento manteniendo un cache de las páginas que se sirven a los usuarios anónimos y eso incluye los bloques, no solo las historias. Y efectivamente, apenas desactivé el caché, todos los cambios que antes no eran visibles ahora sí lo son.

Nuevo Catalyst

AMD ha lanzado otra versión de su driver Catalyst, la 10.11. El hilo en el foro de Phoronix es decepcionante. Nada nuevo y la descarga es de 120Mb. Por el momento nada de aceleración de video, que ya está disponible en Nvidia desde hace tiempo y no sé acerca del soporte para la teselación. Incluso la versión para Windows no integra hotfixes que se liberaron para el 10.10.
Siempre he sido un usuario de ATI por el apoyo que dan al software libre y porque sus modelos de bajo precio ofrecían una mejor relación costo/beneficio. Esto último parece haber cambiado con la salida de la 450. Y en cuanto a funcionalidades... me estoy preguntando si vale la pena seguir comprando tarjetas AMD de la gama baja.

IA y percepción del entorno

En estos días estoy trabajando por mejorar la percepción del entorno de los NPC en el juego. La idea es que las entidades "analicen" sus alrededores y reaccionen como debe ser. Para ello he estado creando algunas funciones auxiliares que le permiten a los scripts de IA obtener la lista de miembros del grupo o de las entidades cercanas. En caso de que una entidad cercana pertenezca a una facción opuesta (más exactamente, a la facción opuesta, pues solo hay dos), pues la atacará, o quizás en un futuro evaluará si tiene alguna posibilidad de ganar comparando el nivel, estadísticas, ventaja numérica.
Por el momento la lista de vecinos es muy burda, pues coge todo en un área. Lo ideal es calcular solo los que realmente son visibles, o sea, que están frente a la unidad. Las unidades fuera del área visible llevarían otro proceso, que implica simular sentidos como la vista o el olfato y chequeos entre habilidades, como Percepción vs Sigilo. Hay que valorar modificadores como invisib…

Syndicates of Arkon

Buenas noticias para los que usan Linux exclusivamente: hay un MMORPG 3D gratis que podemos jugar: Syndicates of Arkon. Este juego online de ciencia ficción es gratis (al menos por el momento) y aunque no tiene cliente nativo para Linux, funciona perfectamente bajo Wine.
Muy poco puedo decir, pues lo he probado apenas una hora. Nada innovativo, más bien dentro de la línea que uno espera de un MMORPG y que funciona. Además cuenta con algunas misiones iniciales que ayudan a familiarizarse con la mecánica de juego. El apartado gráfico es decepcionante, eso sí. Los escenarios parecen sacados del Quake 2 y el único modelo que se ve bien trabajado es el del personaje. En verdad, no le hacen justicia en lo absoluto a Unigine, el motor que utilizan. No puedo hablar acerca del rendimiento, porque tendría que probarlo en Windows, pero al menos es jugable con el renderer OpenGL en Wine (no he probado si el D3D9 funciona).
Una buena opción, si estás aburrido de Regnum Online, Planeshift y Eterna…

Otro que se va

Si antes les comentaba que Gamebryo estaba en problemas, hoy les traigo otra mala noticia: InstantAction está a la venta y con ella Torque, el motor indie más popular y antiguo. Hasta que aparezca un comprador, el destino de Torque es incierto. De desaparecer, veo muy probable que su base de usuarios se vuelva hacia Unity3D, que es lo más parecido que me viene a la mente ahora.

Gamebryo se muere

Pues sí. Los activos y propiedades intelectuales de Emergent Technologies están en subasta. El motor que hizo furor cuando se lanzó Oblivion ahora es un software obsoleto que ha sido el "dedo malo" en Fallout: New Vegas. Y si no lo creen, lean las opiniones: el tema más común son los gráficos acartonados y las pésimas animaciones. Que digo yo, no son nada nuevo, ya venían desde Fallout 3.
En un mundo gobernado por Unreal 3, poco tenía que hacer Gamebryo, con unos escasos títulos de renombre. Aunque se mencionan 350 títulos, alguien recuerda alguno? Aparte de Oblivion, Fallout, Warhammer Online, Civilization y Divinity II?
Al parecer, Emergent está pagando por la mala decisión de los inversionistas de recortar la mitad del equipo de ingenieros.
Una lástima, pero así es el mundo de los juegos.

Tablas en Lua

Andaba en busca de una solución para pasar listas de nombres a los scripts en Lua y la misma era estúpidamente sencilla: tablas. Las tablas en Lua son muy versátiles, se comportan como un arreglo clásico, o como un stl::map. O sea, que puedes referirte a un elemento así: Tabla["llave"]=valor.
Desde C, creas y asignas valores así:

//a continuacion creamos una tabla que simula un arreglo de cadenas
lua_newtable(luaVM);
lua_pushnumber(luaVM, 1);    //indice
lua_pushstring(luaVM, "Valor 1");  //valor
lua_settable(luaVM, -3);
****
lua_setglobal(luaVM, "tabla");  //definimos el nombre de la tabla

Sencillo, no les parece? Acceder la lista desde Lua es fácil:

for k,v in ipairs(tabla) do print(k,v) end

En este caso usamos  ipairs porque queremos los índices. Si quisiéramos las llaves en el caso de un diccionario, que es ocmo se llaman las tablas tipo map, usaríamos pairs.

No todo está perdido

Después de todo, no soy un vago incorregible. Como no puedo jugar Fallout en la oficina (no es que no lo haya intentado, pero Wine no lo soporta aún), estoy trabajando en un nuevo mapa para el juego: el distrito comercial. Esta es una sección del Castillo Calesoni de clase alta, con viviendas y comercios. Un poco monótono porque solo tengo una casa, pero la idea es tener un escenario relativamente denso en edificaciones y objetos. La sección de la puerta sur es más bien de espacios vacíos con una llanura fuera de las murallas, un lugar excelente para las primeras batallas del personaje. Más que una batalla, en el primer envite el propósito es evitar que los asaltantes te despachen, así que ya tienen el primer tip: no se hagan los héroes y dejen que la guardia del castillo se encargue. En definitiva, para eso les pagan.

Fallout, Fallout does changes

Si la guerra nunca cambia, los juegos sí. New Vegas está en algún lugar entre Fallout 2 y Fallout 3, más cerca de este último y más lejos de ser un clásico, aunque no dejo de reconocer que es un gran juego que a ratos logra hacer sentir que estás jugando Fallout. El mundo tan amplio, la multitud de misiones y facciones, un sistema de munición (que aún no entiendo), esas situaciones donde descubres la pista que necesitas conversando con un personaje que se te había pasado escondido detrás de unas cajas...
Como ya dije, hay mucho lastre que viene de Fallout 3. Por ejemplo, no poder viajar a una ubicación si no llegas caminando primero. Para qué tenemos entonces un mapa? Esto alarga innecesariamente el tiempo de juego, que de por sí es largo, porque New Vegas tiene mucho más contenido que el 3. Y cuando digo mucho más, quiero decir realmente MUCHO más. Luego de un fin de semana con casi diez horas de juego, aún no consigo una armadura avanzada y hay todo tipo de cosas por ahí que me pate…

Donde me inicio como probador

Ayer recibí una Geforce GTS450. Lamentablemente el presupuesto no alcanza para la 460, si quiero también cambiar mi viejo monitor que ya está pidiendo relevo. Así  que dediqué parte de la noche a la aburrida tarea de hacer pruebas con las dos tarjetas y aquí están los resultados del match HD5770 vs GTS450.
Para empezar, los reviews oficiales son un poco contradictorios. Algunos sitúan a la 450 un poco por debajo, en otros se va por encima por dos o tres cuadros. La precisión de mis resultados no es la mejor, pero supongo que algo es algo. El sistema de pruebas es más bien modesto: Windows 7 y Gentoo Linux 2010, CPU E8400 a 3.0Ghz y 2Gb de RAM. Utilizé Fallout: New Vegas, Starcraft 2 y Unigine Heaven, que resultó ser una excelente herramienta de benchmarking.
Empecemos por los juegos. Fallout New Vegas da un promedio de 56.7 cuadros por segundo, con todo al máximo en la HD5770. En la GTS450 da 63.6. Para Starcraft 2, el promedio con la tarjeta ATI es 63.6 y con la Geforce 83.0. Una dif…

Ogre 1.7.2 (y Fallout: New Vegas)

Ha sido lanzada la versión 1.7.2, con lo usual: una tonelada de pequeños arreglos. Hace bastante tiempo (seis meses) desde la versión anterior, lo que me hace pensar que tal vez tengamos una más, antes de meternos de lleno en la rama 1.8.
En cuanto a Fallout: NV, ya lo tengo. Es poco lo que puedo decir aún, con apenas cuatro horas de juego, que apenas son la introducción al juego. Por suerte recibí el parche, así que no he tenido que lidiar con bugs aún. Después de la decepción con Alpha Protocol, tengo que decir que Obsidian ha recuperado algunos puntos conmigo.
Para empezar, han tenido que trabajar dentro de las restricciones que les imponía usar Fallout 3 como base. Sin embargo han mejorado esa base, construyendo algo que parece más Fallout. Porque como deben saber, Fallout no es solo un nombre, es un universo, un modo de hacer juegos. Y la franquicia debió ir en primer lugar a quienes podían hacerla bien en verdad: Troika u Obsidian. Pero bueno, Bethesda ganó y las cosas fueron co…

De vuelta al trabajo

No, aún no regreso de las vacaciones. Pero sí, al fin, reinicié el trabajo en el proyecto, que tenía abandonado. Encontré la causa de un pequeño fallo en el ajuste de los objetos al personaje y tuve que buscar una solución al problema que me hizo dejar de trabajar hace 15 días. El caso es que no lograba que las entidades se creasen dinámicamente desde los scripts, ocurrían toda clase de fallos que ni siquiera podía depurar. Al parecer, hay alguna operación indebida con Ogre.
Tuve que replantearme la forma de incluir nuevas entidades, ahora se crean con el mapa, pero se desactivan hasta que son necesarias. No obstante esto también reveló nuevos bugs en el código: al cambiar de posición una entidad ésta ya no recibe más actualizaciones de animación (y posiblemente de ningún tipo).
Por suerte, no todo son malas noticias. He incluido algunos objetos nuevos, con los desplazamientos ajustados, aunque aún lejos de ser perfectos.
Y hablando de otras cosas, échenle un vistazo a las nuevas tarj…

Alpha Protocol, al fin

He logrado conseguir este juego a tiempo para dedicarle mis horas muertas de vacaciones. Mi impresión acerca de él? Decepcionante. AP no es un juego excepcional. Ni siquiera sé si calificarlo de buen juego y tampoco creoq ue lo termine. Da la idea de ser un FPS con algunos elementos de RPG tan insignificantes que los olvidamos por el camino.
Este juego desaprovecha una idea muy buena: un RPG de espionaje moderno. Los diálogos son pésimos y poco intuitivos, mucho menos aún que los de Mass Effect. El caos es que cada opción es una única palabra en vez de una frase: Colérico, Profesional, Cortés. Colérico con quién? Qué coño significa profesional? Así que acabas evitando las opciones raras para evitar perder puntos con los NPC. El subtitulaje de los diálogos se muestra en una sección muy estrecha de la pantalla y en una sola línea, lo que te obliga a leerlos a pedacitos y muy rápido.
Pero ahí no acaba todo. Te gustan los minijuegos? Pues a mí no. Y AP tiene tres de ellos! Uno para abrir …

Vacaciones

Notarán la falta de actualizaciones en estos días, el problema es que estoy de vacaciones por dos semanas. Vacaciones que lamentablemente están acompañadas de un terrible estreñimiento mental, así que nada he avanzado en el proyecto. Mi único trabajo creativo ha sido  en la novela casi terminada y algunas líneas en otros relatos.
Estaré de vuelta pronto, con actualizaciones (al menos, eso espero).

Desisto

Definitivamente, estos tíos de Regnum Online no quieren ganarse el dinero. Ayer hice una solicitud de cambio de país, aclarando que era para poder realizar pagos por SMS (tengo un amigo en Argentina que gentilmente se ofreció a enviar un par de SMS). La respuesta fue: el país de la cuenta es el correcto, por tanto no procede el cambio. Genial.
Por tanto, desisto de intentar pagarles, porque obviamente no les interesa cobrarme. Centavos más o menos no hacen ninguna diferencia, parece ser la política de NGD.

Se acaba Bleach?

Atención! Spoilers a continuación! En NU anunciaban el capítulo 423 del manga como el final, o eso me pareció entender, pero parece que solo se trata de un receso de dos semanas.
Con Ichigo sin poderes y Aizen derrotado, no veo qué nuevo giro le dará Kubo Tite a la historia para continuarla. A alguien se le ocurre algo? Quién es el perro que anda rondando a Yammy?

Inicialización manual de Ogre

Un detalle que se me venía escapando casi desde los inicios del proyecto es la inicialización manual de Ogre, para evitar el diálogo de configuración al inicio cada vez que se desee reconfigurar la aplicación. El proceso está documentado en el libro de Ogre (el único libro, por el momento). Normalmente el error era algo relacionado con una arreglo fuera de límites. Ayer hice otro intento más y esta vez sí funcionó.
No logré cargar los plugins, sin embargo esto es un problema mínimo pues es un archivo que no cambia y no debe ser tocado por el usuario, al igual que el de recursos. Por tanto, la inicialización manual incluye solo el establecimiento de la resolución de video, el modo pantalla completa/ventana y otras opciones relacionadas con los gráficos. Estas opciones se guardan en el perfil del jugador, así que pueden ser específicas de cada usuario. El código quedaría así:

//inicializamos Root, pero solo cargando los plugins
root = new Root("plugins.cfg");
//buscamos los rend…

Avances del fin de semana

Starcraft 2 completado (aunque no tiene nada que ver con el proyecto).
El sistema de triggers casi funciona. Los triggers son eventos del escenario, el diseño aún es muy primitivo y burdo, pero nadie se ha presentado para mejorarlo. Existen tres: de área-mapa, que se ejecuta al alcanzar un punto de transición a otro mapa y funciona, de tipo área, que se ejecuta la alcanzar un área determinada y lanza un script, que funciona, pero aún tiene errores y por último, de click, que se ejecuta al clickear en algún lugar, aún sin probar ni implementar completamente. Existe un trigger más que es cuando el mapa termina de cargarse, que funciona bastante bien.
La definición de los ítems ya incluye el bone a donde se adjuntan y el desplazamiento. Ya se puede equipar un ítem desde el inventario, y cuando digo equipar, quiero decir que el objeto es visible en el personaje. El tiempo no me ha alcanzado para trabajar en el sistema de propiedades y que los objetos influyan en los atributos del personaj…

Items

De vuelta a Windows

Ayer logré ejecutar otra vez la versión para Windows compilada con VC Express 2008. Había un pequeño detalle que Engel logró solucionar en un segundo: una dependencia que pedía un DLL de VC 2010. Hoy debo probar la creación del instalador a ver cómo funciona y luego llevar el msi resultante a algún lugar para completar la prueba. Ya tengo el voluntario para esta fase final (aunque aún él no lo sabe).
En otro orden de cosas, les recuerdo que el 22 sale a la venta Fallout: New Vegas, para los afortunados que puedan pagarlo y llevarse a casa la caja original. Resulta un poco extraño, después de tantos años, tener un par de títulos en tan corto tiempo. Casi que parece... antinatural. No he tenido tiempo de leerme todos los previews y descargar los videos del gameplay, pero algo me dice (será que estoy oyendo voces?) que este será mucho más grande que Fallout 3 y más fiel a la idea original. No es que Fallout 3 fuera un mal juego, pero no se sentía como Fallout de verdad y en cuanto a cont…

Sintel y otras cosas

Supongo que a estas alturas ya habrán visto Sintel. Se me hizo algo corta y el final un poco tristón y confuso. Supongo que el intervalo de tiempo del viaje no está bien representado y se nos escapa que es un lapso prolongado. En el apartado técnico es poco lo que puedo decir. Se ve bastante bien, con algunos señalamientos. En Youtube ha alcanzado el millón de visitas, lo cual no es poco y habría que ver los comentarios. En fin, lo importante es que Blender ha mejorado. Existe una iniciativa para hacer un juego, a ver cuándo lo terminan.
Tengo que corregir un detalle del post anterior: donde dije que no había forma de aplicar la rotación estaba equivocado: es posible pasar la rotación en forma de Ogre::Quaternion. Lo cual no  es muy cómodo, al menos para mí.
y para terminar, les aviso que Fallout: New Vegas ya es gold, o sea, ha ido a impresión para ser distribuido.

Resumen del fin de semana

Al final, me olvidé llevarme a casa el fuente de Caelum. No obstante, hice algunas pruebas preliminares que no funcionaron. Al parecer, usar Caelum no es tan fácil como nos hace creer el wiki. Para empezar, el código no funciona y hay que dar varias vueltas por los .h hasta encontrar la forma correcta. El wiki tampoco documenta cómo manejar el ciclo /día/noche, así que hacen falta los demos.  El resultado fue un cielo negro y más feo que el de Hueco Mundo.
A falta de Caelum, hice algunas pruebas de adjuntar objetos y esta vez el resultado fue mejor. Aprendí varias cosas: el objeto puede ser creado usando la rejilla guía de Blender, no es necesario ajustarlo al modelo del personaje. De todas formas, no te librarás de tener que buscar el desplazamiento (offset) adecuado. Como no es posible asignarle una rotación al objeto (o al menos yo no encuentro la forma), tendrás que buscar la rotación adecuada por ensayo y error. Por ejemplo, el casco y la armadura que adjunté tuvieron que ser inc…

Otra imagen

El splatting de terreno en acción:
Además he activado en Sourceforge las donaciones, así que los que quieran expresar su apoyo pueden hacerlo (y este es el momento justo, porque recibiré el dinero que tengo en PayPal relativamente pronto). De hecho, ya he recibido la primera (gracias a spectrumgomas), que posibilitó reemplazar parte de mi hardware obsoleto por otro un poco más moderno.
Ahora que las lluvias van disminuyendo poco a poco y mi casa deja de parecer Amegakure, espero poder dedicar tiempo a la demorada tarea de integrar el reloj de tiempo del juego y Caelum con el ciclo día/noche.

Aprendiendo de otros: FreedroidRPG

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 red…

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,…

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…

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íne…

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 fa…

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.

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 …

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 esp…

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 …

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.

Cantidad de polígonos

Cuál es el número adecuadao de polígonos para un modelo? Al menos en Ogre, 17 mil polígonos parecen ser un número bastante difícil de manejar si tienes varias entidades con esa cantidad visibles a la vez, sin instancias. En el foro, la cantidad que recomiendan oscila entre 5000 y 10000, incluso se dice que la diferencia entre uno y otro no es notable. Además, otro número a tener en cuenta es el de batches, que son los pases que se dan para mostrar un objeto (mi personaje actual tiene unos 15).
Todos sabemos que un número alto de polígonos es lo que hace más real a un modelo (una buena textura ayuda mucho también). Sin embargo, según lo que he podido leer, 17-20 mil ya son demasiados, incluso para muchos títulos comerciales. El único que parece superar este límite es Mass Effect: según esta lista, Sheppard con toda su parafernalia alcanza los 25 mil (hay dudas acerca de si el nanotraje de Crysis, con 67 mil es un modelo del juego o solo para cinemáticas) y algunos juegos de carreras se…

Más imágenes

Ultimas imágenes:
Los FPs están bajos porque estoy usando una versión del modelo con Subsurface aplicado, lo que eleva enormemente el conteo de polígonos. Si además agregamos la sombra, no es de extrañar que mi 9500GT se arrastre vergonzosamente.
Hay detalles que desgraciadamente no se aprecian, como el mapeo normal del baúl y los ojos del personaje, que aún no he podido integrarlos.

Exporter de Ogre y subsurf

Uno de los problemas que siempre había tenido con el exporter de Ogre para Blender era con el modificador subsurface. El caso era que en el momento de convertir la malla de xml a mesh, se producía un error, si el objeto tenía armature, o sea, estaba (o sería) animado. Hoy al fin encontré la solución al problema.
Para utilizar correctamente el modificador primero debemos aplicarlo, luego en el momento de exportar hay que desactivar la opción Aplicar modificadores. Bl modelo resultante conserva el Subsurf que ya ha sido aplicado por Blender, e incluso los nuevos vértices están asociados al esqueleto y se animan debidamente.

Gentoo, ¿cada día más difícil?

Tengo que decir que Gentoo no deja de sorprenderme. Esta es una distribución que no es apta para novatos, pero parece que se están superando en su empeño de hacerla casi imposible de usar. Llevo ya varios años utilizando Gentoo y poco a poco el proceso de instalación se ha ido convirtiendo en algo habitual para mi, que podía hacer casi con los ojos cerrados. Lento, pero sin dificultades. Sin embargo, resulta que ahora al problema del portage se suma que la instalación no arranca. El error en cuestión ya lo han debatido en el foro y todos los hilos comparten la misma falta de solución.
El caso es que durante el arranque el sistema intenta hacer un chequeo de las particiones y ahí fsck.ext4 da el palo: la partición no es válida. Si arrancas con otro sistema verás que la partición está ahí y el mismo fsck la reporta como correcta.
Todo parece indicar que tendré que buscarme otra distribución.

Calculate Linux

Ayer fue mi primera experiencia con Calculate Linux. Y tengo que decir que ha sido una de las peores. Había descargado el CLDX, que es un LiveDVD de instalación con Xfce. Sin emabrgo, al arrancar, no me levantó Xfce, ni tampoco lo pude levantar después. Al parecer no soportaba mi tarjeta HD5770, que requiere Catalyst 10.5 si no recuerdo mal. En cambio sí podía levantar un shell gráfico.
El gran problema vino a la hora de instalar. Al inicio, no da ninguna explicación de cómo instalar desde el shell, así que me tomó algo de investigación descubrir que el instalador parece ser un programa llamado calculate. Este instalador, sin consultar ni solicitar confirmación alguna, se lanzó a reparticionar y formatear mi disco duro como le dio la gana, desapareciendo en un segundo información y trabajo acumulado durante años.
Afortunadamente mi trabajo más importante está acá en la oficina: el juego y las novelas en las que estoy trabajando. Sin embargo, muchas pruebas de concepto se han perdido…

Nuevo exporter de Ogre para Blender

El exporter de Ogre para Blender ha recibido una actualización, aunque los cambios parecen pocos, son importantes. En especial uno de ellos me había golpeado: el problema con las tangentes cuando no hay materiales (oficialemtne: cuando no hay información UV). No he podido comprobar si el problema con el modificador Subsurf se ha corregido. Para objetos sencillos parece funcionar, pero una prueba rápida en el modelo del personaje me da problemas.
El autor ha aclarado las dudas respecto a la versión 2.5. El trabajo aún no se ha iniciado, pues el API no se ha declarado estable. En cuanto lo haga, iniciará un nuevo exporter desde cero para la versión 2.5.

Un RPG sin objetos

Ayer les mencionaba de pasada que el sistema de ítems es esencial para un RPG. Pero todo es posible, así que hoy voy a hacer un ejercicio mental para diseñar un RPG sin objetos que recoger. De paso, voy a hacerlo con un universo conocido, y del cual dije una vez que sería el universo más complicado para hacer un MMORPG.
El universo en cuestión es el de Bleach, ese manga/anime, que todos conocemos. O casi todos. Obviaré aquí los detalles de la trama, baste con saber que un juego basado en Bleach debería dejarnos jugar como shinigamis o Arrancar. Ahora bien, tanto los shinigamis como los Espada no se caracterizan por el uso de objetos. Cada shinigami nace con un arma: su zanpakutoh. El poder de un shinigami viene mayormente de ahí. Una zanpakutoh tiene 2 liberaciones: shikai y bankai, y tal vez uno o dos poderes más que son únicos de cada shinigami. En el caso de los Arrancar, el equivalente es Resurrección (así en español) y otros poderes como Cero o Gran Rey Cero. Sin duda, pensarán: …

Equipar objetos en el personaje

Un RPG no es nada sin esta característica, todos queremos ver cómo nos queda esa armadura de escamas de dragón, la nueva túnica de mago, la espada de fuego, o lo que sea. Los jugadores  de RPGs somos muy pacotilleros. Un RPG que no tenga esto, mejor que busque una forma de obviar todo el sistema de ítems, que es la base de los CRPG tradicionales.
Ayer hice unas pruebas para ver cómo implementar lo anterior en Ogre. La idea es muy sencilla: adjuntar los objetos a huesos del esqueleto. La prueba rápida consistión en ponerle un yelmo al personaje, para ello utilicé el hueso "head", al cual le adjunté una malla cargada previamente en una Entity. Mediante la función attachObjecToBone podemos adjuntar una entidad al esqueleto de otra, simplemente indicándole el hueso al cual queremos unirla. Las entidades adjuntas siguen la animación del hueso, según me comentó alguien en el IRC que afirma haberle puesto una espada en la mano al robot de los demos de Ogre. Sí, sabemos que el robo…

Unigine anuncia oficialmente Oil Rush

Hoy Unigine Corp. ha anunciado oficialmente Oil Rush, un juego de estrategia en tiempo real basado en su motor propietario. El juego viene desarrollándose internamente desde el 2009, y me parece a mí que es un intento por colocar un producto en el mercado que muestre la potencialidad de Unigine. El mismo saldrá para Windows, PS3 y Linux, en una apuesta que algunos considerarían bastante arriesgada. Sin embargo, me parece que aparte de cómo se comporten las ventas en Linux, el punto a demostrar aquí, en mi opinión, es que Unigine permite un desarrollo multiplataforma sin costes adicionales. La mayoría de las compañías desarrollan primero para Windows y luego encargan a alguien que porte el juego, o cual encarece el proceso y usualmente el título llega tarde.

Pruebas de stress mínimo

Esta es una prueba muy mínima de stress, con una versión inicial del modelo del personaje. Aún le falta el mapa normal. Y vestirlo, claro.
El modelo está hecho en Blender y tiene un poco más de 6000 polígonos.

CEGUI 0.7.2 y Cyphesis 0.5.24

Un par de buenas noticias: hace un par de días se liberó una nueva versión de Cyphesis, que ya llevaba buen tiempo en silencio y acaba de anunciarse además CEGUI 0.7.2, que ahora incluye soporte experimental para MinGW. Lo cual me alegra muchísimo, pues ya me estaba preparando para ver cómo lo compilaba yo mismo en Code::Blocks.

No molestes a tus clientes!

Que en definitiva son los que pagan tu salario. Voy a hacerles una historia acerca de cómo no manejar los pagos en tu juego online. El caso es que hace unos días intenté que un amigo me pagara ximerin en Regnum Online, vía SMS. El pago por SMS es una buena modalidad, ya lo había probado antes en Travian, a través de una amiga en España, sin ninguna dificultad. El problema empezó cuando el sitio me informó que el pago por SMS no estaba disponible para mi país. Hmm, a Travian no le molestó que fuera de Cuba para aceptar mi pago... No importa, cambiamos el país de la cuenta. Pero no, no puedes cambiar el país de la cuenta si ayuda del Servicio Técnico. Nada del otro mundo, excepto que el Servicio Técnico se toma un mes en responder las solicitudes, cuando las responde. Ok, descartamos el pago por SMS.
Pero por Paypal sí debería funcionar. Como no puedo acceder Paypal desde Cuba, uso un proxy para entrar. Ah, pero entonces el sitio de Regnum me dice que estoy accediendo desde un país dife…

CoApp, repositorios para Windows?

Pues sí señor, parece que Microsoft se ha percatado de las potencialidades y está financiando el desarrollo de CoApp, Common Opensource Application Publishing Platform. La idea es proveer a la comunidad una herramienta y un formato de paquetes que permita crear repositorios binarios y de fuentes de aplicaciones abiertas y a los usuarios la gestión de instalación y actualización de dichas aplicaciones. O sea, que en un futuro cuando algún usuario de Windows pregunte cómo puede llevar sus CDs a mp3, le responderemos "haz un coapp cdex", que visto así no suena mucho más feo que "haz apt-get".

Mejoras, otra idea

Tal parece que esto de las mejoras es una moda definitiva. Fallout: New Vegas permitirá mejorar las armas y otras cosas si no recuerdo mal, y era una opción presente en la época de Fallout 2, que daba la posibilidad de mejorar la Desert Eagle con un cargador expandido y un revólver con un cargador rápido.
Tal como alguien comentó en la anotación de ayer, el sistema de Mass Effect 2 está hecho para ganar tiempo. Tiempo de juego, que en verdad es tiempo perdido para el jugador. Desde mi punto de vista, es muy sencillo implementar un sistema más agradable que no rompa la mecánica principal de juego (y ahí está el viejo Fallout 2 para darnos la guía).
Cómo lo haría en mi proyecto? Pues de una forma sencilla: mediante comerciantes específicos. Una línea de mejoras podría ser para las armas de fuego, orientada a la clase Tracker. Varios ingenieros/mercaderes denmar pueden ofrecer una mira mejorada (precisión), un cañón de fusil más largo (alcance) o un sistema de recarga rápido (más cadenci…

Mass Effect 2 y los upgrades

Los que hayan jugado Mass Effect 2 sabrán que hay muchos cambios con respecto al primer título de la saga. Muchos dicen que para bien, a mí no me hicieron mucha gracia. Sin embargo, no es nada que degrade la experiencia de juego, para mí sigue siendo un gran juego al igual que el primero. Sin embargo, con lo que sí no estoy de acuerdo es con el sistema de upgrades o investigaciones.
Esto parece ser una nueva moda, pues en Starcraft 2 tenemos un sistema parecido. La idea es que al margen de la mecánica de juego principal, puedes realizar investigaciones que mejoran tu equipamiento. En Starcraft 2 lo costeas con el dinero que ganas en cada misión y hasta cierto punto es divertido, aunque siento que rompe la trama de la campaña debido a que tienes que desviarte a realizar misiones solo por adquirir puntos de investigación y dinero.
En el caso de Mass Effect 2, el caso es aún peor. Las investigaciones son esenciales para mejorar todo tu equipamiento, incluyendo la nueva Normandía. Y no es…

Lo que vendrá con Byatis

Aunque apenas estamos entrando en confianza con la rama 1.7 de Ogre, es interesante echar un vistazo a lo que vendrá con la 1.8, nombre código Byatis (como viene siendo habitual, tomado del universo Lovecraft) y estoy seguro que la tendremos a principios de año próximo.
Por encima les puedo mencionar que el viejo TerrainSceneManager desaparece y nos quedamos con el nuevo sistema, del que he hablado hasta la saciedad. Esto parece ser el único cambio drástico que habrá. El MeshSerializer podrá (correción, ya puede) escribir archivos para cualquier versión de Ogre, incluso hasta la 1.0. La mayor parte del trabajo parece estarlo recibiendo el renderer DirectX 11, que consigue teselación, soporte multiventanas y multidispositivos. Veo pocas referencias a OpenGL, aunque el resto de los cambios son genéricos, que benefician a todos los renderers.
El wiki también incluye algunas notas sobre Tindalos, nombre código de la versión 2.0. Sin embargo, esto aún está muy lejos, de ahí que las notas…

Windows 7 vs Ubuntu

En Phoronix han publicado una pequeña comparación entre estos dos sistemas como plataforma de juego. La prueba está un poco escasa de títulos, porque lo justo es hacer los benchmarks con juegos portados a ambos sistemas. Como pueden ver la diferencia no es mucha, excepto en Lightsmark, lo que me hace pensar si habrá tal diferencia entre los drivers de Windows y los de Linux como usualmente se dice. Resulta significativo que los demos de Unigine corran casi exactamente igual en ambas plataformas.
Sería interesante comprobar cómo se comporta el renderer OpenGL de Ogre.

REgnum Online y los PvP

En estos días he hablado mucho de este MMORPG gratis aquí. Estoy pasando por una de esas temporadas en que me apetece jugarlo a menudo (hay otras en que el largo proceso de ganar niveles me aburre). Esta entrada en específico se debe a mis primeros 4 puntos de reino. Los puntos de reino se obtienen cuando combates con jugadores de los reinos enemigos, en este caso Ignis y Alsius, cariñosamente llamados cabras y tomates por los del reino de Syrtis. En este caso logré atizarle con mis mejores hechizos de nivel 30 a un par de ignitas mientras estaban ocupados combatiendo con jugadores de verdad (léase, nivel 50).
Yendo al lado serio del asunto, me llama la atención lo bien pensado que está el PvP de Regnum Online para uqe se convierta en parte integrante del juego. El PvP no falta en los juegos online, sin embargo es algo opcional. Puedes mantenerte alejado de las zonas PvP y evitarlo, porque sabes que allí siempre habrá jugadores de niveles altísimos especializados en cazar a otros. En …

El Google Summer of Code ha terminado

Hace un par de días concluyó oficialmente el Google Summer of Code y ya los estudiantes están haciendo los informes finales de su trabajo. El mundo de los juegos, como siempre, no se quedó fuera. CrystalSpace recibió algunos cambios significativos, como iluminación mejorada para lighter2, SDL si no recuerdo mal, tenía entre los suyos un port a Android usando el NDK (importante ahora que el soporte Java está en litigio), e incluso, FreedroidRPG puede vanagloriarse de importantes retoques, casi me atrevo a afirmar que el juego es muy diferente ahora.
Increíble lo que se puede hacer con un poco de financiamiento, no les parece?

0 A.D. Alfa 1 Argonaut

Leo en Freegamer que ha sido lanzada una nueva versión de 0 A.D, un RTS que hace algún tiempo fue convertido en software libre por sus creadores, Wildfire Games. Al parecer el proyecto al fin ha logrado tomar impulso y se ve prometedor, con unos gráficos buenos e incluso, multiplayer. Que dicho sea de paso, es lo único que ofrece esta versión, pues aún no hay oponentes IA.
Esperemos que en un plazo no muy largo este título engrose las menguadas filas de los RTS libres que vale la pena jugar.

Migración al nuevo terreno concluida

El proceso de portar el proyecto al nuevo sistema de terreno de Ogre ha costado un poco. Los cambios no solo afectan la forma en que se crea el terreno en sí, si no también los rayos y las pruebas de intersección. El método anterior ya no es válido  y tuve que idear una solución alternativa mientras encuentro algo más óptimo. Ahora lo que hago es hacer dos pruebas de intersección: la primera usa un SceneQuery y busca entidades que comiencen por GameEnt, descartando las entidades estáticas marcadas con una máscara específica. La segunda prueba se ejecuta si no se encontraron entidades, verifica si el rayo intersecta el terreno.
El sistema para ubicar los personajes sobre el terreno también tuvo que ser reescrito, porque usa rayos (mientras no se implemente la física). Por el momento, eso es todo lo necesario para tener un prototipo funcionando. Queda el detalle del eye candy, lograr que la textura del terreno se ajuste distribuyéndola en mosaico en vez de estirarla, agregar mapas norma…

Cómo funciona el 3D sin gafas de Nintendo

Sin duda alguna, Nintendo se robó el show en la E3 de este año al presentar su nueva consola portable con 3D y sin necesidad de molestas gafas. Cómo se logra este efecto, se explica en este artículo, con video incluido.
Para los que no puedan seguir el inglés, les explicaré muy brevemente la idea. En esencia, todo sistema 3D se basa en mostrar dos imágenes: una para cada ojo. Nuestro cerebro necesita estas dos imágenes, vistas desde perspectivas diferentes, para construir el 3D que percibimos. Dicho así, suena fácil, pero en la práctica, cómo logramos que cada imagen vaya al ojo adecuado? Aquí es donde intervienen las gafas de toda la vida, activas o pasivas. Su función es ocultarle al ojo la imagen que no le corresponde. 
Cómo resuelve Nintendo este problema? Simplemente usando una cosa llamada barrera de paralaje. Una barrera de paralaje es como una válvula que dirige la imagen a un ojo o a otro. El artículo compara este mecanismo a un poste que nos oculta la luz a un ojo o a otro.…

Nuevo modelo funcionando

Al final el problema de la rotación del personaje nuevo no se resolvió. Aún cuando Sergio me envió el modelo ya rotado, de todas formas en el juego aparece igual. Así que la solución fue adaptar mi código a la nueva orientación del modelo, con lo cual queda así:

Falta por revisar el código que rota el nodo para que apunte en la dirección correcta en modo isométrico, que también interviene en el modo 3ra persona cuando un NPC se desplaza a otra posición.
Sería interesante comprobar si sucede lo mismo con modelos hechos en 3D Max o Maya. Para un entorno donde se mezclen varias herramientas de modelado lo ideal sería un código que se ajuste a la orientación del modelo, pero he preguntado al respecto y no he obtenido una respuesta concreta en los foros.

LLVMpipe y GLSL por software

En Phoronix han publicado una nueva prueba de desempeño del compilador de GLSL2 de Intel basado en  LLVM. Este compilador inicialmente diseñado por Intel para sus drivers abiertos, ha sido adoptado también por el controlador de ATI. Dicho así, la cosa parece muy buena, pero el caso es que no creo que lo sea tanto.  Esto es otra Intelada, por llamarlo de alguna forma, otro intento de suplir las carencias con tiempo de CPU. Y los CPUs, está demostrado, no alcanzan aún para gráficos de calidad con alto rendimiento.
Para empezar esta idea requiere de un procesador multinúcleo con juego de instrucciones SSE4. En Phoronix lo prueban con un i7, que mira tú, los encuentras  tirados en la basura (justo ahora un colega está regalando un módulo motherboard/cpu/memoria i7 solo en $850). No obstante, la nave insignia de la flota Intel apenas saca 15-17 cuadros en algunos juegos a la ridícula resolución de 800x600. Onda retro, ya saben... Eso sí, aún falta optimizar un poco. Lo cual significa que o…

Entrevista a Feargus Urquhart

En caso de que no lo sepas (y en ese caso, deberías ser azotado con un látigo de cables de datos SATA) este señor cuyo nombre no me atrevo a pronunciar es uno de los creadores del Fallout original. De hecho, de los únicos que cuentan, que son el 1 y el 2. Se ha publicado una entrevista suya en Gamasutra, que vale la pena leer. Entre otras cosas, Urquhart dice que no quiere parecer un lameculos, pero que Fallout 3 es un buen juego. Según él, lo que hace un Fallout es el universo y el espíritu del juego (estoy traduciendo muy libremente) y no la vista.
Dejando aparte el tema de si Fallout debe o no ser un juego isométrico y siendo un poco más masoquistas, por turnos, discrepo con la opinión del respetable Feargus. Fallout 3 sí es un gran juego que no debería dejar de jugar ningún aficionado a los RPG. Una mecánica de juego impecable, una historia algo sosilla pero sin llegar a ser somnífera y unos gráficos decentes, algo plásticos, pero decentes. Pero soy de la opinión de que al igual q…

De sombras y mapas normales

Ayer le hice un intensivo a varias cosas, les mencioné el RTShader, pero no fue la única. Continué el trabajo de migrar al nuevo sistema de terrenos de Ogre, lo que implica muchos cambios. Para empezar las cosas no quedan iguales, la posición cambia (ahora está más arriba) y además  el método de hacer picking con un rayo también, así que eso lleva un poco de investigación en los demos.
En cuanto al molesto asunto de los mapas normales, parece ser que para funcionar adecuadamente la malla debe tener las tangentes. Se puede hacer en código, pero es más fácil al exportar el objeto. Es un detalle a tener en cuenta si piensas usar mapeo normal o bumpmap. Y ya que hablamos de modelos y exportación, también me confirmaron algo: las sombras stencil te pueden dar problemas si activas la generación de listas de bordes (Edge lists) en modelos complejos. Al parecer el límite es de 65k vértices porque el índice  es de 16 bits. En general, me dicen que las stencil shadows no se manejan bien con alt…

RTShader System

Hoy he dedicado un rato a estudiar el nuevo sistema de Ogre para generación de shaders en tiempo real. Para decirlo de una forma rápida, ofrece una especie de plantillas para generar materiales basados en shaders durante la ejecución. Incluye una biblioteca de shaders comunes, como mapeo normal, que son los que justo  ahora estoy tratando de utilizar y otros muy curiosos para emular la Fixed Function Pipeline en renderers que no la soportan como DirectX 10/11 y OpenGL ES 2.0. Esta biblioteca se puede extender escribiendo tus propias extensiones.
La idea es sacrificar la personalización/optimización al detalle del shader a cambio de lograr facilidad y rapidez de desarrollo, lo cual no es un mal negocio si tienes docenas de materiales distintos y muy pocos desarrolladores expertos en lenguajes de shaders. A primera vista es fácil de utilizar y definir un material es algo tan sencillo como esto:

material ChessBody
    {
       technique
       {
          pass
          {
             amb…

Ninja Wars

Una de las páginas más visitadas en este blog, desde hace más de un año, es el tutorial de Ninja Wars. Durante la beta de la nueva versión tuve que abandonarlo debido a una de esas épocas en que mi ancho de banda se pone insufrible y algún que otro detalle con Firefox que me obligaba a entrar solo con Internet Explorer (algo difícil cuando solo tienes Linux a mano). Lo que me resulta curioso es que Ninja Wars ya no existe, hace unos días me dirigí a su autor y le pregunté acerca del proyecto, pero resulta que ya no lo mantiene y dejó de pagar el hosting.
Supongo que las visitas actuales se deban a que existe otro juego con similar nombre. No lo he revisado a fondo pero me parece que no es lo mismo. Es una pena, porque Ninja Wars era un buen juego (y gratis).

El portage de Gentoo es un desastre?

No me queda otra cosa por pensar. A estas alturas, aún no tenemos Ogre 1.7, retenido por falta de freeimage, que tampoco se ha reintegrado al portage. Para más inri, me encuentro hace un par de días que para actualizar a xorg-server 1.7, necesario para instalar el Catalyst 10.5, hace falta el util-macros 1.7. Sencillo, no es así? Pues no, porque util-macros 1.7 está en el portage, pero el fuente no. La solución es sencilla: bajar a mano el tar.bz.
No obstante, los problemas no terminan ahí. El snapshot del portage que tenía no se ajusta exactamente con las dependencias de xorg-server, que requiere gl 7.1, pero solo el 7.0 está disponible y otro paquete llamado xf86vm que en teoría es parte de glproto. Tendría que ver si es necesario desenmascararlo, porque luego de preguntar en el foro, nadie me supo dar respuesta.
Con situaciones así, cualquiera se plantea seriamente cambiar de distribución.

Mass Effect 2

Al fin he tenido la oportunidad de jugar Mass Effect 2. Por supuesto que no tengo tiempo para más nada, este es uno de esos RPG que te consumen todo el tiempo. En fin, que me he divertido bastante y no esperaba menos, a pesar de que los cambios en el diseño me chocaron un poco. Tiene cosas nuevas muy interesantes, pero otras que me molestan, como el nuevo sistema de mejoras de munición, que es basado en habilidades y no en objetos como antes. Ahora ya no tenemos munición ilimitada, lo cual se nota especialmente en batallas largas, en las que te puedes quedar sin un miserable tiro, a expensas de lo que haga tu equipo. Dicho sea de paso, la IA de los acompañantes no me ha demostrado nada, son bastante lerdos a la hora de usar sus poderes, lo supongo que se compense con el hecho de que ahora mueran menos. Disparar, sí disparan y eso es una ayuda apreciable, aunque no se nota contra enemigos poderosos. Con esos te las tienes que apañar tú solito.

Warzone 2100 online

Como diría Carlos Varela, encuentran suerte, pero otros ni siquiera. Mientras unos tienen Starcraft 2 y están jugando como unos posesos, por acá aún tenemos que esperar varios días. De momento, yo he encontrado un poco de consuelo en jugar Warzone 2100 como ya había mencionado. Me parece que he encontrado el RTS libre definitivo (sin desdorar a Glest) y he perdido bastante tiempo jugando online.
Pueden encontrar una buena guía aquí, pero tengo que advertirles que Warzone tiene un enorme árbol de tecnología (más de 300) y aún después de tres días jugando a veces no tengo idea de cómo llegar a cierta tecnología. Para jugar online, pues además de cierta habilidad, lo ideal es conocer los mapas. Hay mucho pillo en el Lobby creando juegos con mapas que se conocen al dedillo y haciéndose de victorias fáciles no porque jueguen mucho mejor que tú, si no porque saben a dónde tienen que ir para quedarse con tu energía. Y en Warzone, la energía es fundamental.
No obstante, cuando logras encontra…