Lectura recomendada

Publicado el Domingo 15 agosto 2010 en DirectX por Thund

Aquí os dejo una lista de libros relacionados con DirectX o con la programación gráfica en general que he leído o que conozco. Son todos en inglés, obviamente, y los podéis encontrar tanto en la Amazonia como pidiéndoselos a una mula, que cada cual elija su locura.

Introduction to 3D Game Programming With DirectX 9.0
 

Éste fue el primer libro sobre DirectX que leí. Se me hizo un poco cuesta arriba debido a que, por aquel entonces, mi conocimiento acerca del funcionamiento de una API gráfica era inexistente y mi dominio tanto del inglés como de C++ algo mediocre. Aun así le eché un par de voluntades y me fui enterando de toda la teoría que hay delante y detrás de la programación de una aplicación basada en DirectX. Como el título indica, se trata de una introducción, es decir, toca los palos principales y sin entrar en mucho detalle. Esto no quiere decir que explique las cosas de pasada y te deje más perdío que Marco el día de la madre; se centra en los aspectos más básicos, desde cero, siguiendo una curva poco pronunciada, fácil de seguir. Si te apoyas en la referencia del SDK de DirectX a la par que avanzas por los capítulos, el aprendizaje se verá mucho más reforzado. Está claro que es un libro obsoleto, no sirve a alguien que vaya a emprender su andadura por DirectX 11, pero ésto es una verdad a medias; dado que es un libro introductorio, no hace hincapié en el código y en las particularidades de la API, por lo que hay muchas técnicas y bases descritas que son comunes a cualquier librería del estilo, y que pueden ser de gran utilidad para comprender la arquitectura y la forma de trabajar de cualquier versión. Unas 394 páginas, poca cosa.

Aviso de que quizás, tras haber terminado el libro, no seáis capaces de hacer un dragón rojo echando fuego.

Advanced 3D Game Programming with DirectX 9.0
 

Una extensión del anterior, lo que no quiere decir que empiece donde aquél lo dejó, sino que entra en mucha más profundidad en los temas ya tratados y añade muchos nuevos. Si la introducción abarcaba mayormante el campo de los gráficos, éste tomo expande las fronteras hacia el resto de componentes de DirectX, como son DirectSound y DirectInput, y mete la cabeza en la inteligencia articial y las telecomunicaciones. Digno de mención son el capítulo acerca de la gestión de la escena y los detalles sobre mallas progresivas. No me gustó demasiado la maquetación con respecto a su antecesor. De las 514 páginas puedes saltarte las 60 primeras y luego ir dando saltos, el orden no es importante.

Sí, la portada es fea de cojones.

DirectX 9 Graphics The Definitive Guide to Direct3D
 
Este libro es un intento por cubrir todas las áreas habidas y por haber en torno a los gráficos, aunque se deja un apartado sin cubrir de gran importancia, como son los shaders. Empieza desde lo básico, da una base matemática y en pocas páginas nos encontramos iluminando la escena. Como puntos fuertes tiene la descripción de los archivos .X y su utilización; explica la animación por esqueletos y pieles y mediante keyframes; y es de los pocos que tratan temas de animación de texturas y el uso de DirectShow. En total 351 páginas, recomendable como libro de consulta.
Advanced Animation with DirectX
 
Se trata de un libro más especializado, concretamente en el mundo de la animación mediante código y la interpretación de formatos de animación estándar, como la animación por esqueleto / piel (incluyendo el efecto rag doll), morphing, movimiento de partículas, animación de texturas y efectos de animación de objetos blandos como la ropa. A destacar la explicación del uso de archivos .X de DirectX. Unas 346 páginas en las que no se llega a profundizar demasiado en las técnicas aunque se dan buenas bases. Lo bueno de éste libro es que vale para cualquier API gráfica, aunque en el título aparezca DirectX.
Real-time Rendering Tricks and Techniques in DirectX
 
Éste no lo he leído, más bien lo he usado como libro de consulta. Básicamente hace un breve recorrido por los elementos gráficos de Direct3D hasta que empieza a hablar de shaders. Contiene un montón de ejemplos tanto de pixel shaders como de vertex shaders; lo malo para los programadores que usen DirectX es que tales ejemplos no contienen código HLSL sino ensamblador, lo cual es bueno para los que usen otras APIs como OpenGL (si saben traducirlo a GLSL claro). Al final del libro describe técnicas como el motion blur y el picking, y dedica apartados al stencil buffer y a DirectShow. Unas 827 páginas muy recomendables.
The Complete Effect And HLSL Guide
 
