Lectura recomendada
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.
























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.
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…
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!