Все заметки

Итоги 2025 года

Раньше я не подводил итоги года, но после того как я перестал вести доску задач (из Trello меня погнали, потом и из Notion) я решил, что заметок в Телеграме мне достаточно (надежное же место, да?) и лучше я буду детальнее описывать над чем работаю в свой канал. В целом, за год получилось сделать довольно много крупного и полезного.

По задачам

– Мультивыбор элементов в редакторе: выделение рамкой, выбор с шифтом в проводнике. Копирование, удаление и вставка выборки по ctrl+C, ctrl+V, ctrl+X. Очень долго этого не хватало, любое серьезное редактирование сцены превращалось в кошмар, из-за необходимости работать с каждым объектом по отдельности.

– Звуковая система. Реализация довольно простая без поддержки пространственного звука, но можно разделять звуки на разные дорожки, управлять из кода воспроизведением через события и регулировать громкость индвидуальных треков или дорожки целиком.

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

– Одна из самых крутых задач на мой взгляд – это декораторы для регистрации игровых систем и компонентов. Ранее нужно было писать много кода, чтобы сообщить редактору как отображать кастомные компоненты и системы. А при изменениях нужно было каждый раз перезагружать редактор. Теперь через декораторы редактор самостоятельно собирает по игре все с чем умеет работать. Все изменения в коде редактор подхватывывает автоматически и отображает без необходимости перезапуска.

– Cнова переписал рендерер. На этот раз на Pixi.js. Надеюсь что в ближайшие годы я больше не буду его переписывать, а только расширять. Помимо спрайтов научился рисовать различные геометрические фигуры и bitmap текст. На подходе удобный способ добавлять шейдеры. Сам рендеринг за счет более подходящей библиотеки для 2D стал быстрее да и бандл немного уменьшился.

– Ну и доработки по Transform-у о которых я рассказывал в последний раз.

По джемам

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

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

Что было еще

Сходил на подкаст к @xufostation. Поговорили про разработку моего движка и джемы. Опыт интересный хоть и было немного не по себе, будучи ноунеймом идти на подкаст. В очередной раз спасибо Сергею, он и с докладом на Holy мне очень помог в свое время, и новых людей сюда привел.

Планы

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

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

Пока не знаю хочу ли я продолжать с джемами. Возможно сделаю перерыв с людумами, но попробую посетить GMTK если он снова будет продолжаться 4 дня или больше.

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