# Inteligencia artificial (videojuegos)

La inteligencia artificial en los videojuegos se utiliza para generar comportamientos responsivos, adaptativos o inteligentes principalmente en personajes no jugables (NPC) similares a la inteligencia humana. La inteligencia artificial ha sido una parte integral de los videojuegos desde sus inicios en 1948, visto por primera vez en el juego Nim.Se utiliza para mejorar la experiencia del jugador en lugar del aprendizaje automático o la toma de decisiones.
Durante la «época dorada de los videojuegos arcade», la idea de oponentes de IA se popularizó en gran medida en forma de niveles de dificultad graduados, patrones de movimiento distintos y eventos en el juego que dependían de la participación del jugador. Los juegos modernos a menudo implementan técnicas existentes, como la búsqueda de caminos y los árboles de decisión, para guiar las acciones de los NPC. La IA se utiliza a menudo en mecanismos que no son inmediatamente visibles para el usuario, como la extracción de datos y la generación de contenido procedimental.Uno de los ejemplos más infames de esta tecnología NPC y niveles de dificultad graduales se puede encontrar en el juego «Punch-Out!!».
A diferencia de lo que se podría pensar, la IA en los videojuegos no se enfoca en desarrollar una inteligencia artificial completa capaz de pasar el test de Turing y simular una mente humana. En su lugar, se centra en crear comportamientos específicos y realistas para los personajes no jugadores.

## Descripción

El término «IA de juego» («game ai» en inglés) se utiliza para referirse a un amplio conjunto de algoritmos que también incluyen técnicas de la teoría del control, la robótica, la infografía y la informática en general, y, por lo tanto, la IA de los videojuegos a menudo puede no constituir una «verdadera IA» en el sentido de que dichas técnicas no necesariamente facilitan el aprendizaje por computadora u otros criterios estándar, constituyendo únicamente «computación automatizada» o un conjunto predeterminado y limitado de respuestas a un conjunto predeterminado y limitado de entradas.
Expertos en el campo de la inteligencia artificial han argumentado que la IA de videojuegos no es inteligencia verdadera, sino una palabra de moda publicitaria utilizada para describir programas informáticos que usan simples algoritmos de clasificación y coincidencia para crear la ilusión de comportamiento inteligente, mientras otorgan al software un «aura engañosa» de complejidad y avance científico o tecnológico.Dado que la IA del juego para NPC se centra en la apariencia de inteligencia y una buena jugabilidad dentro de las restricciones del entorno, su enfoque es muy diferente al de la IA tradicional.

## Historia

