En la IA de los videojuegos , un sistema de utilidad , o IA de utilidad , es una forma simple pero efectiva de modelar comportamientos para personajes que no son jugadores . Usando números, fórmulas y puntajes para calificar el beneficio relativo de las posibles acciones, se pueden asignar utilidades a cada acción . A continuación, se puede seleccionar un comportamiento en función de cuál obtiene la mayor "utilidad" o utilizando esos puntajes para sembrar la distribución de probabilidad para una selección aleatoria ponderada. El resultado es que el personaje selecciona el "mejor" comportamiento para la situación dada en ese momento basándose en cómo se definen matemáticamente esos comportamientos.
Conceptos clave
El concepto de utilidad ha existido durante siglos, principalmente en áreas matemáticamente dependientes 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 la naturaleza inherente de la necesidad de convertir las cosas en matemáticas para la programación de computadoras, fue algo que surgió de forma natural como una forma de diseñar y expresar comportamientos para los personajes del juego.
Naturalmente, las diferentes arquitecturas de IA tienen sus pros y sus contras. Uno de los beneficios de la IA de utilidad es que es menos "de autoría manual" que muchos otros tipos de arquitecturas de IA de juegos. [1] Si bien los comportamientos en un sistema de servicios públicos a menudo se crean individualmente (ya mano), las interacciones y prioridades entre ellos no se especifican de manera inherente. Por ejemplo, los árboles de comportamiento (BT) requieren que el diseñador especifique prioridades en secuencia para verificar si se debe hacer algo. Solo si ese comportamiento (o la rama del árbol) NO se ejecuta, el sistema del árbol de comportamiento fallará para verificar el siguiente.
En comparación, los comportamientos en muchos sistemas de servicios públicos se clasifican por prioridad en función de las puntuaciones generadas por cualquier modelo matemático que defina cada comportamiento dado. Debido a esto, no se requiere que el desarrollador determine exactamente 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, la atención se centra simplemente en definir las razones específicas por las que el comportamiento en cuestión sería beneficioso (es decir, su "utilidad"). Luego, el sistema de decisiones califica cada comportamiento de acuerdo con lo que está sucediendo en el mundo en ese momento y selecciona el mejor. Si bien se debe tener cierto cuidado para garantizar que se sigan los estándares de modo que toda la puntuación de comportamiento esté utilizando las mismas premisas o similares, el "trabajo pesado" de determinar cómo procesar decenas, o incluso cientos, de comportamientos diferentes se descarga del diseñador. y poner en 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 juegos para definir el comportamiento. Incluso algo tan simple como definir un porcentaje establecido de probabilidad de que algo suceda (por ejemplo, 12% de probabilidad de realizar la Acción X) fue un paso temprano en la IA de utilidad. Sin embargo, solo a principios del siglo XXI, ese método comenzó a adoptar un enfoque más formalizado que ahora se conoce comúnmente como "IA de utilidad".
Modelado matemático del comportamiento
En Los Sims (2000), una "necesidad" actual de algo (por ejemplo, descanso, comida, actividad social) de un NPC se combinó con una puntuación de un objeto o actividad que podría satisfacer esa misma necesidad. Las combinaciones de estos valores dieron una puntuación a la acción que le dijo al Sim lo que debía hacer. Este fue uno de los primeros usos visibles de la IA de utilidad en un juego. Si bien el jugador no vio los cálculos en sí, se dio cuenta de las necesidades relativas del Sim y de los diversos grados de satisfacción que proporcionarían los objetos del juego. De hecho, era el mecanismo principal del juego.
En Los Sims 3 (2009), Richard Evans usó una versión modificada de la distribución de Boltzmann para elegir una acción para un Sim, usando una temperatura que es baja cuando el Sim está feliz y alta cuando el Sim lo está haciendo mal para hacerlo más Es probable que se elija una acción con una utilidad baja. [2] También incorporó "personalidades" a los Sims. Esto creó una especie de modelo de 3 ejes, extendiendo las "necesidades" y los "valores de satisfacción" numéricos para incluir preferencias de modo que diferentes NPC pudieran reaccionar de manera diferente a otros en las mismas circunstancias en función de sus deseos e impulsos internos.
En su libro, Behavioral Mathematics for Game AI , [3] Dave Mark detalló cómo pensar mentalmente en el comportamiento en términos matemáticos, incluyendo cosas como curvas de respuesta (conversión de variables de entrada cambiantes en variables de salida). Kevin Dill y él 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, incluida "Mejora del modelado de decisiones de IA a través de la teoría de la utilidad" en 2010. [4] y " Adoptando el arte oscuro del modelado matemático en IA "en 2012. [5] Estas conferencias sirvieron para inyectar IA de utilidad como una arquitectura comúnmente conocida junto con máquinas de estados finitos (FSM), árboles de comportamiento y planificadores.
Un "sistema de utilidades"
Mientras que el trabajo de Richard Evans, y los posteriores programadores de IA de la franquicia Sims como David "Rez" Graham [6] se basaron en gran medida en la IA de utilidad, Dave Mark y su compañero de trabajo de ArenaNet, Mike Lewis, dieron una conferencia en AI Summit durante el GDC 2015 sobre una arquitectura independiente completa que había desarrollado, el Infinite Axis Utility System (IAUS). [7] La IAUS fue diseñada para ser una arquitectura autónoma 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 hizo similar a los árboles de comportamiento y los planificadores donde el razonador (lo que toma las decisiones) estaba completamente establecido y se dejaba al equipo de desarrollo agregar comportamientos a la mezcla como mejor les pareciera.
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 "Construyendo 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 utilidades. Esto resultó en un poderoso híbrido que mantuvo 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.
Ver también
Referencias
- ^ Mark, Dave (agosto de 2012). "Arquitecturas de AI: una guía culinaria" .
- ^ Evans, Richard. "Modelado de personalidades individuales en Los Sims 3" . Bóveda GDC . págs. 36–38 . Consultado el 21 de septiembre de 2015 .
- ^ Mark, Dave (marzo de 2009). "Matemáticas del comportamiento para juegos de IA" . Amazonas .
- ^ Mark, Dave; Eneldo, Kevin (2010). "Mejora del modelado de decisiones de IA a través de la teoría de la utilidad" . Bóveda GDC .
- ^ Mark, Dave; Eneldo, Kevin (2012). "Abrazando el arte oscuro del modelado matemático en IA" . Bóveda GDC .
- ^ Graham, David "Rez" (septiembre de 2013). "Introducción a la teoría de la utilidad" (PDF) . GameAIPro .
- ^ Mark, Dave; Lewis, Mike (2015). "Construyendo un mejor centauro: IA a gran escala" . Bóveda GDC .
- ^ Rabin, Steve (septiembre de 2013). "Juego AI Pro" . Amazonas .
- ^ Merrill, Bill (septiembre de 2013). "Creación de decisiones de servicios públicos en su árbol de comportamiento existente" (PDF) . GameAIPro .