|
Taller
|
| >> Taller >> Curso de Inteligencia Artificial by Slàinte >> I.A. Condicionada. |
| Esta es quizás la inteligencia artificial que más veces hace falta cuando programas juegos, y también una de las más complicadas de conseguir.
Ejemplos clásicos de este tipo de inteligencia artificial serían los juegos de lucha en que el contrincante basa sus ataques en una lista de opciones que se ve afectada por su nivel de vida, la disancia a la que se encuentra el jugador, el tiempo que resta para terminar el asalto, etc. Por norma general este tipo de IA se basa en un Motor de Estados que determina la situación en que se encuentra el proceso y elige las opciones a tener en cuenta o el script a seguir.
Tomemos por ejemplo el caso de un juego tipo Street Fighter. El jugador controlado por el ordenador podria tener los siguientes estados: Suicida, Agresivo, Neutral, Defensivo que podrian venir determinados por el nivel de vida que le queda (vida baja->defensivo, vida a tope->suicida) y el tiempo que resta para terminar el combate (poco tiempo->defensivo si no ser derrotado implica victoria o repetir combate, mucho tiempo->agresivo). Cada paso del bucle se determina el estado del proceso y en cada rama del switch se evaluan las condiciones de ataque (a que distancia esta el enemigo, daño de los golpes, etc. usando por ejemplo un proceso de IA Calculada (ver entrega 2 de este curso). Vamos a distinguir entre 3 tipos de aproximaciones para la Inteligencia de Scripts: Script fijo, Script variable y Script dinámico. El script fijo es aquel que se ejecuta de forma lineal, los estados son secuenciales y el pa de un estado al siguiente viene dado por la consecución de un objetivo. Algunos de los primeros juegos de estrategia usan un bucle de este tipo: Consecución de recursos, construcción básica, ataque. El script variable es aquel que determina su estado en cada pasada analizando la situación actual, como en el caso que hemos indicado antes del juego de lucha. El script dinámico aparte de poder variar de estado en cada pasada mantiene información de estados anteriores que pueden modificar el comportamiento del estado actual. Por ejemplo, un PNJ en un juego de ROL comienza en estado neutral, si el jugador le ataca pasa a estado agresivo y vuelve a estado neutral cuando el jugador le deja en paz. La proxima vez que el jugador se acerque a el el PNJ "recuerda" que ha sido atacado por él y vuelve al estado agresivo. Esta adaptación de las reglas de conducta de forma dinámica es lo que más complica la gestión de esta IA.
|
[ INTRODUCCIÓN ] [ SCRIPT FIJO ] [ SCRIPT VARIABLE ] [ SCRIPT DINAMICO ]