Все заметки

Первый людум со своим движком

Сходил короче на людум со своим движком. Решил пойти в соло, чтобы ни на что не отвлекаться и просто фигачить сколько успею. Хотелось посмотреть, смогу ли я собрать что-то играбельное за пару дней.

Во-первых, хочется отметить что соло – это топ. Времени на разработку мало, поэтому отсутствие затрат на коммуникации, споры и всякие синхронизации очень сильно помогают. А может мне просто в одного работать комфортнее, хз.

Во-вторых, вышло довольно неплохо. Я хотел написать игру-арену, где надо отбивать атаки толп монстров. Еще хотелось зафигачить смену времени суток. Выглядеть будет симпатично и добавит разнообразия. Монстры могут появляться только ночью, а днем нужно будет заниматься каким-нибудь собирательством и крафтом чтобы подготовиться к предстоящей битве.

Итоговая тема челленджа не совсем сочеталась с моими желаниями (Stuck in a loop), но я забил болт и решил для себя, что смена дня и ночи это тоже своего рода цикл.

Чтобы уложиться в два дня, я переиспользовал все что только мог. Тырил системы, которые я уже писал для петушиной игры и по необходимости допиливал их напильником, чтобы все работало как надо. К примеру, ИИ у противников-колдунов такой же как и у петухов: они рандомно выбирают точку для перемещения и по кд стреляют в противника если достают до него. Боевую систему дальнего боя я взял как есть, а также сделал ее копию и в результате некоторых перехерачивательных манипуляций получилась система ближнего боя.

В светлое время суток, на острове, где находится игрок, случайным образом генерируются различные растения, которые можно собирать и варить из них зелья. Всего видов трав три: красная для зелий здоровья, желтая для зелий усиления и синяя для взрывных зелий. К сожалению, я не успел реализовать механики для синей травы, поэтому в текущей демке она выступает в роли сорняка. Зато крафт остальных двух зелий получился как надо.

Для визуализации смены времени суток, пришлось несколько расширить систему рендеринга. Я добавил возможность прокинуть в пиксельный шейдер матрицу-фильтр, которая при перемножении на цвет пикселя дает другой цвет. Типа так можно менять уровень красного, зеленого и синего в текущем пикселе. Это позволило создать эффект ночи и заката. Ну а матрицы я тупо захардкодил в системе смены дня и ночи.

Вообще хардкод и говнокод на время людума должны стать лучшими друзьями разработчика я считаю. Начинаешь запариваться и думать как сделать лучше и все – писос и отсутствие результата.

Если говорить о том, как показал себя движок, то каких-то неожиданных фейлов не случилось. Временами бывают странные полосатые артефакты на месте соединения спрайтов. Они проявляются при определенном ракурсе камеры. Надо будет поресерчить и узнать как фиксить такое. Ну и еще иногда возникают проблемы с фэпэсами. Это может возникнуть сразу же при загрузке страницы и лечится только если пару раз ее обновить. Уж не знаю характерно ли это только для режима разработки или на проде это тоже случается. Возможно по той же причине в Firefox обе мои игры превращаются в слайдшоу. Кажется что-то не так с game loop-ом. Короче тоже надо исследовать и разбираться.

А ну и конечно сильно не хватало графического редактора для описания конфигов сцен и игровых объектов. И то и другое у меня хранится в json-ах и собирать все это дело руками - то еще занятие. Особенно меня накрыла грусть во время настройки переходов в анимации персонажей. Наверное этим я и займусь в ближайшее время.

Поиграть в игру можно по этой ссылке: https://michailremmele.github.io/ludum-dare-47/