Вернуться на главную страницу


Исскуственный интеллект

    Что может делать юнит в конечно счёте, это перемещаться в пространстве и несколько воздействовать на окружающее (безусловные действия). Необходимо целеобразовать его перемещение и воздействие.
    Прежде всего у юнита есть цель - выживание. Чтобы выжить он должен соблюсти несколько условий (некоторые под-цели). Для достижения этих под-целей у юнита есть схемы действия для их достижения.
    Кроме того юнит понимает некоторую важную для него информацию. Например он запоминает врагов и друзей, и может рассказать своим друзьям о своих врагах. Помнит те области в глобальной местности, где он был подвергнут опасности, и те места где был в безопасности. При социальном построении, юниты обмениються информацией важной для группы и для каждого.
    Большинство условных данных, нужных для принятия решения беруться из глобально мира - эта информация влияет на принятие решения юнита. Все операции выполняються исходя из этих простых числовых данных, взятых из глобального мира и субъектов.     Существует также данные личные - для каждого юнита, и общие данные для всех. Общие это как например сведения о названии местности или её предназначения, а личные - сведения об опасности данной местности.
    Вобщем, ничего слишком сложного. Простая модуляция. Есть модуль выживания, есть модуль группы (юниты объеденяються в группу и подчиняються правилам группы), есть модуль боя. Каждый модуль это набор действий исходящий из нужных условий, набор     действий безусловных - перемещаться, взаимодействовать. Есть другие наборы действий.
Можно также сделать точную безусловную скриптизацию.
    Ниже приведена ранняя, может быть не совсем точная попытка детализировать.



Простые безусловные действия:

- Ходьба (параметр "точка в глобальном мире или относительная точка")
- Взятие и использование предмета (параметр "имеющийся предмет")
- Информация


Действия исполнительные:

- Поиск предмета
            параметры (фоновый или активный)
                  "ходьба(туда куда надо)"
                  "использование предмета(взять предмет - id)
                   использовать/взять)"


- Сохранение энергии
            параметры
                  если энергии менее 30 процентов то "использование предмета" если предмета нет то "поиск предмета"

- Запас энергии
            параметры
                  "поиск предмета"


Действия условные:

- Сохранение жизни
            "Cохранение энергии", "Запас энергии", "Сохранение целостности"


Пояснения.
    Простые безусловные действия - действия которые конечны, они выполняются постоянно: ходьба, различное взаимодействие с окружающим миром. Имеют параметры выполнения, например идти можно в точную точку, а можно двигаться просто в ту область или сторону.
    Действия исполнительные - это целый набор безусловных действий в опредлённом порядке и в опредлённых условиях. Т.е. это простые задачи, к примеру "идти туда и взять тот предмет если есть", или "перенести один предмет в другое место".
    Действия условные - состоят из действий исполнительных. Это цели, которые юнит достигает с помощью нужных исполнений.

Вобщем здесь я думаю всё понятно и просто. Проработка идёт с низу вверх. Отладить совместимость, приоритет, чтобы действия не конфликтовали с друг другом, дело времени.


    Информация - всегда необходима, чтобы юнит знал какие имеються условия, данные, и исходя из этой информации принимаеться решение. Например информация о точке, или области в глобальном мире, информация о других юнитах(врагах, союзниках), о том что юнита окружает в данный момент и многое другое. Информация это отдельная область различных данных добавляемых изменяемых постоянно когда необходимо, чтобы можно было в любой момент что-то быстро узнать. Есть личная информация, для каждого юнита, а есть общая, для всех. Например юнит который атаковал другого юнита, заноситься в список врагов, и встретив данного юнита, решение как поступать далее, выноситься из этого воспоминания. Юниты одной группы обмениваються данными о врагах и они становяться общими, получая той или иной индекс опасности.
Hosted by uCoz