Фронтенд Паштет @frontend_pashtet Channel on Telegram

Фронтенд Паштет

@frontend_pashtet


https://www.youtube.com/@frontend-pashtet

Фронтенд Паштет (Russian)

Фронтенд Паштет - это канал, созданный для всех любителей веб-разработки и фронтенда. Если вы интересуетесь HTML, CSS, JavaScript и другими технологиями, то этот канал идеально подойдет для вас. Здесь вы найдете полезные уроки, советы и рекомендации от опытных специалистов в области фронтенда. Кроме того, на канале Фронтенд Паштет вы сможете узнать о последних трендах в веб-разработке, новых инструментах и библиотеках. Присоединяйтесь к нам, чтобы расширить свои знания и навыки в области фронтенда! Для получения дополнительной информации и обучающих материалов посетите наш канал на YouTube: https://www.youtube.com/@frontend-pashtet

Фронтенд Паштет

14 Nov, 06:06


Паштетный Джем #8 стартует 22 Ноября

Продолжительность: 3 дня

Тема: выбирается голосованием в Discord

🗳 Ограничение: выбирается голосованием из списка
- Специальный Объект
- Размер Экрана
- Сеттинг

🎁 Призы: Рандомные Steam игры до 2х на команду

⬇️ Ворваться на джем ⬇️
https://itch.io/jam/pashtet-jam-8

Фронтенд Паштет

11 Nov, 10:26


Планы по улучшению рендеринга Godot

👍 Релиз Godot 4.3 можно считать окончанием перехода Godot к версии 4. Если в 4.1 и 4.2 еще оставалось много шероховатостей после переезда, то в 4.3 команда и контрибьютеры закрыли все основные проблемы. В частности, экспорт под HTML5 и поддржку OpenGL (compatibility renderer)

🍀 Теперь приоритеры такие:
- Производительность
- Улучшение запекания света
- Улучшение процесса создания визуальных эффектов
- Кастомизация рендеринга
- Улучшение screen-space эфектов (SSAO, SSIL, SSR, SSS)

🤔 Поговорим подробнее про кастомизацию рендеринга и фоновую компиляцию шейдеров

Кастомизация рендеринга

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

⚙️ Идея в том, чтобы запилить что-то похожее на Scriptable Rendering Pipeline в Unity, где каждый встроенный шейдер можно заменить своим или врезать кусок своего кода в базовый пайплайн рендеринга или хотя бы получить доступ к кастомным буферам. Это не просто облегчит задачи того же постпроцессинга, но и в целом сделает возможным реализацию ряда техник рендеринга

😊 В 4.3 уже просочились Compositor Effects для упрощения постпроцессинга. И даже есть демка с примером https://github.com/godotengine/godot-demo-projects/tree/master/compute/post_shader

Фоновая компиляция шейдеров

😭 Многие знакомы с проблемой компиляции шейдеров на лету и фризами, вызваными этим процессом - shader compilation stutter. В 4.4 эта проблема будет решена с помощью Убершейдера, который будет отрабатывать в моменты, когда требуется скомпилировать новый шейдер, а сам шейдер будет компилиться асинхронно в фоне.

👍 Это просто офигенное улучшение, и еще лучше, что это уже точно войдет в релиз 4.4

⬇️ Больше информации в этой новости ⬇️
https://godotengine.org/article/rendering-priorities-september-2024/

Фронтенд Паштет

04 Nov, 05:44


Вышел Terrain3D v0.9.3

Terrain3D это мощнейший аддон для создания локаций, написанный на C++

В верссии 0.9.3:

* Добавлена поддержка Compatibility Renderer

* Terrain3D теперь теперь доступен в AssetLib прям в Godot

* Трава, деревья и прочие пропсы теперь "прилипают" к земле, что позволяет удобнее модифицировать ландшафт

* Файлы терейна теперь хранятся отдельно для каждого региона, что приятеее для git

* Вагон улучшений производительности. В частности, Terrain3D теперь лучше дружит с occlusion и distance culling

* Пачка UX улучшений для кистей

Полный changelog:
https://github.com/TokisanGames/Terrain3D/releases/tag/v0.9.3-beta

Фронтенд Паштет

22 Oct, 05:55


Поиграли бы в такую игру?

Сделал сценкку в качестве практики по созданию окружения

Доволен тем, как получилось. Думаю, мне удалось передать настроение

Конечно, тут многое можно улучшить и добавить. И мне нравится, что у меня есть понимание того, что именно следует добавить. Раньше такого не было. Полная неопределенность

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

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

