Ayuda con Inteligencia artificial

Consulte acerca de programas, técnicas, algoritmos etc.

Ayuda con Inteligencia artificial

Notapor Natalia » Jue Nov 14, 2013 9:26 pm

Hola, estoy intentando hacer una inteligencia artificial para enemigos RPG que cuando vean al personaje principal disparen, pero cuando no lo hagan caminen de lado a lado.
El problema es que no encontre ninguna forma de hacerlo ni nada.
Gracias
Avatar de Usuario
Natalia
 
Mensajes: 7
Registrado: Mié Oct 30, 2013 6:06 pm

Re: Ayuda con Inteligencia artificial

Notapor shackra » Mié Dic 18, 2013 2:30 am

Hola y bienvenida!

Veras, el tema es un poco complicado como para que alguien lo explique en un post. ¿Sabes que es una maquina(?) de estados? Bueno, viene a ser algo así como los estados en los que se encuentra un autómata, y a partir de ellos, a cuales otros estados puede acceder. Para explicarlo más fácil, yo ahora mismo estoy sentado en mi silla; se puede decir que estoy en un estado determinado que se llama "sentado" ¿A que otro estado puedo acceder desde mi estado actual? Bueno, puedo acceder solamente a uno de dos: "escribir en la portátil" o ponerme "de pie". Sí me pusiera de pie, podría acceder a otros estados como "caminar", "saltar" y nuevamente "sentado". ¿Cómo se consigue que un autómata pase de un estado a otro de forma lógica y sin saltarse un estado? Con arboles binarios. De esta forma, evitaras que tu autómata pase de "escribir en la portátil" a "correr", que es un cambio de estado ilógico.

Ahora, el problema que describes se puede afrontar de esta manera, con una maquina de estado para los actores/sprites/enemigos involucrados. Escribes una maquina de estado raíz dentro de la clase del actor, y enlazas esa maquina de estado con otras dos o tres o las que necesites por medio de una estructura de árbol binario. La lógica de la IA, supongo yo, iría dentro de cada maquina de estado haciendo que el actor se comporte de forma diferente cuando la maquina de estado cambie.

Por supuesto, para que el autómata cambie de comportamiento por medio de su maquina de estados, es necesario que pueda comprobar ciertas condiciones externas a él (de otra manera ¿Cómo cambiaría de estado?). Si el actor no esta en alerta, que camine de un lado al otro (aquí tendrás que darle la posibilidad de "decidir" a donde "quiere" ir que seguido, se mueva hasta el lugar que el actor "desea"), y si el actor mientras camina o esta decidiendo dónde moverse, "ve" al jugador, lo persiga y le dispare. Por supuesto esto ya es un tema algo más complicado. Posiblemente el modulo aima-python (por si estas implementando el juego en Python) te ayude a evitar reinventar la rueda, pero en lo personal te recomiendo que estudies algo de álgebra y te familiarices con el tema.
Avatar de Usuario
shackra
 
Mensajes: 308
Registrado: Lun Jun 15, 2009 4:10 pm
Ubicación: Costa Rica


Volver a General

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 27 invitados