¿Cómo hago manejable la IA compleja? [cerrado]

11

En el pasado, he usado sistemas simples como máquinas de estados finitos (FSM) y FSM jerárquicos para controlar el comportamiento de la IA. Este patrón se desmorona muy rápidamente o cualquier sistema complejo.

He escuchado sobre árboles de comportamiento . Parecen el siguiente paso obvio, pero aún no he visto una implementación que funcione o realmente lo he intentado.

¿Qué otros patrones pueden hacer manejables los complejos comportamientos de IA?

Tétrada
fuente
También escuché que hay varias formas de administrar máquinas de estado
jokoon
1
Esta es una pregunta bastante vaga. Existen muchas técnicas para gestionar la IA "compleja", pero la mejor para cualquier situación puede ser diferente de otra situación. He implementado una IA bastante compleja usando nada más que listas de acciones de comportamiento, pero esa solución no funcionaría para un RTS; Las técnicas que he visto utilizadas en los juegos de estrategia en tiempo real eran increíblemente complejas pero elegantes, sin embargo, no servirían para nada en ningún otro tipo de juego. Si tiene en mente algún tipo específico de juego o IA, puede obtener respuestas más relevantes y perspicaces si declara lo que es por adelantado.
Sean Middleditch

Respuestas:

3

Los árboles de comportamiento son una excelente forma de administrar la IA, ¡y Ai Game dev es el mejor lugar para aprender sobre ellos! Hay toneladas de implementaciones de ejemplo en lugares como Codeplex, o incluso la propia implementación de motores Sandbox de AIGD (lo que sin duda es bastante complejo y puede ser difícil de seguir).

El año pasado, en el juego de la IA, hubo mucha emoción sobre los planificadores , pero este año se había desvanecido. El mejor consejo parecía ser simplemente comenzar de manera simple. Todo el 20% del trabajo para obtener el 80% de lo que parece ser totalmente cierto en la mayoría de los casos

Cubed2D
fuente
2

Una cosa que creo que es importante es separar por qué un agente quiere lograr algo de cómo lo hace. Planificadores de acción orientados a objetivos hacen bien, pero también hay otras soluciones. Esto le brinda una gran flexibilidad para construir agentes, ya que puede elegir entre un grupo de objetivos y un grupo de acciones.

Los árboles de comportamiento están diseñados para abarcar toda la solución, tanto la toma de decisiones como las acciones, y como tal puede ser difícil de mantener.

tenpn
fuente
2

Una técnica con la que debería estar familiarizado en cualquier caso es el enfoque de la lista de acciones. En el nivel más simple, es solo una lista de objetos de acción, que cada objeto de acción tiene su método update () llamado cada cuadro. Sin embargo, puede ampliar rápidamente esto para permitir acciones de bloqueo, múltiples líneas de acciones, grupos secundarios, etc. Casi cualquier cosa que pueda construir con un FSM de alto nivel se puede implementar de una manera más modular, flexible y depurable con una acción lista usando acciones de comportamiento.

Además de ser una técnica útil para administrar todas las animaciones, la búsqueda de caminos y otras "cosas" misceláneas que pueden hacer sus personajes, hace que sea trivial implementar un sistema de toma de decisiones basado en prioridades al crear acciones de comportamiento.

Se pueden encontrar algunas notas sobre cómo usarlas en esta presentación de diapositivas: http://sonargame.com/2011/11/01/new-game-slides/

Estoy bastante seguro de que también ha habido artículos al respecto en la serie AI Programming Wisdom.

Sean Middleditch
fuente