Libro dedicado exclusivamente a shaders, tanto en ensamblador como en HLSL, y al framework de efectos de DirectX 9. Éste sí me lo leí de cabo a rabo porque necesitaba coger una buena base, que fuera especializada, acerca de los shaders. Tiene cosas muy malas y otras muy buenas. Una de las malas es que hay muchas partes que son copy&paste de la MSDN; si quisiera leer la MSDN me iría a la maldita MSDN. En cambio, una de las características más destacables es lo detallado de la información acerca de las equivalencias entre el lenguaje HLSL y el ensamblador, las capacidades de los distintos shader models, desde el 1.0 al 3.0, y una precisa descripción de cada instrucción de la GPU. Sabemos que, a día de hoy, contamos con el shader model 5.0 pero, si nos fijamos bien, nos damos cuenta de que desde la versión 3.0 no ha cambiado demasiado el abanico de funciones ni su comportamiento, aunque sí lo hayan hecho algunos elementos de la semántica y la capacidad del hardware (número de instrucciones permitidas, número de constantes…), casos para los que disponemos de la referencia del SDK o la MSDN. El otro aspecto a remarcar de éste libro es que es de los pocos sitios donde se habla del Effects Framework, que parece siempre como si lo guardaran en secreto por la poca información que se puede encontrar por ahí. A mí me aclaró muchas cosas, por eso lo recomiendo, o si ha salido alguna nueva versión del libro tanto mejor. Se hace cortito, 307 páginas de las que la mitad son tablas.
3D Math Primer for Graphics and Game Development
 
Bases matemáticas para muchas de las cosas que normalmente utilizamos y que damos por sentado. No me lo he leído, pero lo pongo aquí para que se sepa de su existencia. Son 435 páginas.
Geometric Tools for Computer Graphics  
El libro gordo de Petete, 1055 páginas para explicarnos una barbaridad de conceptos y algoritmos matemáticos. Los amantes del álgebra, los espacios vectoriales y la geometría se harán pajas con él. Echando un vistazo al índice (pues no me lo he leído aún) puede verse claramente cómo cubre un montón de aspectos útiles, como la formación de elementos geométricos, intersecciones, partición espacial binaria, triangulación, cálculos de distancias, etc. Por ahí se dice que tiene un montón de erratas, pero en su página web vienen todas aquellas que se han detectado (que oye, son unas cuantas). Recomendabilísimo.
Game Programming Gems  
He decidido poner toda la saga junta porque su descripción es similar y no quiero morirme escribiendo. Muchos ya la conoceréis, se trata de una serie de publicaciones que contienen perlas algorítmicas, técnicas geniales y muy extendidas en la programación de juegos en el ámbito profesional, escritas por veteranos de la industria en muchas ocasiones. Los que no sabíais de su existencia, quedaréis gratamente sorprendidos. Eso sí, yo miraría antes el índice de cada uno antes de comprarlo, ya que cada cual contiene métodos muy dispares, a todos los niveles, no sólo relacionados con los gráficos. Imprescindibles.
Introduction to 3D Game Programming with Direct3D 10
 
Homólogo del anteriormente descrito pero para DirectX 10 (además, escrito por el mismo autor). No lo he leído pero se ve que es lo mismo adaptado a la siguiente versión. Unas 500 páginas.
Advanced 3D Game Programming with DirectX 10
 
La temática es la misma que la de su homólogo de DirectX 9 (y otra vez, coincide el autor). Amplía el contenido acerca de la IA y habla de las curvas beizer y los quads. Este lo he leído un poco por encima. Un total de 527 páginas.
C++ for Game Programmers
 
Este post no es para libros de C++, pero el que he puesto está precisamente orientado a la programación de juegos, o aplicaciones gráficas. Muy recomensable, expone una gran cantidad de trucos, recomendaciones y optimizaciones que todo programador agradece, y siempre hay alguna cosa que se aprende por muy ducho que seas en la materia. Son 434 muy amenas para los amantes de C++.

Hay muchos más por ahí, pero esto es un post no la Biblioteca de Alejandría.

Etiquetas: , , ,

Mass Effect 2

Publicado el Martes 10 agosto 2010 en Videojuegos por Thund