Хочу поддержать тех, кто учиться чему-то. Это очень сложный путь. И прогресс на нем почти незаметен на короткой дистанции, но это не значит, что его нет. Продолжайте, все получится

Фронтенд Паштет

15 Oct, 11:18


Большой, подробный урок по навигации в Godot 4.3

☁️ Из него ты узнаешь:
- как организовать передвижение по уровню со сложной геометрией
- как ограничить доступ к частям локации
- как заставить агентов избегать столкновений друг с другом
- как интегрировать в навигационную систему агентов различного размера
- как оптимизировать запекание NavigationMesh на лету

😈 Короче, ты узнаешь практически все, что вообще можно узнать о навигационной системе Godot

🔗 Ссылка на репозиторий с кодом в описании видео

https://youtu.be/yN3foEzah4U

Фронтенд Паштет

14 Oct, 11:39


Паштетный джем #7 стартует в эту пятницу

Продолжительность: 3 дня

🗳 Тема: выбирается голосованием в Discord

💫 Помимо темы на джеме будет ограничение

⬇️Присоединиться к джему⬇️
https://itch.io/jam/pashtet-jam-7

Фронтенд Паштет

12 Oct, 11:44


Апдейт по уроку по навигационной системе

Уже понятно, что видео будет не меньше, чем на час

Я разбил его на 3 секции:
- базовый уровень для новичков
- чуть более сложные примеры для уверенных
- ультра хард для любителей писать код и экономить на спичках

Базовый уровень позволит быстро решить простую проблему поиска пути из точки А в точку Б и закрыть видео. Это подходит большинству и я не хочу душнить народ ненужными деталями

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

Ни и уровень для задротов в основном про работу с навигационной системой из кода для тех, кто преисполнился в познании

Пишу видос уже второй день. 3 часа вчерашней записи были отправлены в мусорку т.к. мне не понравился подход к подаче материала. Я пытался абстрагироваться от других частей игры: сцены персонажа, построения локации. В итоге получилось запутано

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

Завтра еще буду писать и монтировать. Если не сдуюсь, то завтра выйдет урок. Если нет, то где-то на неделе

Фронтенд Паштет

10 Oct, 05:24


Чисто мой набор референсов

Не знаю почему, хотя знаю, конечно, но мне нравится вот это вот все жесткое, холодное и безлюдное

Фронтенд Паштет

09 Oct, 09:28


Создал канал на Яндекс Дзен

Залил пока часть shorts и одно длинное видео. Все следующие видео также буду дублировать на Дзен

Буду очень признателен за подписку

https://dzen.ru/frontend_pashtet

Фронтенд Паштет

09 Oct, 09:05


Выложил доп. видео для участников курса на Youtube

Добавил таймкоды, чтобы было проще найти нужный контент

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

https://youtu.be/O7nXsj69uk4

Фронтенд Паштет

04 Oct, 10:16


Коротко о том, как я провожу отпуск

Продолжаю пилить примеры для урока по навигации. Это уже пятый пример, если считать по количеству сцен в проекте

К слову, обход динамических препятствий работает весьма сносно

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

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

Я решил рассмотреть сразу почти все фишки навигационной системы, кроме:
- обхода препятсвий в 3D (это когда обходить препятствия можно сверху и сниху, например, если ты рыба)
- навигации в TileMap и GridMap

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

Фронтенд Паштет

02 Oct, 12:19


Продолжаю пилить урок по навигации

Решил сделать отдельный проект/репозиторий с примерами, чтобы можно было дернуть код и самостоятельно все покрутить

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

Вот, кстати, сэмпл из примера решения задачи ограничения доступа посредством двери

Работы еще много. Видео должно получиться большим, но мне нравится процесс. Навигационная система в Godot хороша

Фронтенд Паштет

20 Sep, 05:44


Тестирую оптимизацию запекания NavigationMesh на лету для динамического обхода препятствий (смотреть в консоль)

Я не ожидал, что оптимизированное запекание даст такой буст

Суть оптимизации: кэширование результатов парсигна статичной геометрии (локации) в файл с последующим добавлением геометрии данамических препятствий (коробок) ручками

Чем больше и сложнее геометрия локации, тем больше выигрышь. И даже в такой примитивной сцене из боксов он существенный - с 16-19 до 1-2 милисекунд

Все это делается в десяток строчек кода, сам подход описан в документации, но мне все равно пришлось потратить часов 5-6 на тестирование т.к. есть некоторое неочевидное поведение при парсинге

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

