Hablemos sobre el diseño de un enemigo inteligente..

Discusión en general sobre Gemix.

Hablemos sobre el diseño de un enemigo inteligente..

Postby erkosone » Thu Apr 12, 2012 4:52 pm

Quiero abrir este hilo para hablar sobre el diseño de lo que sería un BOOT dentro de un juego, osea, una entidad que simulará tener vida propia como si se tratase de otro jugador.
En principio un tipo de entidad como este sería un enemigo claramente, así es que expongo yo una primera evaluación de lo que creo que debería tener y si os parece interesante lo vamos comentando.

Prototipo de entindad: 'ENEMIGO'.
---------------------------------------
Estados base de la entidad:
* 0 En reposo.
* 1 En combate.
* 2 Volviendo tras un combate.
* 3 Muerto.

Estado 0 - En reposo:
- La entidad se mueve por caminos pre establecidos por el programador, esta en modo pasivo y no atacará a nadie que se le aproxime, de vez en cuando se parará y mostrará una animación alternativa para dar un poco mas de realismo.

Estado 1 - En Combate:
- Al detectar colisión con un objeto del tipo 'dañino' la entidad entrará en combate.
- Cada jugador que golpeé a la entidad pasará a formar parte de la lista privada de objetivos con amenaza de la entidad.
- La entidad atacará al jugador que se encuentre con mayor número de amenaza.
- Si la entidad está a mas de 'n' distancia del objetivo, la entidad se moverá hacia el objetivo.
- Si el objetivo está fuera del rango máximo de la entidad, la entidad lanzará un 'fatality' al objetivo e irá en busca del siguiente objetivo en la lista de amenaza.
- Si durante el combate no se encuentra a nadie en la lista de amenaza de la entidad, esta pasará al estado 2.

Estado 2 - Volviendo al lugar de reposo tras un combate:
- La entidad se desplazará "rapidamente" hasta el lugar donde fue atacada, durante la vuelta recuperará por completo su salud y su mana o energía.
- Mientras dure este estado la entidad hará caso omiso a nuevos ataques.

Estado 3 - Muerto:
- Si durante el estado "en combate" se detecta un nivel de vida menor o igual a cero la entidad cambiará su estado al 3, osea, pasará a estar muerta, y se iniciará un contador de 1 minuto por ejemplo, tras completarse el ciclo del contador la entidad reaparecerá en su lugar de inicio con la salud y mana/energía al máximo, pasando a estar de nuevo en el estado cero.







Bueno.. que os parece el esbozo del prototipo de enemigo "casi inteligente" ?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby kozka » Thu Apr 12, 2012 5:07 pm

eso es bastante generico y especifico para las necesidades de tu juego pero bueno esta bien.

auque inteligente inteligente no lo veo XD...mas bien tiene instinto de matar Xd..

sensores ----> memoria----> accion ----->grado de satifaccion con el objetivo pretendido---->memoria...........y asi otra vez y otra .

como cuando luchas en el stret figther y el enemigo pilla tu estrategia habia maquinas con una ia bastante lista que aprendia tus trucos y te jodia....

si pretendes hacer algo mas complejo estan los:
algoritmos geneticos
http://es.wikipedia.org/wiki/Algoritmo_gen%C3%A9tico
y las redes neuronales
http://es.wikipedia.org/wiki/Red_neuronal_artificial

que igual te valen de idea
User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby erkosone » Thu Apr 12, 2012 11:06 pm

Si, se trata de generar un esquema de lo que sería un enemigo genérico para cualquier juego, luego ya se añaden los atributos especiales de cada enemigo por separado, pero me gustaría hablar de la estructura base de un enemigo.

Lo que comentas sobre la memoria? a que te refieres? me he quedado intrigado.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby necro_vampire » Fri Apr 13, 2012 3:31 am

el problema es la gestion de la "memoria"...
si guarda las "experiencias", y luego tiene que elegir como reaccionar en base a esas experiencias, puede tardar un poco dependiendo de la cantidad....

por ejemplo si se trata de encontrar el resultado a algo, los pasos para llegar a ese resultado por el camino mas corto...
( el ejemplo de los baldes o el rompecabezas de 8 )

Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby kozka » Fri Apr 13, 2012 9:08 am

necro XD el video mola porque no funciona nada XD.....

el problema erkosone es el nombre del post..has puesto "enemigo inteligente" y lo que tu has descrito es una maquina programada con
una ia muy muy muy limitada que no aprende pero la que se usa en la mayoria de juegos,ya que no es necesario dotarlas de mas.


descripccion de tu enemigo generico(como veras esta muy limitado):

