Сообщество - Свидетели Godot'овы
Добавить пост

Свидетели Godot'овы

84 поста 278 подписчиков

Популярные теги в сообществе:

Godot. Путь новичка. Основы навигации. Ч3. TileMap

Ладушки, немножко передохнул, продолжим. Время 15.20 по мск.
Предыдущее про сбор Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек

Попробуем прикрутить как-нибудь тайлмап. Предупреждаю сразу, я в них не разбирался толком, так что запросто наделаю глупостей, ну фиг с ним, картинку то думаю можно слепить какую-нибудь.
https://bakudas.itch.io/generic-oldwest-pack
Взял здесь Tileset, буду собирать дерьмо на диком западе. Вестерны мне нравятся, надо попробовать.
Картинку для затравочки, что можно собирать, 100% я и близко похожего не соберу.

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

Но будем пробовать.

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

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

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

Тут можно головой поплыть, насколько неудобно и запутано сделано все ссылку на офдоки на всякий случай приложу.
https://docs.godotengine.org/ru/stable/tutorials/2d/using_ti...

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

Методом проб и ошибок, рано или поздно должно все получится и в голове сразу уляжется, что как и зачем кликать)

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

Если прям открыли в себе художника, можете и так раскрашивать, если лень то заливкой добиваете остальное поле, гифку прикладываю.
https://gyazo.com/b8a0b4a71db56d009c4e104347a03458

Если все прошло по плану, то будет все застеленно разными плитками, да пока никаких красот, но начинать надо с малого.


Теперь заделаем ещё один тайлмап и начнем строить красивые заборы.

Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч3. TileMap Godot Engine, Gamedev, Инди, Разработка, Мат, Фекалии, Godot, Инди игра, Видео, Без звука, Длиннопост

Ну вот какой-никакой фон уже появился, выглядеть начинает все лучше и лучше.

Сейчас у нас основная проблема, в том что человечек пробегает под заборами и вагонами.

Время 16.15мск по идее ещё можно все успеть.
То что гавно спавнится где не нужно это не страшно, и это не нужно спешить исправлять. Надо понимать что области за вагонами, заборами и тд, будут непроходимы для игрока и соответственно для собак. А если собаки туда не смогут пройти, то и наспавнить там они тоже не смогут, так что пофигу, это временный баг из разряда самоустраняющихся)
Блин хотел передохнуть в последний день отпуска и немножко втянуться) а по итогу устроил сам себе гавяный Джем, заебись четко)

Показать полностью 12 1

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек

Продолжение
Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой

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

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

Ну теперь как видим вступает нормально, а благодаря тому, что мы написали class_name Player, довольно точно определяет кто именно вступил, пока у нас бегает один игрок, это не принципиально, но если появятся и NPC конкуренты, то в будущем нам это пригодится. Теперь напишем фабрику, для генерации рандомного гавна.

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

Ну теперь перейдем к самому увлекательному, к сбору всего этого добра.

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

Теперь сделаем чтобы, оно исчезало при касании и добавлялось новое.

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

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

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

Все теперь у нас человечек бегает, собирает, счет увеличивается.

Как делать партиклы и вставить шейдер детально расписывать не буду, уже описывал это ранее, кратенько покажу в скрипте что происходит и усе.

Godot. Путь новичка. Основы навигации. Ч2. Сбор какашек Инди, Gamedev, Godot Engine, Godot, Мат, Фекалии, Видео, Без звука, Длиннопост

Так то заебись, похоже на какое-то гавно, издалека можно перепутать.
@Bubkagopp надеюсь ты доволен, но фидбек и пожелания на доделки принимаются)
Так-то даже концепт начал какой-то вырисовываться, сейчас как раз весна, актуальненько.
В качестве врагов сделать рандомношатающихся собак, которые срут где не попадя, а чистомен бегает собирает. Игра бесконечная и путь только один, в больницу через кусь или усталость, переосмыслить басню о Сизифе, через гавно. Звучит как план.
В конце концов, какая разница кто будет бегать, орки или собаки.

По МСК 13:12 до вечера время ещё есть, но кажется что я устал) А к поиску пути ещё не приступал даже) Вечно отвлекаюсь, на какое-то дерьмо)

Показать полностью 16 2

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой

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

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

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

