Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИИ в играх.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
139.26 Кб
Скачать

Одномерная табличная схема «стимул-реакция»

В первом приближении простейшая модель поведения животного может быть рассмотрена как совокупность стимулов – внешних или внутренних механизмов и раздражителей, оказывающих влияние на внутреннее состояние его нервной системы – и непосредственных ответных реакций на них. Так, испытывающее сильный голод животное займётся поисками пищи, чем-то испуганное – примет меры для защиты или бегства - и так далее. Если животное находится под воздействием нескольких стимулов одновременно – например, хочет есть и спать – будет выбран имеющий высший приоритет или просто наиболее сильный.

Подобным образом может принимать решение и несложный искусственный интеллект. В рамках данной схемы предположим, что ИИ управляет действиями некоего персонажа или существа, противостоящего игроку – например, дракона.

Для осуществления работы данной схемы составим набор стимулов, которые могли бы руководить классическим сказочным драконом:

  • Интерес

  • Агрессия

  • Осторожность

  • Голод

  • Усталость

  • Страх

Чтобы как-то охарактеризовать степень (силу) воздействия того или иного стимула на дракона, введём характеризующий его численный показатель, значение которого будет изменяться от 0 (стимул отсутствует) до 1 (максимальная сила воздействия).

Составим таблицу, характеризующую дракона на момент встречи с игроком:

Стимул

Интерес

Агрессия

Осторожность

Голод

Усталость

Страх

Сила воздействия

0.53

0.15

0.08

0.33

0.29

0.11

По данной таблице видно, что наиболее мощным стимулом здесь является Интерес – дракон ещё не встречал игрока на своём жизненном пути, и потому, в силу малости остальных стимулов (пороговые значения для срабатывания тут должен установить опытным путём сам разработчик), приблизится к игроку. По мере уменьшения расстояния до игрока значение Интереса будет снижаться, и, когда дракон достаточно подробно изучит игрока (при условии того, что игрок не будет осуществлять в это время никаких активных действий), таблица станет выглядеть вот так:

Стимул

Интерес

Агрессия

Осторожность

Голод

Усталость

Страх

Сила воздействия

0.02

0.15

0.12

0.33

0.29

0.11

(для простоты предполагаем, что вид игрока не оказал на дракона никакого эффекта, однако вид его оружия заставил дракона несколько насторожиться)

В таком случае, наиболее сильным стимулом для дракона становится Голод, и игрок, являющийся для дракона потенциально съедобным, будет им атакован:

Стимул

Интерес

Агрессия

Осторожность

Голод

Усталость

Страх

Сила воздействия

0.02

0.85

0.12

0.33

0.29

0.11

В том случае, если игрок, обороняясь, наносит дракону заметный урон, сила воздействия Страха и Усталости будет расти с каждым полученным ранением, а Агрессия будет снижаться:

Стимул

Интерес

Агрессия

Осторожность

Голод

Усталость

Страх

Сила воздействия

0.02

0.31

0.12

0.33

0.47

0.54

Когда стимулы Усталость или Страх станут преобладающими, то дракон прекратит бой и попытается спастись бегством.

Скорость изменения силы воздействия стимулов, в свою очередь, задаётся разработчиком в соответствии с характеристиками и даже с характером конкретного противника: задав высокую скорость роста Страха, можно легко создать оппонента-труса, предпочитающего спасаться бегством при первом же ранении; установив скорость небольшой или нулевой, можно создать полную его противоположность. Также, населяя виртуальный мир животными, можно, к примеру, заранее задать самке кабана, охраняющей своё потомство, заведомо завышенную Агрессию (при встрече с нею игрок будет сразу же атакован), а лесному оленю – высокое значение Осторожности (чуть заслышав игрока, тот бросится бежать, забыв о прочих своих делах). Подобная гибкость даёт возможность разработчику достаточно легко и свободно настраивать поведение персонажей, управляемых ИИ. К тому же, список стимулов можно расширять почти неограниченно, а сами значения сил их воздействия – связать между собой определёнными закономерностями или внести некую произвольно изменяющуюся поправку, что заметно разнообразит поведение даже, казалось бы, одинаковых существ.

Важное допущение, на котором целиком основана работа данной схемы – ИИ в каждый момент времени находится в единственном состоянии. Так, в описанном выше примере дракон, обнаружив игрока, стал исследовать его, после чего вступил в бой, а в конце спасался бегством. Все эти состояния должны быть чётко регламентированы на этапе разработки поведения ИИ и прописаны в коде самой игры.