В общем, готовлю урок по навигации. Хочу, чтобы он был основательным. Поэтому выйдет он не очень скоро т.к. мне надо еще подготовить не мало примеров

Разумеется, в уроке подробно расскажу, как оптимизировать запекание NavigationMesh

Please stand by

Фронтенд Паштет

18 Sep, 08:22


Начал писать урок по навигационной системе в Godot

У меня не получилось взять тему как обычно: бегло пробежаться по документации и API reference, и запилить навигацию для своей игры

Сложность в том, что использование NavigationAgent имеет не самую очевидную логику в момент, когда требуется обходить динамические препятствия

Плюс подсистема обхода препятствий (avoidance) имеет достаточно узкий спект применения, из за чего приходится лезть глубже и общаться с чуть более низкоуровневым NavigationServer

К тому же такое низкоуровневое общение является фактически must have, если в игре используется процедурная генерация или динамическое изменение локации в игре

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

Короче, пока еще играюсь, набрасываю примеры, тестирую, но и параллельно пишу текст для урока

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

Плюс в доке есть отличные советы по оптимизации, что помогает понять, какие из операций потенциально тяжеловесные

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

Единственное, что сомнительно в этом плане так это то, что навигация в 4.3 является эксперементальной. Материалы для 4.0 по сабжу уже частично устарели, что с одной стороны делает тему актуальной в данный момент, но с другой стороны есть риск, что урок также устареет

Фронтенд Паштет

17 Sep, 05:51


Про последний Паштетный Джем

1. Выбор темы у нас реализован через голосование + рандомайзер

2. Помимо темы у нас есть ограничение, которое придумывают организаторы еще до выбора темы. Участники о нем не знают

Получается комбинация из предзаданного ограничения и случайной темы

Как результат на 6м Паштетном джеме необходимо было сделать игру на тему:

ГЛАВНЫЙ ВОПРОС ЧЕЛОВЕЧЕСТВА

С ограничением:

БЕЗ СЛОВ

Т.е. данную тему необходимо раскрыть исключительно визуальными методами

Если в этом мире и существует джем с творческим вызовом, то это был он

Ожидаемо до финала дошло меньше участников, чем обычно: 20 из 100. Когда обычно получается 30 из 100

А вот что неожидаемо, так это какие игры сделали участники

Это мы узнаем на стриме в Воскресенье в 10:00 по МСК

Поиграем в игры, наградим победителей, разыграем Ultrakill

Фронтенд Паштет

11 Sep, 10:42


Небольшой апдейт по прототипу игры про ПВЗ

Допилил цикл выдачи заказа из нескольких предметов

Еще во время стрима решил хранить все данные в SQLite. И пока мне это нравится больше, чем хардкодить словари и енамы

У плагина под SQLite довольно приятный API, плюс обеспечивается какая никакая консистентность данных за счет ключей. По итогу: сложней выстрелить себе в ногу

После работы в SQLite даже возникают фантазии по добавлению системы управления заказами в мир игры т.к. БД позволяет не только читать, но и писать данные - обновлять статус заказов, например. Что тоже вполне себе интересная рутина

Пока план такой:

1) допилить полный игровой цикл: спавн разных клиентов, очередь на выдачу заказов, диалоговая система и подведение итогов рабочего дня

2) заняться графикой окружения

3) начать делать новую игру

Фронтенд Паштет

09 Sep, 08:55


Паштетный Джем #6 стартует в эту пятницу

Продолжительность: 3 дня

Тема: Выбирается голосованием в discord. Помимо темы будет еще ограничение

Призы: Рандомные Steam игры для ТОП-3 + одна игра разыгрывается случайно среди всех участников

Команды: можно

Итоги: подводим в голосовом в discord в Воскресенье после завершения голосования. Я играю в несколько игр, общаемся, разыгрваем призы

Присоединиться к джему 👇
https://itch.io/jam/pashtet-jam-6

Фронтенд Паштет

06 Sep, 06:54


Стрим стартанул!

(Запись останется)

https://youtube.com/live/7cArmgJjlw4
https://youtube.com/live/7cArmgJjlw4
https://youtube.com/live/7cArmgJjlw4

Фронтенд Паштет

05 Sep, 05:42


UPDATE: Завтра на стриме будем делать новую игру 🫠

👊 Игра про работу на пункте выдачи заказов. Придется вращать коробки, обслуживать клиентов, разгружать товар и выслушивать бред

😄 В этот раз 100% точно-точно игра будет допилена до релиза и сразу в стим. Клянусь