Kiss - Keep it Simple Stupid. Сделать надо как можно быстрее, с минимальными затратами сил и времени, а там уже по результату можно смотреть, годится или надо переделать. Собственно так и поступим.


ТЗ
1)Надо сделать перемещение героя по карте с ограниченными областями проходимости, перемещаться будет мышкой. Куда кликнули туда и бежит.
2) Надо добавить спавн врагов, у врагов простая логика поведения, бежит всегда к герою, обегая непроходимые области.


Время когда сделать, до конца отпуска. Сегодня последний день отпуска, сейчас время 9-01 по МСК, завтра к 10 утра на работу, есть 24 часа. Ну собственно и погнали.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

С этим разобрались, теперь нам надо создать главного героя.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

Добавим картиночек

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

Как-то так должно получится примерно.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост
Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

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

Собственно начать надо с чего-то простого, так что просто определим пока координаты, где будет происходить нажатие мышки или тап по экрану. В Godot есть очень удобная галочка, позволяет конвертить клики мышки в тапы по экрану и наоборот, так что для простых механик можно не заморачиваться. Что кликается мышкой, так же будет и тапаться на мобилке. Кроссплатформа из коробки, удобненько) Ну собственно добавим скрипт для игрока в котором будем отлавливать клик мышкой.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

Теперь дело за малым, запилим, чтобы человечек бежал в точку после клика.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

Кривенько, но персонаж начал двигаться, поскольку мы не указали ему когда начинать движение, то изначально он бежит в верхний левый угол, там у нас получается destination_point со значение Vector2(0,0), а когда он добегает до точки, то начинает дергаться взад вперед, как умалишенный, это происходит потому, что из-за высокой скорости, он за каждый кадр пробегает чуть дальше, чем его точка назначения, а потом возвращается назад и так раз за разом. Выглядит довольно уебищно, исправим это простым способом.

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

Даже в туториалах Godot почему-то указан ошибочный способ проверки.
https://docs.godotengine.org/ru/stable/tutorials/2d/2d_movem...

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

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

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

Godot. Путь новичка. Основы навигации. Ч1. Движение мышкой Gamedev, Инди, Разработка, Godot Engine, Godot, Мат, Видео, Без звука, Длиннопост

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

Разобью пожалуй на несколько постов, а то очень много получиться текста для одного. Кофе попью и начну следующий.

Показать полностью 12 2

Godot путь новичка. Феникс из частиц

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

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

Godot путь новичка. Феникс из частиц Godot Engine, Godot, Gamedev, Инди, Разработка, Видео, YouTube, Без звука, Длиннопост
Godot путь новичка. Феникс из частиц Godot Engine, Godot, Gamedev, Инди, Разработка, Видео, YouTube, Без звука, Длиннопост

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

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

Godot путь новичка. Феникс из частиц Godot Engine, Godot, Gamedev, Инди, Разработка, Видео, YouTube, Без звука, Длиннопост

В целом сейчас уже в тестовом варианте сделал через Path2D и PathFollow2D там ещё проще и удобнее и гораздо вариативнее, но это для отдельного поста тема.

Спасибо за внимание.

P.S. На днях помогал подписчику с одним багом в его проекте, сорян не знаю какой ник на Пикабу у него, вообщем он непротив, так что следующий пост планирую сделать с небольшим разбором и рефакторингом его проекта.

Так что если нужна помощь или интересна вся подноготная процесса разработки, залетайте в телеграмм.
https://t.me/boogernator

Godot путь новичка. Феникс из частиц Godot Engine, Godot, Gamedev, Инди, Разработка, Видео, YouTube, Без звука, Длиннопост
Показать полностью 4 1

Godot путь новичка. Водоворот из частиц

В прошлом посте писал, как сделать шлейф из частиц.
Godot путь новичка. Эмиттер для частиц из произвольного спрайта
Вот видосик что получается на текущий момент у меня в проекте из этого.

Ну в этом покажу как можно сделать эффект водоворота, вот зелененький в куче листочков на видосике крутится который)

Для этого понадобится следующая текстурка.

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

Белая на белом фоне с альфа-каналом) очень наглядно получилось))

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

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

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

Ну все погнали запилим.

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост
Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

Сразу начнет все дрыгаться на экране.

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост
Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

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

Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост
Godot путь новичка. Водоворот из частиц Godot, Godot Engine, Gamedev, Инди, Видео, YouTube, Без звука, Длиннопост

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

