IA y percepción del entorno

En estos días estoy trabajando por mejorar la percepción del entorno de los NPC en el juego. La idea es que las entidades "analicen" sus alrededores y reaccionen como debe ser. Para ello he estado creando algunas funciones auxiliares que le permiten a los scripts de IA obtener la lista de miembros del grupo o de las entidades cercanas. En caso de que una entidad cercana pertenezca a una facción opuesta (más exactamente, a la facción opuesta, pues solo hay dos), pues la atacará, o quizás en un futuro evaluará si tiene alguna posibilidad de ganar comparando el nivel, estadísticas, ventaja numérica.
Por el momento la lista de vecinos es muy burda, pues coge todo en un área. Lo ideal es calcular solo los que realmente son visibles, o sea, que están frente a la unidad. Las unidades fuera del área visible llevarían otro proceso, que implica simular sentidos como la vista o el olfato y chequeos entre habilidades, como Percepción vs Sigilo. Hay que valorar modificadores como invisibilidad, ceguera o nubes de humo también.
En general el sistema se puede ampliar muy fácilmente con un poco de trabajo en el script y no me parece que sea excesivamente pesado para el CPU, aunque este proceso se ejecuta varias veces por segundo para cada entidad. Después de todo no me parece que el juego pueda correr en un Pentium III.

Comentarios