martes, diciembre 28, 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 desarrollo.

lunes, diciembre 27, 2010

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

viernes, diciembre 24, 2010

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 bugs, aunque ninguno que afecte la jugabilidad. Sin embargo, quisiera pulir un poco más todo. Manténganse al tanto.

jueves, diciembre 23, 2010

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.

miércoles, diciembre 22, 2010

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.

martes, diciembre 21, 2010

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 desde una pantalla hasta la otra, pero con el tiempo te acostumbras a que si no lo ves es que está a la "derecha".
En el Xfce todavía no lo consigo, aún estoy buscando la configuración correcta. De momento logré que el LCD sea la pantalla principal, pero la forma de manejar la secundaria no me gusta. Pero hoy pienso probar más combinaciones hasta dar con la adecuada.
Sin embargo, luego de estas pruebas, llegué a la conclusión de que todavía no le veo mucho sentido a tener dos pantallas. Será que esto me cogió de sorpresa y no puedo apreciar todo el potencial, o tal vez necesite un par de días para cogerle el gusto qy que se vuelva esencial. Pero el caso es que después de 10 minutos de intentar ver una peli a mi izquierda mientras en la pantalla principal se compila el proyecto me aburrí y lo dejé.

lunes, diciembre 20, 2010

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.

viernes, diciembre 17, 2010

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 Fallout y que éstos hicieran bien lo que ellos hicieron a medias, al fin anuncian un título que sí se les da bien: Elder's Scroll V: Skyrim. El anterior fue toda una revolución y un excelente juego, esperemos que el V sea igual.

jueves, diciembre 16, 2010

Querían un RPG con Unigine?

Pues ya lo tienen. O más exactamente, lo tendremos algún día. Títulos así son los que necesita este motor para despegar, o más bien, equipos así, con un alto componente de usuarios Linux, que los obligue a buscar soluciones como Unigine.
Y ya que hablamos de RPGs, los de PC Gamer han probado un demo de Diablo 3.

martes, diciembre 14, 2010

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.

lunes, diciembre 13, 2010

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 proyectos llegan a buen término.
Mientras, seguimos a la espera de que salga Oil Rush.
Actualización: Ya están aquí los resultados y la verdad que no se han arriesgado, de los tres equipos ganadores solo uno ha lanzado un FPS, los demás tienen juegos más bien casuales en su haber. Así que no esperen un RPG ni nada por el estilo.

viernes, diciembre 10, 2010

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. En mi caso particular, es posible jugar todo el juego sin ver el cielo (en modo isométrico), ahí se perdería todo el encanto de usarlo.
Lo segundo, el foro nos remite a otras soluciones como SkyX y Myrddin. Caelum ya no será mantenido. Una pena, porque funciona sin muchas complicaciones.

jueves, diciembre 09, 2010

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. Como decimos aquí, calidad teléfono, y no de los fijos, de los móviles, cuando la llamada es internacional, que se entrecorta o no se oye. Imagen pixelada, secciones en movimiento que se que se extienden como manchas de tinta, en fin, lo que les diga es poco, a pesar de que subí lo más posible los parámetros de calidad y probé con varios algoritmos de compresión.
Así que por el momento, abandono mis pretensiones de iniciarme como director de cine con software libre, hasta que logre echarle mano a un Cinelerra más estable (he oído buenas opiniones sobre la última versión) o a OpenShot.

miércoles, diciembre 08, 2010

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 prolongase por más de un año. Así que saquen sus conclusiones para cada caso.
Y por supuesto, les deseo éxito y espero que algunos lectores linuxeros muestren su apoyo comprando el juego.

martes, diciembre 07, 2010

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 nvidia-settings. Ni idea de por qué nvidia-settings debe ser distribuido como un paquete aparte, ni tampoco por qué la versión 256 (que ni siquiera tengo instalada) entra en conflicto con la 260 de los drivers. En fin, que incluso en una distro rolling release hace falta de vez en cuando hacer borrón y cuenta nueva, y la única razón por la cual no lo hago más a menudo es que instalar Gentoo me toma varios días debido a mi extremadamente lenta conexión y mi no menos lento procesador. En casa es peor, pues aunque tengo un procesador que vuela, tengo que llevar los paquetes poco a poco, pues ahí no tengo internet, ni lenta ni rápida (ya quisiera yo una de esas conexiones ADSL con Telefónica que tanto critican los usuarios españoles).
Ahora, supongo que el equipo de Ubuntu haya sopesado los pros y los contras de esta decisión, y confío en que tienen un buen grupo para manejar este proceso tan propenso a los problemas. Si me preguntan a mí, diría que dejen a Ubuntu tal y como está.

viernes, diciembre 03, 2010

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 dedicar mucho más tiempo, pero desgraciadamente no puedo (hay un editor de escenarios que escribir y muchas otras cosas).

jueves, diciembre 02, 2010

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 demás se maten entre sí). Incluso he tenido que reforzar un NPC crítico porque en ocasiones resultaba muerto en combate.
Espero lograr terminar esto en poco tiempo y continuar con lso planes de tenre un tech preview pronto.

miércoles, diciembre 01, 2010

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 algo que ya alguien más reconocido que tú haya dicho. Alabadas sean las comillas, porque por ellas alcanzarás el reino de dios. O de los Masters y Doctores. O sea, que si piensas ir a un evento para hablar de las ventajas y desventajas de los motores de juego abiertos, y de como se comparan con las soluciones comerciales más populares, pues no podrás, a menos que te apoyes abundantemente en citas a Carmack, Gabe Newell, Johann Sebastian Mastropiero y la Madre Teresa, que no tenía ni esta idea de juegos, pero que todo el mundo la conoce e hizo mucho bien por el prójimo en este mundo, académico o no. Está claro que tal información no pudo salir de tu indigna cabeza, porque nada existe si no ha sido publicado previamente y lo que no fue y es, obviamente, no es ni será.
Y si hablamos de imágenes, nada hubiera deseado más que complacer al comité con algunas, tomadas de los diversos proyectos que pueblan el catálogo de los motores de juegos. Eso sí, que antes me explique el respetable comité cómo incluyes una imagen de calidad mostrando lo bien que se ve el normal mapping en tu proyecto con Ogre en un trabajo a dos columnas sin que se convierta en un borrón pixelado.
En fin, creo que hace bien el comité protegiendo a los participantes de mis  inútiles divagaciones sobre programación de juegos. Dejémosle los eventos científicos a los que sí tienen la adecuada preparación.