ambar-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mine-dev] Módulos de scripts e Inteligencia Artificial


From: turingtest
Subject: [Mine-dev] Módulos de scripts e Inteligencia Artificial
Date: Fri, 23 May 2003 00:20:34 +0100

----- Original Message -----
From: Andres Moya <address@hidden>
Date: 20 May 2003 11:16:22 +0200
To: Diego Moya <address@hidden>
Subject: Re: [Mine-dev] Scripts: secuencias de sucesos

> Por lo que veo, tu
> sistema y el mio tienen bastante en común, ambos son una arquitectura
> orientada a sucesos.
> 
> Las diferencias son que el sistema de conversaciones, en principio,
> tiene sólo un suceso (personaje_pregunta), mientras que el otro tiene
> muchos. En cambio, tu sistema admite múltiples respuestas distintas a un
> mismo suceso, para lo cual usa temas, contextos y enlaces, lo cual
> permite introducir IA.
> 

Esa es la idea, que se pueda programar la respuesta a un suceso para que no sea 
siempre la misma sino que dependa del estado anterior del objeto que reacciona.


> Creo que lo suyo sería unificar las dos cosas, poder incorporar temas,
> contextos y enlaces a cualquier tipo de suceso, no sólo a los de
> conversación. Pero no lo veo muy claro todavía, dejame que lo siga
> pensando un poco...
> 

Lo he seguido meditando, y creo que tengo una idea de cómo fusionarlos. Y de 
paso me desdigo de la última frase de mi mensaje anterior: "Los temas y enlaces 
son para crear un hipertexto. No creo que tengan sentido para eventos que no 
sean de conversación." Ahora me parece que sí tiene sentido...

La propuesta es generalizar la idea de los temas y convertirlos en "módulos" 
que admitan cualquier tipo de acciones, no solo de diálogo. Un módulo, igual 
que ahora un tema, sería una colección de varios comportamientos válidos 
(guiones) en respuesta a un mismo suceso. El módulo encapsula todas las 
reacciones que tendrían sentido en una u otra ocasión. Un "agente" de 
inteligencia artificial escoge cuál de los varios guiones disponibles es el más 
adecuado y el que se debe utilizar cuando ocurre el suceso. 

Algunos sistemas de IA de juegos comerciales están empezando a usar módulos de 
este tipo.


Como una imagen vale más que mil palabras, pondré cómo se utilizarían los 
módulos para un ejemplo concreto: la puerta de Moria.


<personaje_dice>
  <modulo tipo="tema" nombre="Mellon!"/>
</personaje_dice>


<modulo tipo="tema" nombre="Mellon!">
  <reaccion>
     <requisito tipo="hito" nombre="puerta_moria" comparador="distinto" 
valor="abierta">
        <cumplido>
           <guion>
                <accion tipo="ambiente" 
                        texto="Aparecen unas fineas líneas luminosas sobre la 
pared."/>
                <accion tipo="ambiente" 
                        texto="Las líneas se entrelazan formando un hermoso 
dibujo que indica la posición de la puerta."/>
                <accion tipo="definir_hito" nombre="puerta_moria" 
valor="abierta"/>
           </guion>
        </cumplido>
     </requisito>
  </reacción>
  <reacción>
      <guion>
        <accion tipo="hablar" texto="Mellon!"/>
        <accion tipo="ambiente" texto="Sólo el eco responde tu grito..."/>
      </guion> 
  </reaccion>
</modulo>


Acabamos de conectar las puertas con el sistema de conversaciones ;-)

Podríamos definir otro sencillo módulo genérico para controlar el cruce de 
puertas mágicas (esas que no tienen un comportamiento precableado):


<personaje_cruza>
  <modulo id="cruzar_puerta_especial"/>
</personaje_cruza>

<modulo id="cruzar_puerta_especial">
   <reaccion>
        <requisito tipo="hito" nombre="$nombre" comparador="igual" 
valor="cerrada">
             <accion tipo="cancelar"/>
        </requisito>
  </reacción>
</modulo>


Definiciones:

- Modulo (antes, tema): colección de reacciones(items) válidas como respuesta a 
un suceso
- Reacción (item): secuencia de acciones (guion) e información adicional 
(enlaces, contextos) de conexión entre módulos
- agente-controlador: motor de AI que recibe eventos y decide qué reacción 
escoger


Funcionamiento:
Primero se construyen los módulos representando cada uno un comportamiento (por 
ejemplo módulos para regatear una compra, combatir, huir...) 

Al construir el personaje u objeto se indica cuál es el módulo que tiene 
asociado cada suceso.

Cuando ocurre el suceso, el agente carga el módulo a memoria y decide cuál de 
las reacciones disponibles se activa.


Ventajas:

- Reusable: un mismo módulo se puede usar en distintos agentes, se podrían 
hacer módulos genéricos que cualquier PNJ utilice (combate básico, moverse por 
la zona, ofrecer información...). Un mismo módulo también puede estar asociado 
a más de un evento en el mismo objeto.

- Modular: si permitimos una jerarquía de módulos, juntando varios módulos 
sencillos se pueden construir comportamientos más complejos: módulo ataque + 
módulo huida = reacción (atacar o huir) asociada al evento X. Cada sub-módulo 
sería activado por distintos valores de los parámetros del evento.

- Cualquier evento puede tener una IA asociada. La IA se programa una sola vez, 
y las distintas reacciones que puede desencadenar es lo que se escribe como 
guiones separados para cada objeto.

Los enlaces dentro de un módulo podrían indicar cuáles son los módulos que es 
más probable que ocurran después del actual. Por ejemplo, el módulo "huida" 
podría enlazar con el módulo "esconderse" y el módulo "avisar al lider". 
Los "contextos" indicarían cuál de varias reacciones contenidas en el módulo 
actual es la más apropiada cuando el módulo se active.


Un objeto/artefacto podría tener un comportamiento muy complejo, si se definen 
módulos de alto nivel que escojan en cada ocasion el más adecuado de entre 
módulos simples. Estoy pensando en algo pequeño y dorado... 

El Único podría tener asociado todo un "hipertexto" de módulos tan complejo 
como una conversación, controlado por una IA que navegue automáticamente por 
ese hipertexto y active los guiones más adecuados cuando se produzcan ciertos 
sucesos. El objeto tendría un "humor" propio conectado con atributos como el 
aura de la sala, el carisma del portador... que determinarían la aparición de 
mensajes de tipo "ambiente" muy adecuados a cada momento.

-- 
__________________________________________________________
Sign-up for your own FREE Personalized E-mail at Mail.com
http://www.mail.com/?sr=signup





reply via email to

[Prev in Thread] Current Thread [Next in Thread]