miércoles, junio 24, 2009

Shaders y múltiples render backends

Uno de los problemas de tener un motor que permite usar D3D y OpenGL es que no hay forma de asegurarse que los shaders funcionen bien en ambos. El caso es que si usas GLSL, no funcionará en Direct3D y si usas HLSL, lo mismo. En teoría Cg es neutro, porque proporciona varios perfiles. En la vida real, solo hay compatibilidad asegurada entre tarjetas/APIs cuando usas el perfil más básico, de shader model 2 hacia arriba te puedes encontrar que, casualmente, las cosas no funcionan en una ATI. La solución es brindar programas Cg para diferentes perfiles, lo cual, me parece a mí, es un lío.
La otra solución, suponiendo que estés escribiendo tu propio motor, es usar un solo API: OpenGL o Direct 3D. En ambos casos es un poco limitado.

martes, junio 23, 2009

Divagaciones sobre Ogre, consolas y hasta los etcéteras

El calor es realmente indecente aquí. Así que en casa apenas puedo trabajar los fines de semana pues mi cuarto parece una sauna. En apenas 5 minutos le disco duro alcanza 43 grados. En la oficina no dispongo del hardware necesario, por lo que mis períodos improductivos son largos.
Solo me queda pensar y satisfacer mi curiosidad. Por ejemplo, me planteaba la factibilidad de desarrollar para consolas (eso es una masturbación mental MUY grande). Este es un campo plagado de opiniones contradictorias, pero hay una que emerge con cierta ventaja: PS3 es muy difícil de aprovechar al máximo. A ver, tenemos un artefacto con 8 núcleos, que requiere un trabajo demencial de optimización mediante hilos. Podríamos, digamos, usar un SPU para IA y otro para físicas, lo gráficos por descontado que van por el suyo, y aún así el Cell har;ia gárgaras con todo esto mientras se echa fresco en los testículos. Por su parte Xbox es un poco menos complejo, solo tres núcleos (hablo de memoria aquí, así que podría estar errado), tiene un chip de video al estilo de una PC común, corre DirectX, en fin, que con esfuerzo mínimo puedes tener tu juego portado de PC a Xbox.
Hay algunas discusiones acerca de Ogre y consolas en el foro. Había interés por parte de Sinbad de acogerse a los programas de Microsoft y portar el motor a Xbox, pero sólo si había gente interesada. No me refiero a cualquier pelagatos, sino a desarrolladores serios. No sé en qué habrá parado eso.
El caso Ogre vs PS3 es algo más complejo y de ahí no saqué nada en claro. Son muchos los trapos sucios que salen a relucir, ya sean problemas de licencia o técnicos, y cada uno de ellos con dos vertientes. Lo peor aquí es que hay mucho músico de oído, porque el SDK de Sony no es algo al que todo el mundo tenga acceso. Solo logré deducir que sí es posible, escribiendo un renderer para PS3 (que en el fondo usa OpenGL), lo cual no quiere decir que funcione a tope. Hay disímiles opiniones acerca de si Ogre está listo para PS3, su manejo de memoria y su arquitectura poco concurrente parecen ser un lastre muy grande. Algunos sitúan la tarea en un nivel de complejidad solo un poco más bajo que escribir tu propio motor. No lo recomiendo, especialmente porque Sony regala PhyreEngine, que es multiplataforma.

lunes, junio 22, 2009

DNT 0.4

Llevaba un buen tiempo sin echarle un vistazo a este juego y hoy me he quedado sorprendido al ver que ayer liberaron la versión 0.4. Espero que sigan avanzando (un poco más rápido si se puede) y que algún día tengamos un RPG lo más completo y divertido posible.

domingo, junio 21, 2009

Solucionado el problema

Luego de mucho preguntar, solucioné el problema de la tarjeta en Linux. Por pura casualdiad, mientras leía la ayuda de aticonfig, me percaté que recomiendan usar la plantilla de la configuración. Como no quedaba más nada que probar, lo hice y eso resolvió el problema. Luego me encontré algunos detalles con Xfce, que en mi cuenta de usuario no quería moverse como debe ser. Solucionado este último detalle pude dedicarme al proyecto otra vez. Ya funciona estable, sacando unos 160 cuadros por segundo. También implementé una frecuencia fija de actualización de la IA, ajustada a unas 10 veces por segundo. Eso fue lo que me recomendaron hace un tiempo. Esto es algo que aún tengo que mejorar, pues ahora estoy procesando todas las entidades en cada cuadro, de ahí que solo obtenga 160 en vez de 400. Es que un Celeron se siente la carga de ejecutar scripts unas 40 o 50 veces por segundo, digo yo.

sábado, junio 20, 2009

Nuevo renderizador de terrenos para Ogre

Gracias a mis plegarias y múltiples sacrificios de cabras blancas (no me fue posible encontrar una virgen) muy pronto tendremos un nuevo terrain renderer. Que más parece regalo de navidad, por las características que implemente, a saber: paginado, editable, hasta 6 texturas en un solo pase (para hacer todo ese splatting tan guay), independiente del SeceneManager, y otras que no recuerdo.
Si no entiendo mal, el código inicial ya está en el repositorio, pero no veo referencias a cuál, si al estable (rama 1.6) o al experimental. En fin, sea lo que sea, ya está más cerca y Sinbad va a toda máquina.

