Могу посоветовать взять уже готовый качественный вариант ИИ на gml.
Ведь тебе прийдется и боевой ИИ делать...
Только, в моем случае, приходилось много перековыривать. Не только для оптимизации (
Da Man правильно говорит о разбиении на "online A-Life" и "offline A-Life", так надо делать для больших мап), но и для добавления дополнительных фич: "конус" (по факту - треугольник) зрения npc, просчет line-collision'ов для стрельбы, система алертов (с временем затухания), npc убегал когда мало hp, стрейфил для уклонения от вражеских пуль, ныкался для перезарядки, запоминал последнее место где был увиден игрок, обнаружение игрока в зависимости от освещенности местности где он находится (интегрировал с светловым движком) и множество других фич добавлял.
Но база была начальная - нормально реализованный поиск пути, зачатки союзнического ИИ и удобная система построение сетки с помощью используя практически любые преграды parent-object'ов в GM (мне, например, это было очень удобно для интеграцией с системой освещения - не надо было новые object'ы создавать отдельно для преград ИИ).
Сначала думал делать, что бы npc просчитывали динамические преграды (ящики, бочки, и т.п.), но постоянно обновлять всю сетку был не выход. Позднее, стал обновлять только по определенному радиусу кругом игрока, но, в итоге, решил что эффектнее будет смотреться когда npc во время боя расталкивали ящики и стреляли по ящикам. Смотрелось очень красиво.
Так что, советую брать Top-down shooter AI example v2 by NoodleNog, но прийдется многое переделывать и доделывать.
Там еще изначально интеллект использования турелей есть прикольный, но тоже дописывать надо