Los juegos siempre han sido un área de investigación en inteligencia artificial desde sus inicios. Uno de los primeros ejemplos de IA es el juego computarizado Nim, creado en 1951 y publicado en 1952. A pesar haber sido tecnología avanzada para su época, 20 años antes, el juego de arcade «Pong», tenía la forma de una caja relativamente pequeña y podía ganar regularmente incluso contra jugadores altamente hábiles.En 1951, utilizando la máquina Ferranti Mark 1 de la Universidad de Mánchester, Christopher Strachey programó un juego de damas y Dietrich Prinz programó uno para ajedrez.Estos estuvieron entre los primeros programas de computadora jamás escritos. El programa de damas de Arthur Samuel, desarrollado a mediados de los años 50 y principios de los 60, finalmente alcanzó la habilidad suficiente para desafiar a un aficionado experto.El trabajo en damas y ajedrez culminaría con la derrota de Garry Kasparov por la computadora Deep Blue de IBM en 1997. Los primeros videojuegos desarrollados en las décadas de 1960 y 1970, como Spacewar!, Pong y Gotcha (1973), fueron juegos implementados con lógica discreta y basados estrictamente en la competencia entre dos jugadores, sin inteligencia artificial.
Los juegos que presentaban un modo para un jugador con enemigos comenzaron a aparecer en la década de 1970. Los primeros juegos notables para salas de juegos aparecieron en 1974: Speed Race de Taito (juego de carreras) y Qwak y Pursuit de Atari (juego de disparos con pistola de luz y simulador de combate aéreo respectivamente). Dos juegos de ordenador basados en texto, Star Trek (1971) y Hunt the Wumpus (1973), también tenían enemigos. El movimiento enemigo se basaba en patrones almacenados. La incorporación de microprocesadores permitiría más cálculo y elementos aleatorios superpuestos en patrones de movimiento.
Fue durante la «época dorada de los videojuegos arcade» que la idea de oponentes con inteligencia artificial se popularizó ampliamente, gracias al éxito de Space Invaders (1978), que presentaba un nivel de dificultad creciente, patrones de movimiento distintos y eventos dentro del juego basados en funciones hash generadas a partir de las acciones del jugador. Galaxian (1979) presentó movimientos enemigos más complejos y variados, incluyendo maniobras individuales de enemigos que se salían de la formación. Pac-Man (1980) introdujo patrones de inteligencia artificial en los juegos de laberintos, con la peculiaridad adicional de diferentes personalidades para cada enemigo. Karate Champ (1984) luego introdujo patrones de inteligencia artificial en los juegos de lucha. First Queen (1988) fue un juego de rol de acción táctica que presentaba personajes que podían ser controlados por la IA de la computadora para seguir al líder.El videojuego de rol Dragon Quest IV (1990) introdujo un sistema de «tácticas» que permitía al jugador ajustar las rutinas de inteligencia artificial de los NPC durante la batalla, un concepto que luego fue presentado en el género de acción RPG por Secret of Mana (1993).
Juegos de fútbol como Madden Football, Earl Weaver Baseball y Tony La Russa Baseball basaron su IA en un intento de duplicar en la computadora el estilo de entrenamiento o gestión de la celebridad seleccionada. Los títulos deportivos posteriores permitieron a los usuarios «sintonizar» variables en la IA para producir una estrategia de gestión o entrenamiento definida por el jugador.
La aparición de nuevos géneros de videojuegos en los años 90 impulsó el uso de herramientas formales de inteligencia artificial como las máquinas de estados finitos. Los juegos de estrategia en tiempo real exigieron a la IA manejar muchos objetos, información incompleta, problemas de búsqueda de rutas, decisiones en tiempo real y planificación económica, entre otras cosas. Por ejemplo, Herzog Zwei (1989) tenía un sistema de búsqueda de rutas prácticamente «roto», mientras que Dune II (1992) atacaba la base del jugador en línea recta y usaba numerosos trucos.Aunque los primeros juegos del género tuvieron problemas notorios, los juegos posteriores del género exhibieron una IA más sofisticada.
Juegos posteriores han utilizado métodos de IA de tipo Top-down y bottom-up, como el comportamiento emergente y la evaluación de las acciones del jugador en juegos como Creatures o Black & White. Façade (historia interactiva) fue lanzado en 2005 y utilizó diálogos interactivos múltiples y la IA como aspecto principal del juego.
Los juegos han proporcionado un entorno para desarrollar inteligencia artificial con aplicaciones potenciales más allá. Algunos ejemplos incluyen a Watson, una computadora que juega Jeopardy!, y el torneo RoboCup, donde se entrenan robots para competir en fútbol.

## Usos
### Videojuegos modernos