Para ubicar al lector, debo poner por delante mi enorme pasión por la saga Mass Effect y su universo, de manera que pueda leer el texto desde la perspectiva adecuada. Quedé absolutamente cautivado por la riqueza de un mundo futurista totalmente reinventado. Los artífices de tal maravilla consiguieron encontrar un filón de creatividad en una mina ya agotada años atrás, lo cual me hizo darle un valor aún mayor. No importa cuál de sus ingredientes analice, cada uno es una perla en sí mismo. La forma de presentar la acción con un juego de cámaras sublime conseguía exprimir al máximo la narración. Por otro lado, nadie había dado jamás un toque tan sutil y personal a una interfaz de usuario, no sé realmente explicarlo, el menú principal resultaba relajante. La banda sonora, sin duda, fue el pilar básico de distinción, con esa música electrónica sosegada, de ondas cuadradas reverberantes, para momentos de poca o ninguna acción; y remezclada con una contundente orquestación de tinte militar para los acontecimientos bélicos o heróicos. Ni que decir tiene que ninguno de estos componentes tendría sentido sin un guión sobresaliente que los uniese, plagado de diálogos sustanciosos custodiados por un amplio abanico de decisiones que el jugador debía tomar. Recuerdo especialmente dos momentos: el primero, cuando visité la Ciudadela por primera vez, fui deslumbrado por una sencuencia de video envuelta de una sinfonía apabullante; el segundo es la recta final, las 2 grandes batallas, una espacial y otra, con Shepard a la cabeza, en el interior de la Ciudadela. Un broche épico.

Conocer que se esperaba una segunda parte supuso para mí una gran ilusión y un gran miedo, como suele ocurrir con las secuelas de obras maestras, difícilmente superables o aún incluso equiparables. A fin de que no se malinterprete mi análisis, adelantaré mi veredicto: no mejora ni alcanza a la primera parte, pero es…

La Atmósfera

Cuando uno adquiere un Mass Effect no espera ver tiros y explosiones, ni aporrear botones, ni romperse la cabeza una y otra vez contra puzzles irresolubles… eso está bien para juegos de esos de echar la tarde o pasar el rato. Lo que Mass Effect ofrece va mucho más allá del mero entretenimiento: es verdadero cine interactivo. La trama comienza siendo algo confusa e inesperada, me costó bastante acostumbrarme a los nuevos aliados y no echar de menos a los de la primera entrega aunque, según avanzaba, volvía a tener esa sensación de soltura, de pertenencia al mundo en el que se desarrolla la historia, volvía a ser absorbido por Mass Effect. Sin duda, en esta secuela el elemento que actúa como envolvente son los compañeros de Shepard, tanto los nuevos como los veteranos, a los que se ha dotado de un trasfondo insondable. En éste sentido sólo podría compararlo con un Final Fantasy, no se me ocurre ahora mismo otro juego que dé tanta vida a personajes secundarios. Cada uno tiene un pasado que conocemos mediante 2 misiones, principalmente, al reclutarlos y al hacerles un favor personal antes de que se embarquen en la empresa suicida final. Cada misión encierra oscuros secretos y giros de guión totalmente impredecibles, y nos permite descubrir un trozo más de la Vía Láctea que los de Bioware han creado para nosotros. En uno de estos quiebros argumentales podemos incluso ver morir a más de un amigo, de forma permanente (sí, ya, puedes cargar la partida), haciendo consciente al jugador de que cualquier cosa puede ocurrir. Y es que Mass Effect 2 es mucho más sombrío que su predecesor, tendremos que tratar con mercenarios sin escrúpulos y alienígenas sanguinarios; participaremos en ajustes de cuentas, presenciaremos asesinatos a sangre fría (con la posibilidad de evitar alguno que otro), intenciones obscenas y conductas deleznables, y todo ello, bajo la eterna duda de a quién estamos prestando servicio, si a una organización de nobles ideales o, como dicen los de la Alianza, a unos viles terroristas comandados por un ricachón insaciable.

Hay muchos más detalles argumentales que aumentan la credibilidad del universo del juego. Mencionaré uno en concreto (de lo que me acuerdo), que me hizo bastante gracia: en un bar hay sentados un turiano, un humano y un salariano, mientras una asari baila sobre la mesa para el salariano; el pobre, que no entiende nada, pregunta a sus colegas, con tono de fastidio y aburrimiento, por qué los humanos celebran así su despedida de soltero y qué pinta él allí si es salariano. A propósito, un 10 para las animaciones de las bailarinas asari. Prestando un poco de atención podemos darnos cuenta de cómo la personalidad de cada compañero de equipo afecta incluso a su forma de combatir (nada que ver la vehemencia de Jack con la técnica de Miranda). Me ha gustado ver otras cosas más sutiles, como la posibilidad de desmembrar mecas, o las reacciones de los enemigos cuando les disparas en una mano. Algo casi imperceptible y que me gustaría mencionar es la diferencia entre las despedidas de Shepard cuando seleccionas "Adiós" nada más empezar la conversación y cuando te despides después de charlar, las expresiones encajan en el contexto; para un ejemplo claro de esto, se puede ir a la Ciudadela y hablar con la recepcionista.

