Вы точно хотя бы раз видели, как персонажи в играх упираются в препятствия, но продолжают идти. Например, как на этой гифке:
В игровой разработке есть понятие «поиск пути» (pathfinding) — это процесс определения оптимального пути для персонажа из точки А в точку Б. Для определения пути алгоритму поиска нужны данные:
Начальная точка
Конечная точка
Пространство, в котором ищется путь. Ещё его называют навмеш (navmesh) — навигационный меш, то есть навигационная сетка
Прочие данные. Например, размер сущности, для которой определяется путь
Баг с идущими в препятствие NPC связан с навмешем. Навмеш представляет из себя расположенную на карте сетку с точками, по которым проходит путь. Обычно навмеш подготавливается на этапе сборки игры — для этого алгоритм подготовки навмеша анализирует все объекты на карте и её ландшафт. Объекты на карте влияют на навмеш несколькими способами:
Преграждают путь. Обычно подобное влияние на навмеш настраивается в самих объектах. Например, свойство для столба блокировать дорогу персонажу
Удлиняют или укорачивают путь. В зависимости от ландшафта у одного и того же пути может быть разная длина: например, в гору или по ровной поверхности
Либо никак не влияют — обычно это мелкие объекты, например, невысокий бордюр. Персонаж может ходить через них и наступать на них.
Хождение в столб на гифке связано с первым пунктом: столб должен преграждать путь персонажу, но не помечен как блокирующий, поэтому персонаж пытается пройти сквозь него, а не построить путь в обход.