¿Qué se siente ser un programador de inteligencia artificial (IA) para videojuegos?

Tengo varios capítulos en la serie de libros AI Game Programming Wisdom.

La IA del juego y la IA académica son bestias muy diferentes. En general, la IA del juego se trata de hacer trampa. Básicamente, el trabajo de un programador de IA de juegos es hacer que la aleatoriedad parezca decisiones inteligentes.

Muy pocos juegos en realidad usan técnicas de IA reales como el aprendizaje por refuerzo o las redes neuronales. En su mayoría, las máquinas de estado finito y los árboles de decisión son modificados por los diseñadores hasta que se siente bien.

Otra cosa que comúnmente se necesita, y es más difícil que hacer inteligencia artificial, es hacer estupidez artificial. Por ejemplo, hacer que la IA de un oponente tenga un objetivo absolutamente perfecto es muy fácil de hacer, solo necesita un poco de álgebra y un ajuste de cuentas muerto. Reducirlo para que parezca un objetivo humano no perfecto es en realidad bastante difícil y se logra con la aspersión cuidadosa de la aleatoriedad.

Le pregunté a mi ex colega, Anders Backman, que ha estado dando vida a la IA desde antes de que se inventaran las computadoras, y obtuve esta respuesta:

La pregunta principal no es tan interesante como las relacionadas, pero aquí va:
P: ¿Qué se siente ser una IA?
R: Desde el nacimiento hasta la muerte, su expectativa de vida es de aproximadamente 2.5 segundos (FPS Shooter) y se le asignará una calificación exclusiva de lo entretenida que es su muerte para su asesino. Ira, amargura, desesperación existencial.

Imagina que eres un violinista solista que da un concierto y comienzas tocando una pieza técnicamente difícil sin problemas para un público con cara de piedra. Luego te giras y accidentalmente caes de bruces, el violín cae al suelo en un fuerte golpe. Para el público, ese sonido discordante es tan hermoso que estalla en vítores y obtienes una gran ovación, mientras intentas tímidamente despegar tu trasero y preguntarte qué es lo que realmente aprecian, así es como se siente.

Mientras estaba en la escuela / en el ejército, trabajé en proyectos de investigación que apuntaban a mejorar la IA para juegos de estrategia en tiempo real. Después de graduarme, aproveché esa experiencia e intenté ponerla en juegos de estrategia comerciales en tiempo real.

Cuando el juego salió a la venta por primera vez, me puse en línea con entusiasmo para leer los comentarios.
Uno de los primeros comentarios decía “Este juego viene en solo tres niveles de dificultad: Difícil, realmente difícil e imposible”.
Estaba feliz, hasta que me di cuenta de que todas las quejas sobre la IA también venían con reseñas de una estrella.

En ese momento, mi amigo C3PO me aconsejó muy sabiamente “Sugiero una nueva estrategia; deje que gane el wookie”.

El mes siguiente, agregué un nuevo nivel de dificultad de IA: todavía analizaba las posiciones del jugador, pero en lugar de usar la información para ganar, haría lo contrario para calibrar sus ataques para apenas perder: es decir, espaciando la fuerza de ataque , enfocándose en las defensas del jugador, o pausando el desarrollo / expansión si la IA excede la fuerza del jugador.

La nueva estrategia funcionó, las quejas se detuvieron y los jugadores pudieron superar los niveles iniciales. Toda mi experiencia de investigación pasada se basó en la premisa equivocada. Ese día aprendí dos cosas: una, que esas no eran las IA que estaba buscando. ¡Y dos, que es realmente importante tener a los wookies de tu lado!

La IA es como el arte. El esfuerzo tiene poca correlación con la apreciación. Al final, la IA nerfed tenía errores, pero los jugadores juraron que era más inteligente. Leyeron intencionalmente todos mis errores involuntarios, y se contaron historias sobre lo brillantes que habían sido al burlar a la IA, cuando para mí cada recuento era una acusación condenatoria de todos los errores que había dejado.

Nadie, aparte de mí, pensó que la IA era tonta. En cambio, todos pensaron que eran simplemente inteligentes. Bueno, todo es relativo ¿verdad?

Hice algunas IA, pero para juegos de cartas y juegos de mesa, no títulos AAA.

Mi IA alternaba entre ser los jugadores más tontos del mundo y los tramposos directos. Cuando no podía hacer que jugaran mejor que los chimpancés adictos a la metadona, intentaba compensarlos dejándolos engañar un poco y usar la información privada de los jugadores adversarios. Y luego ganarían fácilmente haciendo trampa. Y luego apagué el engaño, y volverían a ser idiotas.

Hacer que sea bueno, realista y no mecánico sin hacer trampa es un verdadero truco. Principalmente, debes entender el juego que estás jugando y cuáles son las estrategias ganadoras. Y tienes que construir en un sentido de imprevisibilidad, de lo contrario los jugadores humanos pueden predecir perfectamente los movimientos de la IA.