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. 

24 diciembre 2023

"Godot 4 Game Development Cookbook" por Jeff Johnson

Este libro formaba parte de un paquete que sacó hace algún tiempo Humble Bundle, con libros para desarrollar juegos con Unity y con Godot.

El libro ofrece una serie de tutoriales sobre casos de uso específicos de Godot. Hay que reconocer que el índice es sugerente y cubre temas de nivel intermedios, ideales si tienes ya cierta experiencia con otros engines y acabas de terminar los tutoriales iniciales de Godot.

Hay una introducción a las funcionalidades avanzadas recién introducidas en GDScript 2.0. Se explica cómo introducir niebla volumétrica en los escenarios, sistemas de partículas decals, búsqueda de caminos, modelos deformables, tiles, emisores de sonido y se ofrece una aproximación inicial a las funcionalidades multijugador de Godot.

Ofrece también recetas sobre shaders, pero son tas superficiales y el tema tan extenso que esas recetas me han parecido prácticamente inútiles.

Las diferentes recetas siguen una estructura común. Primero se ofrece una descripción muy resumida de lo que se quiere conseguir con la receta. Luego hay una sección "How to do it" donde se enumeran los pasos a realizar a través del editor de Godot. Por últimos hay una sección de "How it works..." que se supone que debería explicar con profundidad los pasos que se han realizado en la sección anterior.

La selección de temáticas para las recetas me parece muy adecuada y sugerente. La descripción de las tareas a realizar es clara y no he tenido problemas para seguirlas. Aunque en alguna faltaba alguna cosilla para que funcionase y he tenido que completarla de mi cosecha. En general, he disfrutado las siguientes prácticas porque me han permitido descubrir lo lejos que puede llegar Godot. 

Sin embargo, donde el libro hace aguas es en las secciones "How it works...". Vale que la sección "How to do it" se limite a enumerar pasos, pero en la de "How it works" se supone que es donde debería explicar con detalle por qué se han llevado a cabo los pasos anteriores y así profundizar en las funcionalidades del engine. En vez de eso, lo que hace el autor es volver a contar las tareas realizadas, pero de manera literaria en vez de enumerada. Vamos, que la sección "How it works" no aporta absolutamente a la de "How to do it". Si más o menos has ido entendiendo los pasos de la sección "How to do it" te puedes ahorrar la de "How it works" porque no te va a aportar nada. Eso limita enormemente el valor aportado por el libro. Mi consejo, si lees este libro, es que consultes la documentación de Godot de los diferentes componentes conforme vayas avanzando por los pasos de los diferentes tutoriales. Así podrás suplir parcialmente la falta de explicaciones del autor.

En mi opinión, se trata de un nuevo ejemplo de la nula labor editorial de Packt. Creo que el problema del libro no es que su autor desconozca el tema sino de que la editorial no repasó el libro y no le alertó de que estaba enfocando mal las secciones "How it works". Packt sigue siendo una máquina de sacar libros donde prima sobre todo la cantidad sobre la calidad.

No me arrepiento de haber leído este libro. Realmente me ha permitido cacharrear con Godot y convencerme de que es un engine viable para hacer juegos de todo tipo. Tampoco es que haya muchos libros sobre Godot 4 en el mercado. La mayoría son de hecho los de Packt, así que hay poca alternativa. Lo que pasa es que no me parece que el libro valga su precio completo. Rebajado, o incluido en un paquete como los de Humble Bundle, puede ser, pero no creo que merezca la pena el precio habitual que tiene. Antes que eso hay múltiples tutoriales en Youtube mucho mejores y más asequibles.