Autor Tema: Programar IA para recolección de recurso capaz de ver su "entorno"  (Leído 368 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado TheJaj

Bueno, estoy haciendo un juego que tiene un mínimo de estrategia a la hora de recolectar recursos y por ende he programado la IA para ir de un punto "A" a un punto "B", pero es incapaz de rodear objetos que obstruyan su camino.

¿Algún consejo?

P.D: El utilizar path no me ha servido ya que los recursos los considero objetos que obstruyen el camino y por ello, los "peones" no se mueven hasta estos.


 
No Tienes Permisos Para Dar Puntos
point 0 Puntos

Este tema no recibió puntos.


Desconectado shaoran

  • Algún dios sádico es prueba de nosotros
  • Administrador
  • Okupa
  • *
  • Puntos: 614
  • Mensajes: 1.498
  • Agradecido: 7 veces
  • Sexo: Masculino
  • Nyu Kyu Software
    • Ver Perfil
Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #1 en: Marzo 07, 2018, 06:04:15 pm »
Hola TheJaj,

Lo que puedes hacer es algo como lo que te muestro a continuacion:

Step
Código: [Seleccionar]
if instance_exists (obj_B)
{
var inst;
inst = instance_nearest (x, y, obj_B);
mp_potential_step_object (inst.x, inst.y, 5, obj_Wall);
}


Descripción
Esta función permite que la instancia se mueva hacia una posición en particular definida por x / y, mientras intenta evitar los demas objetos.
Cuando la instancia colisione con una instancia del objeto especificado por el argumento "obj", esta cambiará la dirección del movimiento para tratar de evitar esa instancia y moverse alrededor de ella.
No siempre funciona pero en casos sencillos si.

« última modificación: Marzo 07, 2018, 06:08:39 pm por shaoran »
 
Los siguientes usuarios dieron las gracias a este tema: TheJaj


Desconectado TheJaj

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #2 en: Marzo 07, 2018, 09:17:14 pm »
Si bien funciona, tengo el problema de que tengo edificios interactuables que tienen la "colisión" para evitarlos. Y lo que quiero es que eviten estos edificios si su objetivo es ir a por madera en lugar de ir a un altar.

Tienes algún otro consejo? xD
 

Desconectado 3dgeminis

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #3 en: Marzo 08, 2018, 06:43:11 pm »
Lo mejor es agrupar todos los objetos que son solidos bajo un mismo objeto parent y hacer referencia a este cuando uses mp_potential_step_object
 

Desconectado TheJaj

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #4 en: Marzo 08, 2018, 09:18:04 pm »
Lo mejor es agrupar todos los objetos que son solidos bajo un mismo objeto parent y hacer referencia a este cuando uses mp_potential_step_object

xD

El hacer eso no sirve ya que las tienen que entrar en contacto con los edificios para producir recursos y los edificios son parte de esos obstaculos, por lo cual "evita" el edificio o simplemente no se mueve hacia el ya que es un ruta imposible.
 

Desconectado Clamud

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #5 en: Marzo 10, 2018, 06:35:42 am »
Podrías usar estados, y en cada estado usar diferentes objetos como obstáculos.
Además, si el escenario está hecho sobre una rejilla, puedes utilizar las funciones mp_grid_* que requieren menos procesamiento que las funciones mp_potential_*, pero son más difíciles de configurar.
 
Los siguientes usuarios dieron las gracias a este tema: TheJaj

Desconectado TheJaj

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #6 en: Marzo 10, 2018, 10:59:31 pm »
Podrías usar estados, y en cada estado usar diferentes objetos como obstáculos.
Además, si el escenario está hecho sobre una rejilla, puedes utilizar las funciones mp_grid_* que requieren menos procesamiento que las funciones mp_potential_*, pero son más difíciles de configurar.

Llevo varias horas contemplando tu respuesta y estaría bien si no fuera porque al usar el mp_potential solo se dedica a esquivar un objeto a la vez, por lo cual tendría que usar parets y cada objeto puede ser "hijo" de un solo objeto lo cual no me sirve y con el grid si bien lo estoy usando, el problema es que tendría que crear un grid por cada "peón".

De todas formas creo que voy a usar el grid hasta que encuentre una solución que me convalezca mas.
 

Desconectado TheJaj

Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #7 en: Marzo 10, 2018, 11:42:57 pm »
Al final he dejado que el "mp_potential" y he eliminado las variables que establecían el punto en que se detenían, y he cambiado las funciones de contacto con las de proximidad por lo cual cuando va a los edificios especiales queda corriendo al redor del edificio lo cual me hace gracia y por ellos se queda así por ahora. xDD
 

Desconectado shaoran

  • Algún dios sádico es prueba de nosotros
  • Administrador
  • Okupa
  • *
  • Puntos: 614
  • Mensajes: 1.498
  • Agradecido: 7 veces
  • Sexo: Masculino
  • Nyu Kyu Software
    • Ver Perfil
Re:Programar IA para recolección de recurso capaz de ver su "entorno"
« Respuesta #8 en: Marzo 11, 2018, 04:30:22 am »
Calcula la distancia a la que estas y cuando estes a menos de "x" suspendes el movimiento y haces la accion que tengas que hacer.

Utiliza distance_to_object para poder determinar esa distancia.

Saludos!