viernes, junio 19, 2009

Aún luchando

Parece que la 4770 sigue negada a funcionar. Ahora el driver oficial no la reconoce. En verdad, si alguien me la cambiara por una Nvidia similar no lo pensaría dos veces.

martes, junio 16, 2009

Catalyst 9.5

Una de las desventajas de tener un hardware demasiado reciente es que te puedes ver sin soporte para el mismo. El driver 9.5 de ATI aún no entra en el portage (es que aún no entra el 9.4) y no estoy para pasarme un mes esperando que lo incluyan, asi que tendré que montarme un overlay y arreglármelas como pueda. Cualquier cosa menos montar el driver sin usar emerge, que es la receta segura para tener problemas.
Y luego, pues si funciona bien ahí se quedará por los siglos de los siglos, que bastante malas experiencias tengo del upgrade de la serie 8 a la 9.

lunes, junio 15, 2009

Ogre OpenGL renderer y ATI driver 9.x

Luego de elogiar lo bien que se ven los proyectos en desarrollo que usan Ogre, ahora me toca quejarme. El caso es que la serie de controladores 9.x de ATI y Ogre no se llevan nada bien cuando se utiliza el renderer OpenGL (que es la única opción en Linux). Ya había tenido problemas con OpenGL y ATI anteriormente, al parecer no se han molestado en hacer un driver con un soporte medio decente. Así que estoy planteándome la posibilidad de cambiarme a Nvidia, pues llevo ya una hora buscando una solución a este problema y no encuentro nada concreto.

sábado, junio 13, 2009

Proyectos comerciales con Ogre

Hacía un buen tiempo ya que no echaba un vistazo a la galería de imágenes de Ogre, y una anotación reciente sobre proyectos comerciales me llamó la atención. Generalmente reviso el subforo Showcase, que es un buen lugar para encontrar nuevos desarrollos. Tengo que decir que me quedé sorprendido en extremo y les recomiendo que vean por ustedes mismos. Steampunk Legends es impresionante, esas pocas imágenes dejan con deseos de ver más. Sin embargo los que sí no se han dejado nada en el tintero son los de Deck13 con Venetica.

viernes, junio 12, 2009

Ubuntu 9.04

Cuando hice la solicitud no me esperaba que llegaran, porque así me sucedió con la 8.04. Sin embargo aquí está: el CD original de Ubuntu 9.04. Los de Canonical se han puesto un poco tacaños, antes te enviaban 3 y ahora solo uno.
Por supuesto que no lo quiero para mí, de momento no pienso dejar Gentoo. Pero sí pienso usarlo para capacitar a otras personas.

jueves, junio 11, 2009

La importancia de un sistema integral

Ayer al fin pude probar la nueva tarjeta de video. El caso es que este modelo vino sin cables de ningún tipo, incluyendo uno esencial: el adaptador de 4 a 6 pines, necesario para la alimentación extra. Tuve que hacer un desembolso adicional para adquirir uno.
Por supuesto lo primero que instalé fue Mass Effect. Habilité las opciones de máxima calidad, que en este caso son bien pocas (sombras dinámicas, texturas superaltas, filtrado anisotrópico) y usé Fraps para ver el framerate. Para mi decepción apenas alcanzo 25 cuadros. Sin embargo no se puede culpar a la HD4770 de esto. Es que una PC para juegos no solo depende de la tarjeta de video, también del CPU, que en mi caso es un Celeron a 2.8Ghz, lo cual es nada para estos tiempos y como desarrollador de juegos debería haberme dado cuenta. No está de más olvidar la velocidad de la memoria, disco duro, y los etcéteras habituales.
En fin, que aún estoy bastante lejos de alcanzar los requerimientos necesario para jugar decentemente.

martes, junio 09, 2009

Ray Park estará en Héroes

Este año veremos un par de veces al actor Ray Park, ese señor desconocido que asombró por su duelo en La amenaza fantasma. Resulta que participará en la próxima temporada de Héroes, pero además en junio si no ando muy errado se estrena GI Joe, que aparenta estar muy buena. Al parecer no está muy claro si interpretará a alguien con poderes, lo que no sería nuevo en él qu e ya apareció en X Men I como Sapo.

lunes, junio 08, 2009

Motores de juegos