Los algoritmos heurísticos/de IA de juegos se utilizan en una amplia variedad de campos bastante dispares dentro de un juego. El más conocido es el control de cualquier NPC del juego, aunque el «scripting» (árbol de decisiones) es actualmente el medio de control más común.Estos árboles de decisiones escritos a mano a menudo resultan en «estupidez artificial», como comportamientos repetitivos, pérdida de inmersión o comportamientos anormales en situaciones que los desarrolladores no planearon.La búsqueda de camino, otro uso común de la IA, es muy utilizada en juegos de estrategia en tiempo real. La búsqueda de camino es el método para determinar cómo llevar un personaje no jugable (NPC) de un punto a otro en un mapa, teniendo en cuenta el terreno, los obstáculos y posiblemente la «niebla de guerra».Los videojuegos comerciales suelen utilizar un "buscador de caminos basado en cuadrícula" rápido y simple, en el que el terreno se mapea en una cuadrícula rígida de cuadrados uniformes y se aplica un algoritmo de búsqueda de caminos como A* o IDA* a la cuadrícula.En lugar de simplemente una cuadrícula rígida, algunos juegos usan polígonos irregulares y ensamblan una malla de navegación a partir de las áreas del mapa hacia las que los NPC pueden caminar.Como tercer método, a veces resulta conveniente para los desarrolladores seleccionar manualmente «puntos de ruta» que los personajes no jugables (NPCs) deben utilizar para navegar; el costo es que dichos puntos de ruta pueden crear movimientos de aspecto artificial. Además, los puntos de ruta tienden a funcionar peor que las mallas de navegación en entornos complejos.La navegación en juegos de estrategia dinámica con un gran número de unidades, como Age of Empires (1997) o Civilization V (2010), a menudo funciona mal; Las unidades a menudo se interponen en el camino de otras unidades.
En lugar de mejorar la IA del juego para resolver adecuadamente un problema difícil en el entorno virtual, suele ser más rentable simplemente modificar el escenario para hacerlo más manejable. Si la búsqueda de rutas se atasca en un obstáculo específico, un desarrollador puede simplemente mover o eliminar el obstáculo.Por ejemplo, en Half-Life (1998), el algoritmo de búsqueda de caminos a veces fallaba en encontrar una manera razonable para que todos los NPC escaparan de una granada lanzada; en lugar de permitir que los PNCs intentaran escapar torpemente y arriesgarse a parecer estúpidos, los desarrolladores los programaron para que se agacharan y se cubrieran en su lugar en esa situación.

### Generación de contenido procedimental (PCG)

La generación de contenido procedimental (PCG) es una técnica de inteligencia artificial para crear contenido dentro del juego de forma autónoma a través de algoritmos con una mínima participación de los diseñadores. El PCG se utiliza típicamente para generar dinámicamente características del juego como niveles, diálogos de NPCs y sonidos. Los desarrolladores ingresan parámetros específicos para guiar a los algoritmos en la creación de contenido. El PCG ofrece numerosas ventajas tanto desde el punto de vista del desarrollo como de la experiencia del jugador. Los estudios de juegos pueden gastar menos dinero en artistas y ahorrar tiempo en producción.Los jugadores disfrutan de una experiencia nueva y altamente reproducible, ya que el juego genera contenido nuevo cada vez que juegan. El PCG permite que el contenido del juego se adapte en tiempo real a las acciones del jugador.

#### Niveles generados procedimentalmente

Los algoritmos generativos (una forma rudimentaria de IA) se han utilizado para la creación de niveles durante décadas. El icónico juego de computadora de mazmorras Rogue de 1980 es un ejemplo fundamental. Los jugadores tienen la tarea de descender a través de los niveles cada vez más difíciles de una mazmorra para recuperar el Amuleto de Yendor. Los niveles de la mazmorra se generan algorítmicamente al comienzo de cada juego. El archivo de guardado se elimina cada vez que el jugador muere.La generación algorítmica de mazmorras crea una jugabilidad única que de otro modo no estaría ahí, ya que el objetivo de recuperar el amuleto es el mismo cada vez.
Las opiniones sobre la generación total de niveles como se ve en juegos como Rogue pueden variar. Algunos desarrolladores pueden ser escépticos sobre la calidad del contenido generado y desean crear un mundo con una sensación más «humana», por lo que usarán PCG con más moderación.Por consiguiente, solo utilizarán la generación procedural para crear componentes específicos de un nivel diseñado manualmente. Un ejemplo notable de esto es el juego de disparos táctico de Ubisoft, Tom Clancy's Ghost Recon Wildlands (2017). Los desarrolladores utilizaron un algoritmo de búsqueda de caminos entrenado con un conjunto de datos de mapas reales para crear redes de carreteras que serpentearan a través de aldeas hechas a mano dentro del mundo del juego.
A medida que la IA ha avanzado, los objetivos de los desarrolladores están cambiando hacia la creación de repositorios masivos de niveles a partir de conjuntos de datos. En 2023, investigadores de la Universidad de Nueva York y la Universidad de Witwatersrand entrenaron un gran modelo de lenguaje para generar niveles al estilo del juego de rompecabezas Sokoban de 1981. Descubrieron que el modelo sobresalía en la generación de niveles con características específicas solicitadas, como el nivel de dificultad o el diseño.Sin embargo, los modelos actuales, como el utilizado en el estudio, requieren grandes conjuntos de datos de niveles para ser efectivos. Concluyeron que, aunque prometedores, el alto costo de datos de los grandes modelos de lenguaje supera actualmente los beneficios para esta aplicación.

