Главная Юзердоски Каталог Трекер NSFW Настройки

Gamedev

Ответить в тред Ответить в тред
Check this out!
<<
Назад | Вниз | Каталог | Обновить | Автообновление | 4 5 3
Checkmate, mate Аноним # OP 27/04/24 Суб 17:23:26 947379 1
2024-04-2719-20.png 74Кб, 1704x953
1704x953
2024-04-2719-19.png 87Кб, 1695x953
1695x953
2024-04-2719-05.png 107Кб, 2116x1186
2116x1186
Давно участвовали в Dungeon Crawler Jam 2023 и сделали игру про шахматы (отчасти). Она вышла сыроватой, но с потенциалом и интересной концепцией. Мы ее сильно изменили, оставив основные элементы, и теперь планируем выкладываться в стиме. На итче можно поиграть в старую версию игры. Здесь буду выкладывать некоторые новости и инсайды по игре.

Itch.io: https://autremelon.itch.io/checkmate-mate
Аноним # OP 27/04/24 Суб 17:38:54 947384 2
Уже сделано:
Редактор уровней
Интеллект всех фигур
Техническая часть руки игрока
Обновленный визуал локаций
* Новые геймплейные системы, улучшающие игровой опыт
Аноним # OP 29/04/24 Пнд 13:25:45 947683 3
imagefefe.png 70Кб, 949x362
949x362
0COE9LU81k.mp4 1564Кб, 1570x884, 00:00:09
1570x884
кстати, при работе над картой invasion возник баг, на который пришлось потратить несколько часов на исправление.

в чем суть:
почти все в проекте работает через шину событий. карта invasion подписана на шину и имеет одну реакцию на событие входа в комнату, в которой прописано, что все непешки умирают, а на их месте спавнятся пешки (а при спавне любая фигура сразу подписывается на шину событий). в итоге получается ситуация, что во время рассылки событий появлялись новые подписчики. код проходит по списку подписчиков методом ForEach, который не допускает модификаций списка, всякий раз вызывая ошибку.

использование расходников у нас реализовано перетаскиванием карты в центр экрана (происходит проверка отпускания лкм каждый кадр, при успешной проверке активируется эффект карты и она пропадает). проблема в том, что карта invasion выдает исключение при использовании, поэтому действие использования карты не может завершиться до конца, по итогу карта висит на экране и каждое обновление кадра действие этой карты вызывается до тех пор, пока не произойдет переполнение памяти.

для решения этой проблемы я ввел переменную, которая отражает глубину вызовов событий. при обработке события, не вызванного другим событием, переменная равна 0, ее значение увеличивается на единицу при обработке следующего связанного события, и вычитается на единицу после того, как все подписчики получили событие. по сути, переменная отражает количество событий в цепочке, которое привело к обработке текущего события.

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

в итоге я и карту сделал, и весь код шины переписал
Аноним 29/04/24 Пнд 13:27:53 947684 4
прикольно )
Ответить в тред Ответить в тред

Check this out!

Настройки X
Ответить в тред X
15000
Добавить файл/ctrl-v
Стикеры X
Избранное / Топ тредов