08 mayo 2024

"Programming Game AI by Example" por Mat Buckland

No es fácil encontrar buenos libros sobre inteligencia artificial (IA) aplicada a juegos. La mayoría no pasan del nivel introductorio y cuando llegan a explicar el algoritmo A*, lo consideran ya material avanzado y lo dejan ahí.

En mi opinión, la gran joya en esta materia es el "AI for Games" de Ian Millington, que combina unos contenidos vastísimos con unas explicaciones claras, detalladas y realmente pertinentes para el desarrollo de juegos. Desde que lo leí no me había encontrado con otra obra que se le pudiera comparar hasta que me topé con este al que le dedicamos el artículo. No en vano, el libro de Buckland fue una de las referencias de Millington.

Es cierto que "Programming AI by Example" no alcanza en amplitud de contenidos a "AI for Games", pero sí es cierto que los que trata lo hace con gran profundidad y claridad. También hay que reconocerle que trata varios temas ausentes de la obra de Millington, como la integración de sistemas de scripting en nuestros juegos (para simplificar el diseño de los algoritmos de IA) y el capítulo sobre agentes guiados por objetivos.

El libro está lleno de buenas figuras ilustrativas que permiten seguir las explicaciones. 

A diferencia de Millington, las implementaciones no las ilustra en pseudocódigo, sino en C++; lo que para mi gusto es un punto negativo porque no se trata precisamente del lenguaje más intuitivo del mundo. También es cierto que el libro acumula ya algunos años y, cuando se publicó por primera vez, la única alternativa para crear juegos era C++. En todo caso, las explicaciones son lo suficientemente extensas y claras como para que el entendimiento pleno del código no sea imprescindible.

Me ha llamado también la atención la insistencia en mostrar diagramas de UML de las jerarquías de clases de las diferentes implementaciones. Entiendo por qué lo hace y tampoco es que sobren, pero es algo que me ha hecho sonreír por lo pasado de moda que está. Ya no se suelen ver diagramas de UML en los libros.

A pesar de todas esas señales del tiempo transcurrido desde la publicación del libro, el campo de la IA para juegos no ha avanzado tanto como para dejar desfasado su contenido. Estos siguen estando vigentes. Si acaso, se echan en falta algunas herramientas que han surgido posteriormente como los árboles de comportamiento o el aprendizaje neuronal.

Conclusión: el libro me ha parecido excelente. Recomiendo que lo leas lectura  antes del de Millington. De esa manera, se puede potenciar su utilidad como pieza introductoria para facilitar la comprensión posterior del Millington y ampliar con este lo que deja pendiente el de Buckland. Con esta aproximación creo que cubrirás lo mejor que se ha escrito hasta el momento en el campo de la IA para juegos.