07 enero 2024

"Artificial Intelligence in Games" por Paul Roberts

El mejor libro, con diferencia, que he leído hasta ahora sobre cómo desarrollar inteligencia artificial para juegos es "AI for Games" de Ian Millington. El problema es que no hay muchos libros en el mercado que traten de manera práctica la rama de la IA orientada a videojuegos. Los que hay o son muy teóricos o de quedan en un par de tópicos sobre búsquedas de caminos y uso de máquinas de estados. Por eso, cuando encontré este libro de Paul Roberts lo leí con avidez.

Afortunadamente, tiene un enfoque práctico e introductorio. A alguien que se quisiera introducir en el mundo del AI para juegos le recomendaría que lo leyese antes del de Millington, ya que este de Roberts no llega a tanta profundidad, pero está escrito en un lenguaje más llano. Es ideal para un primer contacto con las diversas vertientes de la IA usada en juegos, para luego profundizar con el Millington.

Los temas que trata son variados e interesantes: inteligencia de movimientos (steering behaviours), análisis de terrenos con mapas de influencia, búsqueda de caminos, estructuras de decisión, lógica difura, Minimax, algoritmos genéticos y redes neuronales. A diferencia del Millington, con este de Roberts no acabarás con los conocimientos suficientes para ponerte a implementar tu propia versión, pero sí te habrás hecho una idea de los conceptos principales lo que te simplificará mucho las cosas al emprender la lectura de textos más detallados.

La versión digital de Kindle tiene algunos defectos que en algunos momentos me han dificultado el avance, principalmente que las fórmulas no están bien formateadas y han perdido la mayor parte de los operadores en la conversión a digital. Así que es muy difícil hacerse una idea de la fórmula sólo con lo que viene en ella. Por suerte, las fórmulas no son abundantes ni complejas, por lo que al final acabas averiguando lo que quieren decir, aunque tienes que darle varias vueltas. La verdad es que no entiendo por qué no ha hecho como con los diagramas, que son dibujos hechos a manos y digitalizados, pero que al menos se entienden. Si hubiera hecho lo mismo con las fórmulas no habría habido problema.

Pero más que la teoría, cuya profundidad ya he dicho que es bastante escasa, donde brilla realmente el libro es con la parte práctica. El autor ha desarrollado en Unity una serie de minijuegos para probar en ellos los conceptos del libro. Así que, después de la parte teórica de cada capítulo, hay otra parte en la que te guía, paso a paso, a modo de tutorial, para implementar esos conceptos para crear una AI que se enfrente a nosotros en el minijuego. Hay que reconocer que el autor se ha esforzado por crear unos minijuegos complejos, bien presentados y muy adecuados como plataforma de pruebas de los conceptos teóricos. Creo que esto es el principal valor del libro. Hay otros que explican mejor y más a fondo los diferentes conceptos, pero se quedan en la teoría. Tener la oportunidad de cacharrear y probar estos conceptos directamente en un juego es algo que sólo me ha ofrecido este libro por el momento.

Así que es un libro que recomiendo. Reconociendo sus limitaciones y defectos, creo que es un libro que aporta valor dentro del escueto ecosistema de libros sobre inteligencia artificial para juegos.