Всем спасибо за внимание.
Если есть вопросы, пожелания или нужна помощь, залетайте https://t.me/boogernator
Ну а нет, так сейчас изучаю ещё один эффектик, как разберусь запилю следующий пост.

Показать полностью 9 2

Godot путь новичка. Эмиттер для частиц из произвольного спрайта

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

Качество шакалистое, да ещё и на фоне саморезов, на работе делал, а там obs не поставить))
Ну суть понятна, получше качеством в конце поста залью, как будет готово.

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

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Перетаскиваем спрайт на сцену

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

То что тут восклицательный знак не страшно, создадим материал.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

А сейчас будет совершенно чудесная фишечка, которой в мануалах или нет, или внимание на ней не акцентировано, но она бомбическая.

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

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

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

А затем перейдем к настройкам партиклов.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Теперь научим нашу всю эту конструкцию ездить за мышкой.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост
Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

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


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

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

И поднастроим движение частиц.

Godot путь новичка. Эмиттер для частиц из произвольного спрайта Gamedev, Godot Engine, Godot, Cgi VFX, VFX, Видео, Вертикальное видео, Без звука, Длиннопост

Ну и собственно результат.

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


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

Ну что получится по итогу, напишу может пост если время будет.
А так завел телеграмм-канал, пишу о ходе разработки, да всякие картиночки видяшечки, маленькие туда пихаю с результатами промежуточными.
Там же можно увидеть трансформацию геймдизайнера в аниматора персонажей)
Подпинываю братана, чтобы он написал пост о скелетной анимации(к слову человечек сейчас перенарезан и это костная анимация, а не секвенциями как была в ассетах бесплатная) Как напишет, так запилю пост об управлении анимациями кодом и про AnimationPlayer заодно.
Диалоги прикрутили, используем Dialogic, суперский плагин. Блин вообще много чего уже сделано и много есть о чем написать. Ну сейчас год трезвости опять начался, так буду вероятнее всего и без всяких зехеров)

За сим спасибо всем за внимание, если интересно почитать о ходе разработки, залетайте.
https://t.me/boogernator

Показать полностью 12 4

Godot путь новичка. Анимируем выделенную область. Ч-1

Добрый вечер, мои дорогие подписчики. Не самая тривиальная задачка у меня сейчас, сам не знаю, что получится по итогу и получится-ли) Но почему-то подумалось, что это может быть интересно, а кому-то и полезно. Немножко в другом формате попробую, ну а дальше видно будет надо или нет.
Краткий план серии:
1. Собираем нужные координаты и рисуем линию для отладки.
2.Добавляем партиклы капелек из нужной области.
3. Накладываем на область(или спрайты под ней) шейдер, имитирующий воду.
4++ Придумываем варианты и делаем их для 4-х остальных стихий(хз сколько тут частей)
99-- Оптимизируем и полируем.

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

Картиночкой суть проблемы.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Кратко ТЗ: Надо чтобы выделенные руны, светились под пальцем, ну типа ты кастуешь какбы: по красным проводишь, чтобы огнем гореть все начинало, по синим, чтобы капли из под пальца капать начинали и тд,  ну как в Arx Fatalis, типа жестом ты кастуешь что-то, а не просто елозишь по одинаковым.
Краткая выжимка из пары десятков сообщений.

*** Да мы пытаемся вести документацию в Miro(Ну я пытаюсь, братан там реально навертел делов, я как "настоящий погроммист" ничего ни читаю) Но все одно приходим к тому, что самая удобная постановка задачи это в чатиках попереписываться и тупых вопросов позадавать. В малых коллективах это на самом деле лучший вариант, нет смысла жиру разворачивать на команду из 2-5человек.
***
Но документация дико важна, хоть и редко захожу, а там бац и ответ на вопрос который задать хотел) Ну и мы разрастемся, документация пригодится всегда, да и самому себе напомнить, соберусь как-нибудь напишу, что сам должен, вжился опять в программиста, документация мне по барабану))

Мозги мне не еби, поясни на пальцах, что конкретно сделать надо)
Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

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

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

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Это весь код, чтобы показать желтый квадратик)