Aunque he dedicado una sección precisamente para todos aquellos aspectos que no me han gustado, iré adelantando alguno. Igual que hay puntos a favor de la inmersión, también los hay en contra; odio cuando terminas de hablar con algún personaje que, por ejemplo, te acaba de dar una misión, y de pronto te das la vuelta y ya no está; eso queda muy feo, podrían haberle puesto una contestación por defecto hasta que completes la misión o algo, pero no una abducción en toda regla. El otro caso que mencionaré está relacionado con las pruebas de virtud / rebeldía; resulta que, después de resolver los líos de familia de Miranda, ésta se volvió leal, hasta ahí todo normal. El caso es que, más tarde, tiene una acalorada discusión con Jack en el puente de mando, momento en el cual, por falta de virtud, tuve que elegir entre dar la razón a una o a otra. Bien, pues parece ser que arriesgar la vida para salvar a un familiar suyo tiene el mismo valor que hacerla quedar mal delante de una ex-convicta porque, desde ese momento, perdió su lealtad :S. Me parece absurdo.

Terminando este apartado, me referiré a las ya mencionadas cualidades artísticas de este juego. Perfectamente podría ponerme a ver jugar a otra persona mientras devoro un cubo de palomitas, como si fuera una película, más larga y más interesante que la mayoría. Uno no pierde detalle de lo que ocurre en cada escena. Incuso, más de una vez, la cámara te indica el camino a seguir o el evento a activar, sin desorientarte. Hay algunos planos en los que la composición de la imagen es impresionante, tómese de ejemplo cuando, en una de las explicaciones a Shepard, Jack habla a contraluz sobre un fondo naranja. Han cuidado la iluminación al máximo en cada área y cada toma (para mí, una de las cosas más difíciles de hacer bien). Admito que he flipado con esos detalles.

El Espacio y el Tiempo

El principal motivo por el que Mass Effect 2 no acaba en el momento en que "vences a los malos" es la vasta extensión del mundo de juego, la cantidad de planetas y ciudades, cada cual con su historia, la variedad de sociedades y especies… hay mucho por descubrir y sería una putada no poder hacerlo por haber acabado el guión principal. Hay muchísimas misiones secundarias (he de decir que varias de ellas son clones), algunas más originales y otras más típicas. Cada misión nos dará puntos de experiencia, dinero por parte de Cerberus y materiales que consigamos durante su realización; a veces, incluso se nos dará otro objetivo, formando cadenas. No obstante, dejando a un lado el número de horas jugadas, he tenido la sensación de que se me ha hecho muy corto. Quizá ha sido por conocer todo el camino a seguir desde el principio, es decir, habiendo avanzado muy poco en la trama, ya sabemos que tenemos que ir a reclutar a X personas, dónde están y a dónde hay que llevarlas (relé Omega 4). Es más, no hace falta ir a ningún otro sitio (vale sí, a un par) para acabar en el campo de batalla final. No me ha gustado ese planteamiento tan explícitamente lineal. Ojo, que no digo que Mass Effect 2 sea lineal, hay mucha libertad de acción y casi todos los acontecimientos pueden desencadenarse en cualquier orden. Personalmente, uno de los lugares que más me gusta visitar son los bares (como la vida misma); tienen un diseño muy orginal, ponen buena música y están llenos de intrigas…

El Control

Las opciones de movimiento de Shepard no han cambiado mucho. Vamos, intento recordar ahora mismo alguna diferencia con la primera entrega y no lo consigo. Sí han modificado la interfaz de usuario, tanto el menú principal como la interfaz de combate. En mi opinión, ambas han empeorado. El menú principal (cuando carga el juego) es un poco… feucho, simplón, oscuro. Los indicadores de combate, aunque ocupan menos, son también menos funcionales (me costaba bastante darme cuenta de qué aliado había perdido el escudo o estaba escaso de salud, por ejemplo). Ya no hay botones para dar órdenes de despliegue al equipo, sino que se utiliza el teclado directamente; a día de hoy, no sé cómo hacer para que un aliado ataque a un enemigo concreto con su arma de fuego que, por cierto, está limitada a 2 tipos en la mayoría de los casos (pistola y escopeta, rifle y pistola, etc.). Y ya que hablamos del combate, que alguien me explique la diferencia entre Mass Effect 2 y Gears Of War; sólo faltan los fusiles con sierra. No es que sea algo malo, pero ya podrían haber innovado un poquito al respecto. Lo siguiente sí que es sangrante… ¿a nadie más le ha pasado que el personaje se ha cubierto tras una caja cuando lo que quería era salir pitando de allí? Como si no hubiera más teclas que la puta barra de espacio. La usan para todo: correr, cubrirse, descubrirse, activar puertas y otros objetos, hablar… Son demasiadas funciones para una sola entrada. Me ha causado montones de problemas y varios cabreos, no costaba nada separar el correr del cubrirse, como mínimo. Otra crítica negativa y bien merecida se la tiene que llevar el dibujo de venas que enmarca la imagen cuando la salud escasea, ¡es horrible! Prefiero cien veces el de Clive Barker's Jericho.

Como males menores, citaré 2 fallos, uno de animación del modelo de Shepard y otro de diseño de escenarios. El primero consiste en que, si miramos hacia un punto cualquiera y de pronto echamos a correr, la cabeza de Shepard seguirá mirando en tal dirección aunque movamos la cámara. El segundo, ocurre cuando Shepard camina muy cerca de ciertas mesas (creo recordar que pasaba en algún laboratorio); el modelo pasa de caminar por el suelo a caminar sobre los muebles, siendo muy difícil hacerle bajar.

El Recuerdo

Se supone que han pasado 4 años desde la desaparición de Shepard e, irremediablemente, han cambiado muchas cosas. La fortuna ha favorecido más a unos excompañeros que a otros… mientras que Wrex se ha erigido como guía para su tribu, Garrus se ha convertido en una sombra errante que se toma la justicia por su mano. Sin duda, el paso de Shepard por sus vidas los marcó, como también afectó a muchos otros personajes con sus decisiones. Tal y como prometían, las acciones realizadas durante Mass Effect 1 tienen consecuencias en Mass Effect 2, aunque la relevancia de las mismas en la historia es nimia. Nos encontraremos con una gran cantidad de personajes de la primera parte, tanto ex-camaradas como tripulantes de la Normandía, así como antiguos enemigos o meros personajes secundarios. De la misma manera, las decisiones tomadas en este juego tendrán su eco en la tercera entrega. Iba a ponerme a comparar capítulos, pero sólo mencionaré un cambio, a mi parecer innecesario, que le hace perder un minipunto a Mass Effect 2: ¡echo de menos el contundente sonido del antiguo fusil de asalto!

La Contraparte

Y ahora la sección de las cagadas. Sí, voy a tirar algunas piedras más sobre esta gloriosa obra. Luego me autolesionaré jugando al WOW o alguna moñada de esas… no os preocupéis.

  • Cuando empieza una nueva partida y tiene lugar el ataque a la Normandía, los efectos de los rayos / lasers son horribles. Vaya primera impresión que me llevé.
  • Cuando reaniman a Shepard después de desaparecer, en la nave de Cerberus, tiene lugar un asalto y Shepard debe huir. Justo en la puerta de la primera sala podemos ver una ¿roca? flotando, totalmente inmóvil, en la puerta.
  • Continuamente, sobre todo en primeros planos, se nota un defecto en el sombreado de las caras de los modelos, como una especie de z-fighting.
  • En las instalaciones donde experimentaban con Jack no para de llover. Lo raro es que si nos ponemos a cubierto, a un metro de la parte descubierta, sigue lloviendo a través del techo :S .
  • Al final se pierden muchísimos momentos emotivos. En determinados finales mueren compañeros y da la sensación de que a Shepard se la suda. Da igual que sea Tali, Garrus o Legion, no hay problema en dejar a los caídos atrás. Me parece que ante un hecho tan trascendental para la historia no le han dado un trato mínimamente digno.
  • Por último, haciendo referencia de nuevo al final del juego, la explicación que dan acerca de la forma del segador… la forma de matarlo… el hecho de activar la bomba y que no corra el tiempo mientras lo matan… en fin. Una gran decepción, nada convincente.

Conclusión

Sé que me dejo cosas en el tintero (actos de virtud / rebeldía, desaparición del coche, minería…) pero no quiero acabar escribiendo un libro. Mass Effect 2 conserva la magia que hizo grande a su predecesor, dejando ese regusto de haber aprovechado el tiempo en los paladares más exigentes. Si bien tiene algunos fallos, éstos son de sobra compensados por las viejas virtudes y las nuevas sorpresas argumentales.

Esperando con ansias el cierre de la trilogía :D .

 

[Grooveshark]Banda sonora Mass Effect 2

[Grooveshark]Banda sonora Mass Effect 2: Club Dark Star

[Grooveshark]Banda sonora Mass Effect 2: Club Afterlife

 

[Youtube]Cachondeo freak: Legion bailando

[Youtube]Cachondeo freak: Creación de personaje Michael Jackson


Etiquetas: ,