Re: [eside-ghost] Inteligencia Artificial para juegos [¿OT?]

Elessar elessartinuviel en gmail.com
Vie Mar 3 09:49:33 CET 2006


Un motor de inferencia ahí todo currado te vendría bien xDDDDD

Desde luego que para los combates lo mejor es un MIN MAX, pero hacerlo
ya es todo un proyecto por sí mismo... Te recomiendo que quizás lo
mejor sea que en tu juego de rol tomes unas pocas precauciones:

Limitar mucho la variedad de acciones:
Si quieres que tu juego de rol contenga magia por ejemplo, estructura
los hechizos de forma que no sea muy difícil elegir cual de ellos
quieres en cada momento. ejemplo:

- Magia de Ataque  (Que hace daño)
- Magia de Acción (Provoca que en el pnj enemigo se active un flag,
como por ejemplo que se quede stunt, que tenga veneno, etc...)

De esta forma puedes hacer un montón de cosas diferentes que en
realidad hagan lo mismo, dando una sensación de variedad a tu
programa. De cara a la IA, está claro que empezará el combate, y tu
pnj enemigo irá a la lista de hechizos, cada  uno tendrá una prioridad
y ejecutará el que mayor prioridad tenga....
( El asunto se puede complicar si tus acciones hacen que los pnj
enemigos alteren la prioridad de los hechizos contrarios, por ejemplo,
si el pj jugador se  echa revitalia, el pnj enemigo debería
incrementar la prioridad de usar VENENO )

El caso es que aún simplificando mucho las cosas, el tema puede ser
muy amplio. Para implementar todo esto se me ocurre lo que ya te he
dicho
* Lo más completo y complejo:
- MIN / MAX
- Autómata
* Lo más sencillo:
- Establecer una serie de reglas.

Estableciendo una serie de reglas, habrá casos en que la inteligencia
no sea muy currada, pero el coste de implementación se reduce de forma
exponencial casí xD.

De cara a la IA de los pnj que pululan por el mundo, lo más sencillo
puede ser enfocarlo de la siguiente manera:
Los pnj tienen estados, frases y acciones. Los estados se ven
alterados según las decisiones de los jugadores. Además las frases y
las acciones tienen asignado un estado. Por ejemplo:
pj va a una granja, el pnj de la granja advierte al pj que están
atacándole unos vandidos ( El pnj está en estado 0 ) Automáticamente
el pnj pasa a estar en el siguiente estado ( Estado 1) De esta forma,
esta acción solo ocurrirá una vez en la historia. Entonces se muestra
una ventana desplegable ( Acción asociada al Estado 0 del pnj granjero
) Donde el jugador tiene que elegir si ayuda o no al granjero. Si
ayuda al granjero el pnj salta a otro estado y los eventos se suceden.
Soy consciente de que esta forma de juego no es la más lucida, quizás
quieras que el pnj te avise, y según tus acciones la IA determine si
has obrado en un sentido u otro.. pero eso me temo que es aún más
complicado.

Sopesa el tiempo que tienes para hacer el proyecto ( Que no es ninguna
tontería, toda la voluntad del mundo no basta para realizar el
proyecto que quieres, y lo digo por propia experiencia) y el resultado
que deseas, así como el "volumen" de tu proyecto ( No sé si prefirees
un juego que se pase en 4 minutos que esté hipermil de bien de currado
y ya lo desarrollarás más adelante, o prefieres algo que dure más pero
que esté peor desarrollado) y toma decisiones en consecuencia.

Espero haberte servido de algo, un saludo.


Más información sobre la lista de distribución eside-ghost