En la IA de los videojuegos , un sistema de utilidad , o IA de utilidad , es una forma sencilla pero eficaz de modelar el comportamiento de los personajes no jugables . Mediante números, fórmulas y puntuaciones para valorar el beneficio relativo de las posibles acciones, se puede asignar una utilidad a cada una . A continuación, se puede seleccionar un comportamiento en función de cuál obtenga la mayor "utilidad" o utilizando esas puntuaciones como base para la distribución de probabilidad de una selección aleatoria ponderada. El resultado es que el personaje selecciona el "mejor" comportamiento para la situación actual, según cómo se definan matemáticamente dichos comportamientos.
Conceptos clave
El concepto de utilidad existe desde hace siglos, principalmente en áreas que dependen de las matemáticas, como la economía . Sin embargo, también se ha utilizado en psicología , sociología e incluso biología . Debido a estos antecedentes y a la necesidad inherente de convertir datos a lenguajes matemáticos para la programación informática , surgió de forma natural como método para diseñar y expresar comportamientos en los personajes de los videojuegos.
Naturalmente, las distintas arquitecturas de IA tienen sus pros y sus contras. Una de las ventajas de la IA de utilidad es que es menos «de creación manual» que muchos otros tipos de arquitecturas de IA para juegos. [ 1 ] Si bien los comportamientos en un sistema de utilidad a menudo se crean individualmente (y a mano), las interacciones y prioridades entre ellos no están inherentemente especificadas. Por ejemplo, los árboles de comportamiento (BT) requieren que el diseñador especifique prioridades en secuencia para comprobar si algo debe hacerse. Solo si ese comportamiento (o rama del árbol) NO se ejecuta, el sistema de árbol de comportamiento pasará a comprobar el siguiente.
En comparación, en muchos sistemas de utilidad, los comportamientos se organizan por prioridad según las puntuaciones generadas por cualquier modelo matemático que defina cada comportamiento. Por ello, el desarrollador no necesita determinar con exactitud dónde encaja el nuevo comportamiento en el esquema general de lo que podrían ser miles de "nodos" de comportamiento en un BT. En cambio, el enfoque se centra simplemente en definir las razones específicas por las que el comportamiento en cuestión sería beneficioso (es decir, su "utilidad"). El sistema de decisión puntúa cada comportamiento según lo que está sucediendo en el mundo en ese momento y selecciona el mejor. Si bien es necesario tener cuidado para garantizar que se sigan los estándares para que todas las puntuaciones de comportamiento utilicen premisas iguales o similares, la "intensa tarea" de determinar cómo procesar decenas, o incluso cientos, de comportamientos diferentes se traslada del diseñador a la ejecución del propio sistema.
Fondo
Uso temprano
Los números, las fórmulas y las puntuaciones se han utilizado durante décadas en los videojuegos para definir el comportamiento. Incluso algo tan simple como definir un porcentaje de probabilidad para que algo suceda (por ejemplo, un 12 % de probabilidad de realizar la Acción X) fue un primer paso hacia la IA de utilidad. Sin embargo, no fue hasta principios del siglo XXI que este método comenzó a adoptar un enfoque más formalizado, conocido actualmente como "IA de utilidad".
Modelado matemático del comportamiento
En Los Sims (2000), la "necesidad" actual de un PNJ (por ejemplo, descanso, comida, actividad social) se combinaba con la puntuación de un objeto o actividad que podía satisfacer esa misma necesidad. La combinación de estos valores asignaba una puntuación a la acción, indicándole al Sim qué debía hacer. Este fue uno de los primeros usos visibles de la IA de utilidad en un videojuego. Si bien el jugador no veía los cálculos directamente, era consciente de las necesidades relativas del Sim y de los distintos grados de satisfacción que proporcionaban los objetos del juego. De hecho, era el mecanismo de juego principal.
En Los Sims 3 (2009), Richard Evans utilizó una versión modificada de la distribución de Boltzmann para elegir una acción para un Sim, empleando una temperatura baja cuando el Sim está contento y alta cuando está mal, para aumentar la probabilidad de que se elija una acción con baja utilidad. [ 2 ] También incorporó "personalidades" a los Sims. Esto creó una especie de modelo de tres ejes, extendiendo los "valores de necesidades" y satisfacción numéricos para incluir preferencias, de modo que distintos PNJ pudieran reaccionar de manera diferente en las mismas circunstancias según sus deseos e impulsos internos.
En su libro, Behavioral Mathematics for Game AI , [ 3 ] Dave Mark detalló cómo pensar mentalmente el comportamiento en términos matemáticos, incluyendo cosas como curvas de respuesta (conversión de variables de entrada cambiantes en variables de salida). Él y Kevin Dill dieron muchas de las primeras conferencias sobre teoría de la utilidad en la Cumbre de IA de la Conferencia anual de desarrolladores de juegos (GDC) en San Francisco, incluyendo "Mejorando el modelado de decisiones de IA a través de la teoría de la utilidad" en 2010. [ 4 ] y "Abrazando el arte oscuro del modelado matemático en IA" en 2012. [ 5 ] Estas conferencias sirvieron para introducir la IA de utilidad como una arquitectura comúnmente mencionada junto con las máquinas de estados finitos (FSM), los árboles de comportamiento y los planificadores.
Un "sistema de servicios públicos"
Si bien el trabajo de Richard Evans y los programadores de IA posteriores en la franquicia Sims, como David "Rez" Graham [ 6 ], se basaban en gran medida en la IA de utilidad, Dave Mark y su compañero de trabajo de ArenaNet , Mike Lewis, dieron una conferencia en la Cumbre de IA durante la GDC de 2015 sobre una arquitectura independiente completa que había desarrollado, el Sistema de Utilidad de Eje Infinito (IAUS). [ 7 ] El IAUS fue diseñado para ser una arquitectura autocontenida y basada en datos que, una vez conectada a las entradas y salidas del sistema de juego, no requería mucho soporte de programación. En cierto modo, esto lo hacía similar a los árboles de comportamiento y planificadores donde el razonador (lo que toma las decisiones) estaba completamente establecido y se dejaba al equipo de desarrollo agregar comportamientos a la mezcla según lo consideraran apropiado.
Utilidad con otras arquitecturas
Además, en lugar de una arquitectura independiente, otras personas han discutido y presentado métodos para incorporar cálculos de utilidad en arquitecturas existentes. Bill Merrill escribió un segmento en el libro Game AI Pro , [ 8 ] titulado "Incorporando decisiones de utilidad en su árbol de comportamiento existente" [ 9 ] con ejemplos de cómo reutilizar selectores en BT para usar matemáticas basadas en utilidad. Esto dio como resultado un híbrido potente que conservó gran parte de la estructura formal popular de los árboles de comportamiento pero permitió algunas de las ventajas no frágiles que ofrecía la utilidad. La IA de utilidad también se puede integrar con otras arquitecturas en un enfoque modular, donde cada arquitectura maneja una tarea específica. Por ejemplo, en un estudio, [ 10 ] los autores aplicaron un Sistema de Utilidad para calcular los valores de utilidad de órdenes estratégicas de alto nivel en un juego táctico basado en equipos, mientras que la Búsqueda en Árbol de Monte Carlo (MCTS) se empleó para ejecutar estas órdenes a nivel táctico.
Véase también
Referencias
- ↑ Mark, Dave (agosto de 2012). "Arquitecturas de IA: una guía culinaria" .
- ↑ Evans, Richard. "Modelado de personalidades individuales en Los Sims 3" . GDC Vault . págs. 36–38 . Consultado el 21 de septiembre de 2015 .
- ↑ Mark, Dave (marzo de 2009). Matemáticas del comportamiento para la IA en juegos . Tecnología del curso Cengage Learning. ISBN 978-1584506843.
- ↑ Mark, Dave; Dill, Kevin (2010). "Mejora del modelado de decisiones de IA a través de la teoría de la utilidad" . GDC Vault .
- ↑ Mark, Dave; Dill, Kevin (2012). "Adentrándose en el arte oscuro del modelado matemático en IA" . GDC Vault .
- ↑ Graham, David "Rez" (septiembre de 2013). "Una introducción a la teoría de la utilidad" (PDF) . GameAIPro .
- ↑ Mark, Dave; Lewis, Mike (2015). "Construyendo un Centauro Mejor: IA a Escala Masiva" . GDC Vault .
- ↑ Rabin, Steve (septiembre de 2013). "Game AI Pro" . Amazon .
- ↑ Merrill, Bill (septiembre de 2013). "Incorporación de decisiones de utilidad en su árbol de comportamiento existente" (PDF) . GameAIPro .
- ↑ Świechowski, M.; Lewiński, D.; Tyl, R. (2021). Combinación de IA de utilidad y MCTS para la creación de agentes inteligentes en videojuegos, con el caso de uso de Tactical Troops: Anthracite Shift . 2021 IEEE Symposium Series on Computational Intelligence (SSCI). Orlando, FL, EE. UU. pp. 1– 8. doi : 10.1109/SSCI50451.2021.9660170 .
- Inteligencia artificial en juegos