Inteligencia Artificial en Videojuegos

IA videojuegos.jpg

La Inteligencia Artificial (IA) siempre ha formado parte de los videojuegos, siendo los primeros oponentes y obstáculos para jugadores en los arcades. Gracias a la IA, a veces pareciera que los personajes controlados por computadora son verdaderamente inteligentes, aunque en otros casos parezca que no tienen idea de lo que hacen.

Incluso si se llama IA a los programas en videojuegos, en realidad son muy diferentes a las técnicas tradicionales con las que se trabaja en IA tradicional; y debido a la diferencia entre las metas de IA para videojuegos e IA en general, se desarrollaron técnicas específicamente para videojuegos mientras la IA general maduraba por su cuenta [1].

Uno de los usos más comunes de IA en videojuegos es el control de Non-Player Characters (NPC, traducido como Personaje No Jugador). La forma más popular de controlar a los NPCs es con árboles de decisión [2], en estos casos se programan todos los eventos a los que se puede enfrentar el NPC y su reacción. También se usan Autómatas Finitos para dictar el comportamiento de NPCs [3], son similares a los árboles de decisión en que se programan todos los eventos posibles, pero en este caso el flujo es dado por transiciones entre estados.

El algoritmo Monte Carlo Search Tree (MCST, en español se traduce como Árbol de Búsqueda Monte Carlo) es un método más avanzado de control de NPCs en el que se consideran todos los movimientos posibles inmediatos y futuros, y posteriormente se calcula la “ganancia” esperada de cada rama para elegir la mejor opción disponible. Debido a la complejidad de algunos juegos, sería imposible para el MCST calcular todos los movimientos desde el inicio del juego. En esos casos se eligen los primeros movimientos al azar, siendo más impredecibles para los jugadores [3].

Otro uso común de IA es pathfinding, o búsqueda de ruta, para calcular el mejor camino para viajar de un punto a otro tomando en cuenta obstáculos y terreno. El pathfinding se usa tanto para movimiento de NPCs como para movimiento automático de jugadores; por ejemplo, al seleccionar una ubicación en un mapa y dejar que los personajes se muevan por su cuenta en un juego de Real-Time Strategy (RTS, o Estrategia en Tiempo Real).

Los métodos anteriores todos estaban relacionados con NPCs, pero hoy en día se usa la IA en otros aspectos de los videojuegos. Cuatro áreas de oportunidad fueron resaltadas por Yannakakis [1]:

·       Modelado de la experiencia del jugador: Se refiere a modificar elementos del juego para mejorar la experiencia de los jugadores. Ejemplos de esto van desde dificultad dinámica hasta AI Directors (Directores de IA), estos últimos toman diferentes medidas para determinar cuándo poner a los jugadores en situaciones más estresantes y cuándo darles un descanso.

·       Generación por procedimientos: Crear elementos del juego de manera automática, puede tratarse de creación de niveles, creación de terreno, etc. Los juegos del género roguelike crean los niveles de manera automática con esta tecnología.

·       Minería de datos sobre comportamiento de usuarios: Se obtienen datos que antes eran imposibles de recolectar para los desarrolladores. Se responden preguntas como: ¿cómo juegan los usuarios?, ¿están jugando como se tenía pensado?, ¿por qué dejan de jugar un juego?, etc.

·       Enfoques diferentes de IA de NPCs: Ahora se intenta aumentar la credibilidad de los NPCs y sus interacciones sociales, en lugar de concentrarse en el comportamiento individual.

 

Fuentes

[1] Yannakakis, G. N. (Mayo de 2012). Game AI revisited. En Proceedings of the 9th conference on Computing Frontiers (pp. 285-292).

[2] Good, O. S. (5 de Agosto de 2017). Skyrim mod makes NPC interactions less scripted, more Sims-like. Obtenido de Polygon: https://www.polygon.com/2017/8/5/16101700/social-skyrim-mod-ai-research

[3] Lou, H. (28 de Agosto de 2017). AI in Video Games: Toward a More Intelligent Game. Obtenido de Science in the News: https://sitn.hms.harvard.edu/flash/2017/ai-video-games-toward-intelligent-game/

 

Lic. Luis Roberto Bustos Vargas

Guest User