19 octubre 2023

Game AI Pro 360 - Guide to Tactics and Strategy


Hay gran cantidad de libros relativos a la Inteligencia Artificial (IA), pero la mayoría o son muy académicos, o asumen un enfoque meramente divulgativo o se centran en temas más aplicados como el machine learning y el análisis de datos. La bibliografía sobre IA enfocada a los videojuegos es muy escasa, sobre todo si la buscas en formato digital (en mi caso Kindle).

Sin embargo, uno de los grandes autores en este campo es Steve Ravin, no tanto por sus aportaciones propias sino por su labor compendiando las de otros en sus obras. Suya es la serie de libros AI Game Programming Wisdom de la que este es uno de sus últimos exponentes. Como los anteriores, cada capítulo de este libro es un artículo de un autor diferente, desarrollando un concepto relativo a la IA en videojuegos. A diferencia de los libros anteriores, que tenía artículos que cubrían áreas de lo más variopintas, en este todos los artículos se centran en la faceta del análisis y la toma de decisiones tácticas y estratégicas.

El valor principal del libro es que los autores de los distintos capítulos son profesionales especializados en este campo que realizan su labor en reputados estudios de videojuegos. Así que los problemas, matices y enfoques que proponen están respaldados por su gran experiencia. La solvencia de los autores se nota también en el aire académico que desprende cada una de sus páginas. 

Sin embargo, el principal handicap del libro es precisamente ese: la procedencia laboral de sus autores. Al venir de grandes estudios deben estar sujetos a clausulas de confidencialidad y supongo que esa es la razón por la que no entran al detalle sobre las implementaciones concretas, dado que podrían comprometer la propiedad intelectual de sus empresas. Esos autores pueden explicar los conceptos generales adoptados en sus juegos, pero no pueden desvelar el detalle de cómo los han puesto en práctica sin comprometer el core de esos juegos.

Por eso, el libro se mueve en un nivel muy conceptual en el que plantean cosas realmente muy interesantes, pero que se queda muy corto a la hora de explicar cómo lo han implementado. Los fragmentos de código brillan por su ausencia y cuando aparecen no pasan de mero pseudocódigo que en realidad no acaba de explicar por completo los conceptos planteados. Ha habido capítulos completos en los que he perdido el hilo a las pocas páginas y no he sabido completar los huecos que iban dejando los autores. En otros sí que he entendido todo lo que planteaban, pero me quedaba con las ganas de un ejemplo de implementación real.

Probablemente me falte el nivel que tienen los autores, pero mi conclusión es que desde luego no es un libro para introducirse en el género de la IA para videojuegos. Para ello, antes que este libro recomiendo el de AI for Games de Ian Millington. Este último libro, sí que va desde un nivel de iniciación a uno medio-alto y con todo lujo de detalles. Pensaba que este libro ya me dejaba preparado para otros, ya de nivel intermedio, pero se ve que no para este de Steve Ravin.

¿Lamento haberlo leído? No. Cuando he conseguido cogerle el hilo a los capítulos los he disfrutado y he sacado un par de ideas que aunque no sepa aún cómo implementarlas sí que me han resultado lo suficientemente sugerentes para intentarlo a la primer oportunidad.

Veredicto del libro: no sirve para iniciarse, pero es una lectura interesante para que te vayan sonando los conceptos que mueven la IA de los grandes videojuegos.

09 agosto 2023

Unity Turn-Based Strategy Game: Intermediate C# Coding

Portada del curso
Hace unas semanas terminé el curso "Unity Turn-Based Strategy Game: Intermediate C# Coding", disponible en Udemy. 

Se trata de un curso creado por el equipo de GameDev.tv y, sobre todo, por un autor ya clásico de tutoriales de Unity: Code Monkey.

El curso es de pago pero, aunque a veces lo ponen a precios escandalosos, le pasa lo que al resto de los cursos de Udemy: que a poco que esperes unos días, con el curso en tu wishlist, te lo acaban ofertando a unos 12 €. 

Ten en cuenta que es en inglés, así que debes estar cómodo en ese idioma para entender las explicaciones. No tiene subtítulos en español, pero sí en inglés así que yo los he dejado activados para cuando la pronunciación de alguna palabra se me ha resistido.

El contenido es un tutorial muy detallado sobre cómo crear en Unity algunas de las mecánicas habituales en juegos tácticos por turnos, del tipo X-Com. Si bien es cierto que a nivel gráfico el juego desarrollado no deja de ser una maqueta, es cierto que sí que se explican, entre otras, las principales mecánicas:

  • Selección de objetos con ratón.
  • Gestión de rejillas para el escenario.
  • Movimiento y búsqueda de caminos sobre la rejilla.
  • Gestión de cámaras.
  • HUD del juego.
  • Sistema de turnos.
  • Animación de caracteres.
  • Sistema de vida y daños.
  • Efectos visuales, como estelas o explosiones.
En general, la calidad de los contenidos es muy alta y la programación utilizada es limpia, aunque en el apartado de las rejillas me queda la duda de por qué ha creado su propia rejilla desde cero en vez de usar el componente que incluye Unity. También me ha dejado un poco frío la parte de la implementación de la IA de los enemigos, que es mínima. Aún así, hay otros apartados que no he visto en otros tutoriales o libros, como el de los objetos destruibles o la búsqueda de caminos en entornos con múltiples plantas.

Así que el curso me ha encantado. Me parece muy adecuado para alguien que quiere pasar del nivel básico de Unity a temas más intermedios, sobre todo si planeas que tu próximo juego sea de tablero o por turnos. Me ha dejado tan buen sabor de boca que probablemente acabe comprando también el curso que tiene el mismo autor sobre cómo hacer un juego de Tower Defense en Unity. Si finalmente lo hago, diré lo que me ha parecido por aquí.