Недавно решил пройтись по всему проекту в поисках багов и появилась идея рассказать о том, как строилась и развивалась механика стелса. Итак, поехали!
Часть 1
Основной задумкой было создать патруль, которого игрок должен всячески избегать, чтобы оставаться незамеченным. Когда я только начинал реализовывать эту задумку, я еще не был искушен в использовании координат, а потому делил маршрут на зоны, на которых патруль начинал видеть героя. Они подписаны на скриншоте ниже.
Использованные события:
А1 – нижняя половина длинного коридора. Когда игрок заходит на событие А1, идет проверка, смотрит ли на него патрульный. Если нет, то включается переключатель, обозначающий, что игрок в этой зоне.
А2 – верхняя половина длинного коридора. Когда игрок заходит на событие А2, идет проверка, смотрит ли на него патрульный. Если нет, то включается переключатель, обозначающий, что игрок в этой зоне.
Б – середина коридора. Отсюда можно взаимодействовать с ящиком, в котором можно спрятаться от патрульного. Когда игрок заходит на событие Б, идет проверка, смотрит ли на него патрульный. Если нет, то включается переключатель, обозначающий, что игрок в этой зоне.
В – нижний короткий коридор. Когда игрок заходит на событие В, идет проверка, смотрит ли на него патрульный. Если нет, то включается переключатель, обозначающий, что игрок в этой зоне.
Г – верхний короткий коридор. Когда игрок заходит на событие Г, идет проверка, смотрит ли на него патрульный. Если нет, то включается переключатель, обозначающий, что игрок в этой зоне.
Патрульный — событие, которое движется. При столкновении с ним, патрульный обнаруживает игрока.
Мастер — событие, задающее маршрут событию «Патрульный». Также, это событие проверяет, включен ли хотя бы один переключатель зоны из перечисленных выше.
Таким образом, игрока ловят три типа событий: событие-зона, которое делает проверку, когда игрок на него становится, событие-патрульный, которое делает проверку при столкновении и событие-мастер, которое делает проверку, когда патрульный заходит в зону.
В следующей части я покажу, как используя зоны видимости, причинял себе немало боли.