#### Música y sonido generados procedimentalmente

La música de un videojuego es una expresión importante del tono emocional de una escena para el jugador. Los efectos de sonido, como el ruido de un arma golpeando a un enemigo, ayudan a indicar el efecto de las acciones del jugador. Generar estos en tiempo real crea una experiencia atractiva para el jugador porque el juego es más responsivo a su entrada.Un ejemplo es el juego de aventuras Proteus de 2013, donde un algoritmo adapta dinámicamente la música según el ángulo desde el que el jugador ve el paisaje del juego.

### Árbol de búsqueda Monte Carlo (MCTS)

El método de búsqueda de árbol de Monte Carlo proporciona una experiencia de juego más atractiva al crear obstáculos adicionales que el jugador debe superar.El MCTS consiste en un diagrama de árbol en el que la IA esencialmente juega al tic-tac-toe. Dependiendo del resultado, selecciona un camino que produce el siguiente obstáculo para el jugador. En videojuegos complejos, estos árboles pueden tener más ramas, siempre que el jugador pueda encontrar varias estrategias para superar el obstáculo. En la encuesta del año 2022,se podía obtener información sobre aplicaciones recientes del algoritmo MCTS en varios dominios de juegos, como juegos combinatorios de información perfecta, juegos de estrategia (incluidos RTS), juegos de cartas, etc.

### Usos en juegos más allá de los NPC
##### Redes generativas adversarias (GAN)

En lugar de la generación de procedimientos, algunos investigadores han utilizado redes generativas adversarias (GAN) para crear contenido nuevo. Las GANs son una clase de algoritmos de inteligencia artificial que se utilizan en el aprendizaje no supervisado, implementadas por un sistema de dos redes neuronales que compiten mutuamente en una especie de juego de suma cero.
Esta técnica puede generar fotografías que parecen auténticas a observadores humanos. Por ejemplo, una fotografía sintética de un gato que consiga engañar al discriminador (una de las partes funcionales del algoritmo), es probable que lleve a una persona cualquiera a aceptarlo como una fotografía real.
En 2018, investigadores de la Universidad de Cornwall entrenaron una GAN en mil niveles creados por humanos para Doom; Tras el entrenamiento, el prototipo de red neuronal pudo diseñar por sí solo nuevos niveles jugables. De manera similar, investigadores de la Universidad de California crearon un prototipo de GAN para generar niveles para Super Mario.En 2020, Nvidia mostró un clon de Pac-Man creado por GAN; La GAN aprendió a recrear el juego viendo 50 000 partidas (en su mayoría generadas por bots).

## Avances en IA

Los avances recientes en IA para videojuegos han llevado a comportamientos más complejos y adaptativos en personajes no jugables (NPC). Por ejemplo, los sistemas de IA ahora utilizan técnicas sofisticadas como árboles de decisión y máquinas de estado para mejorar las interacciones y el realismo de los NPC.Los avances recientes en IA para videojuegos también se han centrado en mejorar los comportamientos dinámicos y adaptativos de los NPC. Por ejemplo, una investigación reciente ha explorado el uso de redes neuronales complejas para permitir que los NPC aprendan y adapten su comportamiento en función de las acciones del jugador, mejorando la experiencia de juego general.