En lugar de resolver su problema, aquí hay una manera de tomar los limones y hacer limonada.
Hace muchos años, un amigo mío estaba trabajando en un FPS muy conocido que tenía precisamente el problema que usted describe: un área restringida tendría una cantidad de caracteres de IA que tenían posiciones particulares deseadas, y el algoritmo de búsqueda de ruta los golpeaba constantemente. Hola. En particular, el jugador, por ejemplo, arrojaría una granada en una pequeña habitación llena de enemigos, y los personajes de IA en el área intentarían correr hacia su salida, pero se toparían y terminarían deteniéndose, dándose la vuelta, golpear a alguien más, darse la vuelta, etc. Esto se ve muy poco realista.
Los intentos de construir un mejor algoritmo de búsqueda de ruta que podría ejecutarse con éxito dado el ajustado presupuesto computacional falló. Entonces, en lugar de resolver el problema de la búsqueda de caminos, mi amigo agregó un cheque muy barato a la IA: si una IA se ha topado con otra IA dos veces en un corto período de tiempo, deja de tratar de encontrar la salida y, en cambio, cúbrete. Entonces, ahora lo que sucede es que la PC lanza la granada y ve a un montón de enemigos corriendo hacia las salidas. Los que se golpean, se dan la vuelta y parece que se dan cuenta de que no pueden salir, por lo que se agachan y se cubren la cabeza justo antes de explotar. Esto es a la vez realista y altamente satisfactorio para el jugador.
¿Hay alguna forma similar de convertir la desventaja de su algoritmo de producción de colisiones y convertirlo en una ventaja?