Поведение противников, переработка слоев и меню паузы.
Когда я начал добавлять противников в игру, возникло сразу несколько проблем. Точнее парочка возникла, а остальные я не замечал. Все они связаны со слоями. Игра 2д, но я пытался создать иллюзию того что игрок может быть перед деревом, а может быть и за ним. Так было с каждым элементом ландшафта. Это работало так: есть условное дерево-родитель от которого наследуются все остальные деревья, у родителя есть скрипт, который проверяет, если игрок выше, то выходим на передний план, то есть прибавляем +1 к слою, в ином случае уходим на задний план, то есть -1 к слою.
Так это работало до определенного момента, как раз пока я не начал добавлять противников. Ведь противники тоже должны иметь возможность заходить за дерево или ходить перед ним. Я учел этот момент. Но потом обнаружил, что за деревом может быть игрок, а перед ним противник. А потом я столкнулся с ситуацией когда множество деревьев в одной точке работают некорректно. Таким образом один несчастный скрипт дерева был на абсурдные 120 строк кода.
В один момент я психанул и начал думать как это исправить (На самом деле я напиздел, я просто психанул и ушел пить кофе, идея пришла сама по себе). В общем вместо всех этих проверок элементы ландшафта просто при запуске сцены получают свою координату Y и делают ее слоем. Всё. Вот так просто получается целая куча слоев. Карты не бесконечные, не большие, поэтому в производительности это не упадет. А вот игрок обновляет свой слой постоянно. 120 строк магическим образом превратились в просто 2 строки.
Чуть позже я столкнулся с новой проблемой касаемо слоев, но решил все еще одной строкой. Что в любом случае лучше, чем первое решение, которое к тому же не работало как надо.
Потом я приступил к поведению противников, что бы они преследовали игрока, атаковали, наносили и получали урон. Спустя где-то пол часа, когда были настроены все сцены, написан код, я запустил игру и получил вот такой забавный "душ" из снарядов для слайма.
Потом уже начал все полировать, убирать лишнюю физику и т.д. Добавил меню паузы, а то как это, игра без паузы не игра. В общем результат ниже.
Да, работы еще вагон и маленькая тележка, но процесс мне пока что только в радость, так что со временем все станет выглядеть лучше.
Дальше планирую набросать баланс-табличку, что бы понимать, что именно я хочу что бы игрок ощутил от процесса, и полировать что уже есть. Например, когда противники умирают, у них еще какое-то время остаются тени, хотя сам спрайт уже начал исчезать, таких мелочей еще много можно найти.
Больше процесса можно видеть у меня в ТГ: