Это упрощенный пример, но по нему можно понять две особенности такого подхода. Каждое из «состояний» («NPC блокирует вход», «NPC отходит в сторону и пропускает игрока») должно быть предусмотрено заранее и проверено на реакцию со всеми возможными взаимодействиями, никаких неожиданностей здесь не предусмотрено. Иными словами, все прописано заранее.
С помощью этого примера можно понять, что использование термина «интеллект» во многих случаях лишь преувеличение. Разработчики
Хотя система «машина с конечным числом состояний» может показаться сложной и тяжеловесной из-за необходимости просчитывать все возможные взаимодействия, она дает разработчику определенную гибкость. Каждую идею можно протестировать и при необходимости добавить новый элемент («Навык» или «Поведение»). Его легко интегрировать без проблем для остальной части архитектуры искусственного интеллекта. А когда все возможные ситуации проработаны, дизайнер ИИ отправляет этот документ разработчику. Тому остается лишь переложить случаи, описанные в диаграмме, на язык программирования.
Организованная охота
Объяснения выше могут показаться слишком оторванными от конкретики, поэтому давайте возьмем в качестве примера охотника. Это тип противников-людей, которые постоянно встречаются по ходу игры. Этот враг сражается в команде, в отличие от зараженных, которые подчиняются звериным инстинктам и действуют сами по себе. Поэтому охотники должны договариваться и согласовывать свои действия, когда противостоят игроку. Для этого разработчики наделили их следующими навыками: поиск, расследование, наступление, укрытие, перегруппировка, рукопашный бой, стрельба, бегство. Теперь им остается только ждать игрока и отвечать на его действия.
Для обнаружения нападающих охотник использует два чувства. Во-первых, это зрение. Поле зрения у этих противников устроено довольно сложно и раньше в подобных играх не встречалось. Учитывая мир
Эта система более сложная и реалистичная, чем, например, в
Второе чувство охотника, которое помогает ему заметить опасность, – слух. Это самая сложная система в игре, так как каждый живой элемент способен излучать звуковую волну, которая реагирует на препятствия в локации. Игрока окружает звуковой спектр, который изменяется очень сложным образом и достигает редкой степени реализма. Создание такой системы требует огромных трудов со стороны программистов и затраты множества системных ресурсов. Но, к сожалению, игрок практически не замечает ее конечный результат.
Как только охотник узнает о присутствии игрока, он переходит в режим «поиска», пока не найдет бездыханное тело товарища. Затем он переключается в режим «исследование», в котором его слух и зрение обостряются. Столкнувшись с игроком лицом к лицу, охотник включает сложный алгоритм ведения боя. Большую часть времени этот процесс работает нормально, но ужасно зависимым от особенностей местности. На закрытых или относительно небольших локациях последовательность действий охотника реалистична, а сражения динамичны. Но на более открытой территории – к примеру, в Питтсбурге или среди маленьких домов в пригороде – охотники легко теряют игрока и через несколько секунд возвращаются к своим делам, как ни в чем не бывало. Не слишком эффективная система, но в последние полгода разработки ее подправили. Увы, в итоге она недотянула до изначальных требований и не соответствует уровню реализма, который задали себе разработчики Naughty Dog.
Интеллект зараженных