Logré obtener trabajo de búsqueda de ruta para una sola unidad, y logré evitar la colisión agente-agente, pero ahora necesito poder enviar un grupo de agentes a algún lugar.
Esta es mi configuración hasta ahora:
- Waypoint pathfinding
- La distancia mínima entre dos nodos es un poco más grande que el radio de la esfera límite más grande permitido para un agente.
- Los agentes evitan las colisiones con otros agentes haciendo un comportamiento de dirección I basado en clearpath
Así que ahora necesito enviar a mis agentes a algún lugar del grupo. He leído algunas publicaciones que dicen que una forma de hacerlo es crear un líder de grupo y dar a las otras unidades compensaciones a su posición.
Pero entonces el problema es, ¿qué pasa si no se puede lograr la formación del grupo? por ejemplo, desea formar un rectángulo, pero en la posición de destino hay una estructura cercana que le impide crear una configuración de rectángulo.
path-finding
rts
xcrypt
fuente
fuente
Respuestas:
En realidad, hay un artículo bastante bueno sobre esto en Gamasutra. Y cubre temas como formaciones y resolución de colisiones:
Y otro artículo de ellos sobre el mismo tema, que es un poco más corto pero tiene más ejemplos de pseudocódigo:
Finalmente, una cosa ingeniosa en la que pensar al implementar su sistema es la idea de que un "Flow Field" Supreme Commander 2 usó esto ; Y se basa en la investigación de Crowd Flows de la Universidad Estatal de Washington .
fuente
Creo que puedes tener una "entidad de bandada" invisible que es el jefe de la formación, y hacer que las otras criaturas se posicionen en relación con esta entidad. Si esta entidad puede rotar, entonces la posición relativa también rotará.
... oopos .. ya lo estás haciendo.
¿Qué hay de esto?
¿Por qué no puede calcular nuevas posiciones para las entidades que colisionan? No necesito ser elegante, tal vez simplemente trazar una línea desde el punto original deseado y el líder, y mover la posición deseada al centro de esta línea. Prueba de nuevo para colisión.
fuente