para ello la dotas de un sentido , que es el radar para detectar los personajes.y quizas el radar para detectar durezas.

sus propuestas de accion son: atacar si las condiciones preestablecidas se cumplen con los valores del radar.


una pequeña evolucion seria dotarla de otro sensor que detecte disparos y su accion de esquivarlos o defenderse
otra evolucion seria intentar acorralar al personaje
otra seria ponerse de acuerdo con otros enemigos en los movimientos a realizar para rodearlo
otra seria memorizar movimientos y acciones de personaje y evitar loops de comportamiento (como por ejemplo cuando saltas para matar a blanka en el street figther, que blanka se de cuenta y cambie sus comportamientos)

aqui pongo un video de lo que digo pero el tio es un pakete jugando(aparte la tecnica que te puse en el street figter 2 no esta por eso funciona el truco)


User avatar
kozka
 
Posts: 2111
Joined: Sun Feb 01, 2009 9:36 pm

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby erkosone » Fri Apr 13, 2012 10:43 am

Vale ya entiendo a lo que te refieres con memoria.
En la descripción del post hablo sobre algo genérico, no es que sea sencillo, que lo es, es que aveces no hace falta mas, la intención del post es a grandes rasgos hablar sobre el modo de actuar de un "bicho" o enemigo básico, no se, creo que el tema de la inteligencia artificial mejor dejarlo para un jefe? osea, un enemigo superior?

Por que lo que sería un lobo, conejo, tigre, un cocodrilo.. cosas así, no me jodas que si ya aprenden va a ser la leche matar un simple mosquito jeje.. pero la idea es muy buena, algún ejemplo de control de flujo de eso en plan sencillo?
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby necro_vampire » Fri Apr 13, 2012 4:30 pm

Lo mas dificil de esto, es hacer algo generico, porque la "inteligencia" depende de como use el contexto u ordenes disponible que tu les des...
es decir como reaccionar de la mejor manera en un contexto determinado + sensores/neuronas para darle mayor versatilidad...
Image
Rein (K´)ah Al-Ghul
Infected with the Krieger strain of the Human-MetaHuman Vampiric Virus.
User avatar
necro_vampire
 
Posts: 1372
Joined: Fri Oct 10, 2008 12:38 am
Location: Death Soul city???

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby Nightwolf » Fri Apr 13, 2012 5:52 pm

Una IA no será nunca inteligente (al menos con la potencia actual) Sino lo que se trata de hacer es que simule ese comportamiento. Hay juegos que lo hacen muy muy bien. Recuerdo el Laser Squad de amstrad, un juego que tiene más de 20 años, y cuya IA me parecía tremenda, es en realidad, tras analizarla detenidamente, muy sencilla, pero muy competitiva. Otro juego del que apenas jugué (pero me gustó mucho mucho) el Z, hablan muy bien de la IA que tiene.

Yo estoy a tiempos muertos haciendo algo que necesita una IA, y es algo que tenía muchas ganas de hacer y me parece muy divertido... ¡programar una IA! :) ¡Veamos como sale! (de momento se hace querer XD)

Edit: Bueno voy a aportar algo leches XD

Para mi juego, he establecido (sobre el papel) tres capas para la IA:

¿Cómo estoy yo?
¿Cómo estan las cosas mi alrededor?
¿Cómo está la cosa en global?

Teniendo diferentes prioridades dependiendo de la situación en la que esté. Esto permitiría un poco de juego en equipo por parte de la IA. Es decir:

Vale, a mí me están pegando, luego lo primero, es buscar cómo sobrevivir. Si yo estoy bien, ahora intento ver si algún compañero necesita ayuda. Si a mi alrededor está todo bien, entonces miro qué objeto general quiero hacer (tomar una torre, intentar un asalto, etc, etc) siento esto decidido por una "super IA" que supervisa todo el juego y va destinando "recursos" allá donde los necesite.

Claro que ésto es sobre el papel, luego.... ¡ya veremos!
User avatar
Nightwolf
 
Posts: 3032
Joined: Tue Oct 07, 2008 3:26 pm
Location: Aquí mismo.

Re: Hablemos sobre el diseño de un enemigo inteligente..

Postby erkosone » Fri Apr 13, 2012 6:02 pm

Muy interesante tu planteamiento, a esto mismo me refería, compartiendo puntos de vista todos vemos como lo plantean los demás y sacamos un punto de vista mucho mas global del asunto.

Gracias por compartir.
Me ha gustado tu punto de vista.
User avatar
erkosone
 
Posts: 10654
Joined: Tue Feb 24, 2009 2:13 pm
Location: Barcelona.


Return to General

Who is online

Users browsing this forum: No registered users and 5 guests