Методы, основанные на рефлексах, или рефлексивные (reflexive) методы, обладают целым рядом преимуществ. Фактически, рефлексивные методы в системах ИИ присутствовали в большинстве игр еще с самого начала развития игровой индустрии. Как уже было показано выше, эти методы часто расширялись для обеспечения недетерминированности, однако такие расширения несложно привести к форме детерминированного соответствия.
Применение в стандартных системах ИИ
Основное преимущество рефлексивных методов моделирования систем ИИ заключается в том, что они полностью детерминированны. Поскольку для каждой входной конфигурации заранее известна выходная конфигурация, это позволяет в максимальной степени оптимизировать нижележащий программный код и структуры данных. Процесс отладки также становится тривиальным, поскольку в случае ошибки найти ее источник достаточно просто.
При этом время получения выхода в таких системах практически не зависит от их сложности. Это объясняется тем, что решение представляет собой простую рефлекторную реакцию, получаемую чуть ли не мгновенно без размышлений и перебора возможных вариантов. Именно поэтому такие активизируемые системы являются практически идеальными для использования в играх.
Сегодня известно достаточно много примеров успешной практической реализации подобных систем, причем не только в компьютерных играх. Но, конечно, наибольшее применение такие системы нашли именно в играх, как только в них начали предприниматься первые попытки моделирования ИИ. Исторически сложилось так, что традиционные системы ИИ в играх используют одну или несколько следующих технологий.
> Машины обработки сценариев (scripts engine) — небольшие программы (как правило, основанные на реакциях), результаты вычислений которых зависят от входных параметров. Обычно для упрощения задачи языки сценариев представляют собой подмножество "настоящих" языков программирования.
> Системы, осношшные на правилах (rule-based system), представляют собой наборы операторов вида if ... then, манипулирующих значениями переменных. Хотя возможности таких систем более ограничены, чем у движков обработки сценариев, они имеют свои преимущества.
> Конечные автоматы (finite-state machine) — это основанные на правилах системы, которые можно применять к строго ограниченному набору ситуаций (так называемых состояний). Условия перехода из одного состояния в другое строго определяются структурой конечного автомата.
Эти стандартные технологии создания систем ИИ на практике доказали свою жизнеспособность. Особенно часто для решения проблем моделирования ИИ применяются машины обработки сценариев (подробнее об этом говорится в главе 25, "Сценарная подцержка тактических решений"), поэтому их можно с успехом использовать в подобных задачах. Системы, основанные на правилах, (описываются в части II) и конечные ашхэматы (им посвящена часть IV) также можно создать на основе сценариев. Однако если подходить к ним с учетом особенностей, присущих таким системам, при их использовании можно извлечь дополнительные преимущества.