Не переживайте,  если вас пугает лишний код, он не важен для текущей задачи, в целом и есть мысль, чтобы скопипастить потом и вынести в отдельный репозиторий и его можно будет использовать чтобы рисовать жесты, как в выше упомянутом Arx Fatalis или Black and White если это вам ближе)) На match механике, оно просто все проще и понятнее, хотя сейчас уже понимаю что вообще разницы нету) главное иметь список точек по которым рисовать и паттерн для соответствий магии(увлекся сорян, постепенно к этому придем)

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

Если есть линия, по ней мы потом можем нарисовать любой полигон или область, линия основа основ в 2D, не столько вам пишу, сколько себе напоминаю, блять 600 строк гавнокода налепил, почему??? Потому что дебил и сам не следую тому что писал ранее. Такого навертел стыдно))
Kiss - делай проще тупица.
Но линия не базовая единица в геометрии, базовая - точка. Линия это всего лишь массив из точек. не цепляйтесь к словам, для игры нам мало интересна прямая палка, нам интересна именно линия, кривая косая это уже как сделаете. Прямоугольник это линия из 4-х точек, круг это просто дохера точек, чем менее угловатый, тем больше точек. Так что приходим к очень полезному типу данных в Godot, а именно к PoolVector2Array.

PoolVector2Array - строго типизированный массив.
https://docs.godotengine.org/ru/stable/classes/class_poolvec...
Мне в комментариях написал как-то умный человек я прислушался, сам же когда ещё на флешике кодил максимально старался использовать Vector(Там так назывались типизированные массивы) По факту к этому надо придти, динамическая типизация, она очень удобна когда ты что-то пробуешь, гавнокодишь, прототипируешь, изучаешь. Потом ты перестаешь плавать и уже начинаешь изучать нюансы, прототипы становятся сложнее, начинают порой безумно тормозить, кода становится больше - читать написанное пару месяцев назад уже сложнее, в голове все не держится и на помощь приходит она))

Статическая типизация.

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

Как это касается линий и прочего, все очень просто. Базовая нода для отрисовки линий Line2D в качестве входного параметра имеет именно PoolVector2Array. Список точек если по простому.
Научитесь перфектно работать со списками, с алгоритмами и тд, в ваших списках начнут появляться не только точки и данные, а начнет расти список сочных телочек(девочки любят умных и ITшников)

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Вот просто пример для наглядности.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Напишите этот код и сцена Line2D у вас и отрисуется.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Ну у меня толстая линия просто, ширина для неё 128 стоит, но суть отражает.

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Для наглядности, как сделано у нас в проекте пока. Вот список точек, по которым отрисовалась сочная линия, за худыми линиями не ко мне. Я за отмену "отмены" Джины Карано:"Толстый, худой, лишь бы сочная". Это Сочная линия!!! Хоть и бледная, но этом кому как - даешь средний RGB не ниже среднего IQ!!!!

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

Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост
Godot путь новичка. Анимируем выделенную область. Ч-1 Gamedev, Программирование, Godot Engine, Godot, VFX, Мат, Неадекват, Алкоголь, Видео, Длиннопост

Ну вот вам детектив для разбора, все просто, меньше 250 строк кода пока в новой версии проекта, но работает, на флеше я точно знаю что подобная реализация меньше 3-4к строчек у меня бы не вышла, Godot очень многое упрощает))
Вот видосик с телефона, билд работает и с телефона и с компа и с браузера, огонь) минимум кода, а полная кроссплатформа с ресайзом, пока упрощенно, но все корректно выглядит на любом телефоне, хоть растянутом, хоть обычном. На маленькие разрешение ресайзится тоже ок, у меня бюджетный норм все выглядит.

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

В следующем части серии, будем использовать эту линию для создания области эмиттера, чтобы капало с конца, у лихого молодца. Деталей не будет, пойду сразу по сложностям. Основы партиклов в своем понимании уже излагал, все будет по сложности как и в том посте, немножко поменяются нюансы и заложимся(возможно под следующие стихии).
Для ознакомления Godot Путь новичка. Particles2D стремный снегопад

Godot Тащит, Тащит и Прёт.

p.s. Если соберу -20, а у меня выходит частенько, тогда не буду продолжать, усредненное побеждает. Но если лично вам захочется следующей части, то пишите коммент, что вам нужно. Я старичок, я скучаю по концепции VOD'ов(Video on Demand), лучшие у меня получались только по просьбе. А лайки и подписки мне допизды, комментами подправлю, рейтинга вон наросло пздц, 400+ за сутки, посты бы так писать)) Спасибо за внимание, удачи бро!

