среда, 4 февраля 2015 г.

SpyQuest. 02 Симуляция жизни

Важным моментом в игре SpyQuest является симуляция жизни неигровых персонажей (NPC).

Игры разворачивается в парке, находящемся в черте города. Действия персонажей обусловлены их желаниями (потребностями), которые они выполняют во время прогулки в парке. Желания, находящие ближе к основанию пирамиды, приоритетнее, и выполняются раньше других желаний.


Класс каждого NPC содержит следующее свойство:
private List<WishValue> _wishValues;
Данное свойство хранит текущие показатели желаний, при этом в первую очередь будут выполняться «срочные» желания, потом «несрочные». Если в одну категорию попали несколько желаний, они будут выполняться соответственно приоритету пирамиды желаний. Персонаж не обращает внимания на те желания, что в данный момент располагаются в категории «допустимые», пока они не попадут в другую категорию.
Показатели желаний каждый такт игры меняются в направлении «срочных», некоторые быстрее других. Например, желание развлечься нарастает с предельного показателя категории «допустимые» до «несрочные» за 5 минут. Это говорит о том, что персонаж каждые 5 минут будет хотеть развлечений (например, полюбоваться скульптурами в парке).

Другими важными свойствами симуляции NPC являются:
private Action _action;
private float _actionDuration; 
Свойство _action отвечает за текущее действие, выполняемое персонажем. Поведение неигровых персонажей должно быть естественно: после выполнения желания NPC может задуматься на некоторое время, постоять, поразмыслить – в этом случае в качестве _action выставляется Action.Idling, а длительность действия _actionDuration назначается случайно в промежутке [1..10] секунд. Такое поведение усложняет игру охранника, ведь он может схватить не того посетителя парка.

Диаграммы составлены при помощи сервиса draw.io

Комментариев нет:

Отправить комментарий