Hace un tiempo me encontré esta curiosa anotación que recopila muchos de los juegos recientes y los motores que utilizan. El Unreal Engine 3 gana amplio, es interesante que ningún otro motor tenga más de un título en su haber. Teniendo en cuenta que Unreal vale algunos cientos de miles la licencia, estos tíos se están embolsillando una cantidad horrible de billetes, que sin duda alguna yo sabría emplear mejor en orgías de alcohol y sexo.
Si alguien se pregunta por qué razón UE es el motor más popular, pues basta con jugar Mass Effect, eso sí, sin quitarle el mérito a los muchachos de Bioware. De ME a Fallout 3 va un largo trecho en cuanto a calidad de los gráficos.
Y ya que hablamos de Mass Effect, supongo que a estas alturas todos sabrán que habrá Mass Effect 2. Y ya que hablamos de Bioware, supongo que también sabrán que viene KOTOR 3, con un look a Mass Effect que me hace pensar que estará muy chulo. Claro, que es una impresión producida por el trailer que anda por ahí, es que al mirar a ese sith con prótesis de morro me da la idea que estoy mirando la jeta de Saren el turiano.

domingo, junio 07, 2009

El progreso ha llegado

Aunque a alguien le parezca asombroso, hasta el momento no había chocado personalmente con procesadores de doble núcleo. Hace un tiempo recibimos una nueva PC en la oficina que fungirá como servidor de Oracle. No es un server profesional como el que recibió un colega con dos dual core, pero al menos es un Core 2 Duo. Por haraganería no lo había instalado, la conexión está tna mala en estos días que me resultaba odioso dedicar una semana solo para tener un Gentoo usable. Esto no es culpa de Gentoo, que conste eso.
La compilación del sistema va mucho más rápido. Además he podido habilitar el parámetro j2, qe supuestamente permite compilar dos cosas a la vez o algo así. Según la documentación lo recomendado es el número de procesadores+1, pero como siempre he usado Celerones, jamás he pasado de 1. La diferencia es notable, incluso para mí que soy un poco escéptico en estas cosas.
Ahora solo me falta tener uno así en casa.

viernes, junio 05, 2009

Trabajo de diseño: clase guerrero

Aunque aún el diseño de las clases está en un estado muy inicial, me he encontrado con algunos detalles que requieren un balanceo cuidadoso. Los magos son muy fáciles de atiborrar de habilidades ofensivas y defensivas, mientras que otras clases como los guerreros, solo tenían unas pocas habilidades basadas en fuerza bruta. Mientras escribía uno de los relatos (que aún no sé si termine) acera de Elymuria me vi en la necesidad de dotar a un guerrero de un conjunto de técnicas que hagan la pelea algo más llamativa. Y se me ocurrió, partiendo de la descripción del personaje, que un verdadero guerrero, con entrenamiento, no tiene por qué ser una máquina moledora de cabezas. Vi la posibilidad de incluir, para los verdaderos seguidores de la disciplina marcial, técnicas que les permitan en cierta forma canalizar el mana, chi, chakra, reiatsu, inserte aquí el término de su serie anime favorita, y hasta los etcéteras, en forma de ataques de rango corto y medio. De igual forma, los guerreros podrán arrojar armas que otros personajes probablemente no puedan ni levantar.
Todo esto es trabajo sin pulir y aún me queda definir el asunto de los asesinos, que disponen de un arsenal muy guay de habilidades a medio camino entre mago y soldado.

jueves, junio 04, 2009

Regnum Online

Al fin, luego de varios intentos, he logrado probar este juego. Para los que no lo conocen, Regnum Online es un MMORPG hecho por desarrolladores argentinos. De ahí mi interés en probarlo, y en especial porque mantienen una versión para Linux. Pedir más sería pecar de inconforme, sobre todo cuando no puedo apoyarlos ni siquiera pagando sus servicios, que es lo mínimo que un jugador latinoamericano debería hacer.
No es que vaya de maravilla en mi mugrosa ATI integrada, pero es jugable, incluso en condiciones de conectividad mala se las apaña. Es muy temprano para sacar conclusiones, sin embargo me atrevo a decir que el juego es bueno y se aproxima mucho a lo que estaba buscando.

Lograr que funcionara me tomó bastante trabajo con el cortafuegos, pero ya está el truco y espero este fin de semana jugarlo un poco más.

miércoles, junio 03, 2009

Problemas resueltos

Ayer logré resolver el problema de las bibliotecas de Ogrebullet de una forma bastante rara. Simplemente renombré los archivos en las propiedades del proyecto. Por defecto se llaman libOgreBulletCollision_SDK.a y libOgreBulletDynamics_SDK.a. Eliminé el _SDK y la extensión, que se genera automáticamente. Eso solucionó el misterioso problema de los archivos no reconocidos que me tenía detenido desde hace tres días. Ya ven, problemas del Orinoco, que tú no sabes ni yo tampoco.
Ya estoy de vuelta en XP, lo que resolvió el problema de que el proyecto no corría usando el renderer OpenGL. Tengo que decir que también el de D3D 9 tenía sus problemas, pero al menos caminaba.

martes, junio 02, 2009

Más despedidas, adiós 7 RC

Ayer me dediqué a reinstalar Windows XP. Hoy tal vez compruebe que no fue necesario, pero considero que es mejor volver al ambiente estable y probado de antes. Me gustó 7, tal vez cuando salga el oficial y el mundo se adapte a él, lo utilice. A pesar de no contar con un hardware de esos que son habituales por ahí, no me puedo quejar del rendimiento aceptable que logré.
Hoy veré si al fin logro reiniciar el trabajo.