Небольшой апдейт прогресса в строительной механике и сборе ресурсов.
Давно не писал о проекте, решил выложить все обновления за месяц одним постом. Из видимых улучшений: 1) Новая система смены дня и ночи 2) поддержка геймпада 3) новые ассеты (гг все еще заглушка) 4) новая разметка колонии. 5) пространственный звук (но сами ассеты звуков пока что не готовы).
Привет всем, последние несколько недель я занимался прототипированием некоторых компонентов ИИ, улучшая поведение агентов в игре. Подход имеет в основе метод "job givers", который включает в себя кастомный планировщик задач похожий на GOAP. Само улучшение пока небольшое, но в будущем на его основе я буду строить другие поведения для агентов. Вкратц…
Осталось прикрутить хот-релоад. Сам код довольно простой потому что почти всю тяжелую работу выполняют другие библиотеки: asefile – парсер для файлов и image – буфер с помощью которого можно собрать атлас из фреймов анимации. Моя работа в том чтобы записать фреймы в атлас и запомнить какие кадры каким индексам из этого атласа соответствуют.
Для чего это нужно? Можно быстро находить медленные системы и другие узкие места. Этот плагин конечно пока не дает такой подробной диагностики как offline профайлеры вроде superluminal или tracy, но зато работает в реальном времени и дает быстрый сигнал, который дальше уже можно изучить в более продвинутом софте. Идея в том чтобы оптимизировать UX…
Экспериментирую с боевой системой и инвентарем. Попробовал написать простую систему для скелетной анимации чтобы упростить себе работу над созданием разных оружий в моем прототипе. Подглядел этот прием в Archvale, но скорее всего это много где используется. На видео анимация с несколькими видами рубящего оружия. Что думаете?
Долго тянул, но вчера вечером добавил базовую систему боев. Все очень просто – система AI агента отправляет события урона со всякими параметрами, обработчик их применяет и запускает анимацию деспауна (ее пока что нет). В событие можно добавить тип оружия, урона, прямой или по площади и прочее. Обработчик может читать параметры целей (броню и прочее…
Добавил начальный хот-релоад в движок для карт созданных в LDTK (такой универсальный 2D редактор уровней для спрайтовых игр). Я долго тянул с этой фичей, но она оказалась реализуема за 30 минут. Уровень загружается в свою иерархию в ECS которую мы потом подменяем на новую когда обновляется ресурс файла карты. До этого приходилось перезагружать прил…
Доработал то как шейдятся объекты над полом. Я разделил пол, стены, и "остальные объекты" на 3 отдельных слоя (RenderLayer в Bevy). Текстуры этих слоев затем передаются в один фрагментный шейдер для всего экрана где они по разному освещаются заранее посчитанной текстурой света пола и затем смешиваются. Думаю для начала получилось неплохо. Сам метод…
Существенным изменениям подверглась система ECS.