| |
|
|
Вернуться на главную страницу
Исскуственный интеллект
Что может делать юнит в конечно счёте, это перемещаться в пространстве и несколько воздействовать на окружающее (безусловные действия). Необходимо целеобразовать его перемещение и воздействие.
Прежде всего у юнита есть цель - выживание. Чтобы выжить он должен соблюсти несколько условий (некоторые под-цели). Для достижения этих под-целей у юнита есть схемы действия для их достижения.
Кроме того юнит понимает некоторую важную для него информацию. Например он запоминает врагов и друзей, и может рассказать своим друзьям о своих врагах. Помнит те области в глобальной местности, где он был подвергнут опасности, и те места где был в безопасности. При социальном построении, юниты обмениються информацией важной для группы и для каждого.
Большинство условных данных, нужных для принятия решения беруться из глобально мира - эта информация влияет на принятие решения юнита. Все операции выполняються исходя из этих простых числовых данных, взятых из глобального мира и субъектов.
Существует также данные личные - для каждого юнита, и общие данные для всех. Общие это как например сведения о названии местности или её предназначения, а личные - сведения об опасности данной местности.
Вобщем, ничего слишком сложного. Простая модуляция. Есть модуль выживания, есть модуль группы (юниты объеденяються в группу и подчиняються правилам группы), есть модуль боя. Каждый модуль это набор действий исходящий из нужных условий, набор действий безусловных - перемещаться, взаимодействовать. Есть другие наборы действий.
Можно также сделать точную безусловную скриптизацию.
Ниже приведена ранняя, может быть не совсем точная попытка детализировать.
Простые безусловные действия:
- Ходьба (параметр "точка в глобальном мире или относительная точка")
- Взятие и использование предмета (параметр "имеющийся предмет")
- Информация
Действия исполнительные:
- Поиск предмета
параметры (фоновый или активный)
"ходьба(туда куда надо)"
"использование предмета(взять предмет - id)
использовать/взять)"
- Сохранение энергии
параметры
если энергии менее 30 процентов то "использование предмета" если предмета нет то "поиск предмета"
- Запас энергии
параметры
"поиск предмета"
Действия условные:
- Сохранение жизни
"Cохранение энергии", "Запас энергии", "Сохранение целостности"
|
Пояснения.
Простые безусловные действия - действия которые конечны, они выполняются постоянно: ходьба, различное взаимодействие с окружающим миром. Имеют параметры выполнения, например идти можно в точную точку, а можно двигаться просто в ту область или сторону.
Действия исполнительные - это целый набор безусловных действий в опредлённом порядке и в опредлённых условиях. Т.е. это простые задачи, к примеру "идти туда и взять тот предмет если есть", или "перенести один предмет в другое место".
Действия условные - состоят из действий исполнительных. Это цели, которые юнит достигает с помощью нужных исполнений.
Вобщем здесь я думаю всё понятно и просто. Проработка идёт с низу вверх. Отладить совместимость, приоритет, чтобы действия не конфликтовали с друг другом, дело времени.
Информация - всегда необходима, чтобы юнит знал какие имеються условия, данные, и исходя из этой информации принимаеться решение. Например информация о точке, или области в глобальном мире, информация о других юнитах(врагах, союзниках), о том что юнита окружает в данный момент и многое другое. Информация это отдельная область различных данных добавляемых изменяемых постоянно когда необходимо, чтобы можно было в любой момент что-то быстро узнать. Есть личная информация, для каждого юнита, а есть общая, для всех. Например юнит который атаковал другого юнита, заноситься в список врагов, и встретив данного юнита, решение как поступать далее, выноситься из этого воспоминания. Юниты одной группы обмениваються данными о врагах и они становяться общими, получая той или иной индекс опасности.
|
|
|
| |
|