Показать полностью 9 1

Вы хотите головоломок?

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

РАЗМЯТЬ МОЗГ

Godot путь новичка. Шаг вперед, два назад. FPS-метр

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


Но это все херня, не за этим подписывались, не об этом и рассказать хочу. Тем более ничего не писал, кроме дурных комментариев(рейтинга пофармил хоть), а добавилось ещё несколько подписчиков, вот думаю надо написать.


Как-то упоминал, что кодить мы начали вместе с братом в итоге, он геймдиз в коде ни бум-бум, я как оказалось тоже) Нахуевертели такого, что выглядит заебись, десктоп версия работает заебись, вебверсия тоже 60 фпс, код и архитектура попахивает, но прогресс и движуха ОЧЕНЬ заебись, прям каждый день коммиты, функционала нарасло, все пучком, скоро релиз. Он сбилдил это все на телефон, ну и оказалась жопа. Полная!!
Я сбилдил на эмулятор у меня комп не потянул, у меня не RTX 30x версии, всего GTX 1650, братан купил мне телефон на новый год(как инвестиция в нашу общую разработку) на нем тоже еле завелось с 15fps.

Хотелось бы вам рассказать про увлекательную историю, о том как мы разобрались в проблеме быстродействия и прочего, но нет.
Я вообще собрал альтернативную версию на Defold предложил релизиться на нем, там 5мб билд и 60 fps всегда(Defold охуенный, но сегодня не о нем) Братан воспротивился, на defold он кодить не может и не хочет, честно и я не горю желанием( но движок огонь, не отнять), на Unity он тоже отказался(тут уже и я поддержал полностью), UE4 мы глянули и забили.
Спасибо ему что он настоял на том, чтобы продолжать на Godot. Начали мы недавно новый билд на Godot, пересмотрели наши взгляды на разработку, пытаемся придерживаться какой-то архитектуры, немножко разделили обязанности. Не все конечно ещё перенесли, в процессе, но прям начал кайфовать опять от разработки)

Прям натурально кайфую, изначально я хотел сегодня рассказать про оператор Yield, вещь отличная и вообще не представляю сейчас, как я раньше без него обходился, в процессе подготовки к посту, внезапно узнал про оператор match!!!!
Нет бля вы представляете? Оказывается switch case в godot существует, да ещё и в более удобной вариации. Я же в godot с питона попал, там нет switch case(Хотя я уже не уверен, может опять чего, не того начитался), ну и по умолчанию решил что и в gdscript его тоже нет!!!
А он сука есть!!!

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

Хотел вставить видосик с лагающей прошлой версией, а потом подумал ну её впизду) мы на ней теперь эксперименты ставим, если выведем в 60 fps, то будет пост, может братан у меня напишет. Он убирал градиентный бекграунд и фпс поднимался и это точно не мои гавношейдеры и партиклы, я все отключал и результат такой же 15 fps. Сейчас разрабатываем с оглядкой сразу на билд мобильный, пока 60 fps держится. И видосик приложу.

Прям с телефона и записал, никаких obs как раньше))

Ну и как обещал код FPS-метра из верхнего правого угла, там такой красивый шрифт, это потому что братан постарался))

Godot путь новичка. Шаг вперед, два назад. FPS-метр Godot, Godot Engine, Gamedev, Инди, Разработка, Мат, Видео, Длиннопост

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


Да эти пиздюки бегут лунной походкой, но я в душе не разбираюсь, как делать параллакс средствами godot'a, я могу спрайтами обычными это запилить, а тут это чисто наработка брата. Скорее всего он напишет постецкий тоже по этому делу.
@Noizless.dog, напиши про параллакс, я даже не хочу в этом разбираться сидеть)
На 99% это будет в этом сообществе, нет никакого желания что-то кому-то доказывать, проще окуклиться в уютном, где негативщики побанены)

К слову это так охеренно, что мне не надо все-все-все знать в проекте, а порой приходишь домой, апдейтишься в sourcetree, запускаешь и там пздц красиво внезапно стало)

P.s. рейтинга поднакрабил, так что можно минусить без стеснений. А так всем спасибо за внимание, Enjoy!

Показать полностью 1 1
Отличная работа, все прочитано!