Кнопка перезагрузки редактора
При работе с редактором бывают ситуации, когда он реагирует на изменение в коде проекта и рисует уведомление с просьбой его перезагрузить. Как оказалось на практике это происходит слишком часто и алерт надоедает.
При работе с редактором бывают ситуации, когда он реагирует на изменение в коде проекта и рисует уведомление с просьбой его перезагрузить. Как оказалось на практике это происходит слишком часто и алерт надоедает.
Какую бы книгу или статью по проектированию игровых движков я не брал, всегда есть упоминание того, что события можно обрабатывать синхронно или же откладывать выполнение формируя некую очередь. Каждый подход имеет право на существование, у каждого есть свои плюсы и минусы.
Для чего вообще может понадобиться всплытие событий в движке? Представим, что есть система, которая обрабатывает различные эффекты вроде "Нанести персонажу X урона", "Вылечить игрока на Y хп" или "Отравить врага на Z секунд". Как узнать о том, что к какому-то объекту применили эффект?
Шесть лет назад когда я вел летний курс по разработке игры на плюсах, один студент спросил как правильно передавать события от одной системы к другой.
Обработка ввода – это вообще первое, что я написал в движке и сейчас, когда я смотрю на код написанный 5 лет назад, некоторые моменты хочется поменять.
Во время проведения воркшопов всплыл вопрос: можно ли как-то уменьшить количество констант в коде проекта? В системах, для получения какого-либо компонента из объекта, нужно указать его имя в формате строки. Делать это приходится очень часто, поэтому со временем проект обрастает кучей строковых констант.
Заключительная часть воркшопа по написанию платформера. Добавили на уровень противников и написали боевую систему.
На текущем этапе разработки я планировал закругляться, поскольку минимальный набор функций готов и пора пробовать редактор в бою. Но обнаружилась еще одна серьезная проблема – отсутствие отмены изменений.
Последняя, но очень важная функция при рисовании уровня – это позиционирование объектов по сетке. Зачастую тайлы объектов располагают впритык друг к другу и делать это вручную "на глаз" – очень сложно.
Доработали анимацию персонажа, нарисовали уровень, прописали условия победы и поражения, и разобрались с камерой.