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

@frontend_pashtet


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

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

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% точно-точно игра будет допилена до релиза и сразу в стим. Клянусь

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

02 Sep, 08:41


Стрим разработки в эту пятницу

Сложно сказать, чем именно будем заниматься на стриме

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

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

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

В общем, будет не совсем понятно, но вы приходите
https://youtube.com/live/7cArmgJjlw4

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

20 Aug, 10:23


Рыночек успешно интегрирован в игру

В данном виде он вполне успешно выполяет свою задачу: продать лут, купить какие-то расходники и т.д.

Купить/Продать можно как кнопками, так и через drag&drop

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

В сущности, первый прототип игры практически завершен

Есть генерация случайных локаций, передвижение, боевка, прокачка уровня, инвентарь, экипировка, расходники. И все это работает на телефоне

Впереди самая адская часть работы: КОНТЕНТ и БАЛАНС

Необходимо продумать какую-то историю, прописать диалоги, чтобы к этому можно было прицепить прогрессию игры

После этого можно будет заняться переработкой графики и всякими веселыми визуальными штуками

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

16 Aug, 10:07


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

Обычно YouTube не отрубает стрим, если поток из OBS останавливается, но видимо, я наспех создал стрим и где-то не убрал галочку с автозавершением стрима

Было интересно. Спасибо всем, кто был на стриме и смотрит в записи

Следующий стрим будет через 3 недели т.к. мне необходимо уехать по работе

Попробуем устроить его вечером

https://www.youtube.com/live/Ea5TDfRvDEk?si=G63nC4MTSCPH7GJF&t=257