Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Реалистичный симулятор игры бильярд. Играйте в Бильярд 3D: Русский бильярд, как в настоящей бильярдной!

Бильярд 3D: Русский бильярд

Симуляторы, Спорт, Настольные

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

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

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Godot + Godot Engine

С этим тегом используют

Gamedev Инди Разработка Инди игра Без звука YouTube Все
149 постов сначала свежее
5
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot4. Particles 2D Collision⁠⁠

Утречко! В какой--то момент сегодня ночью, так опух делать туториал для основного проекта, играть давно уже не во что не тянет, ну и решил поиграть немножко с Godot4, заодно хоть глянуть как там дела то движутся у ребят. Дела движутся весьма хорошо, что радует)

Ну и вообщем как-то само собой получилось, набросал за три часика небольшую демку, может быть даже продолжу её, давно хотелось сделать казуальный платформер и чтобы стрельба была как в червячках, в мыслях была конечно игра за лучника, но тут попался на глаза ассетпак тайлов и в нем маг бонусом, ну думаю маг в целом ничем не хуже. Видосик тяжелый получился, залил на ютуб.
https://www.youtube.com/watch?v=4bQX1VUDhsI&ab_channel=Boogernator

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

Но пока так. Сразу есть какой нюанс, коллизии партиклов работают не с физическими моделями, как можно было бы предположить, они взаимодействуют с LightOccluder, в 3D вроде нет, но не ручаюсь, в 2D точно так, хз временно ли это сделано или всегда так будет, с одной стороны вроде и не удобно, а с другой пофигу. На примере тайлмапа покажу, с обычным окклюдером там все просто. Хотя и с тайлмапом тоже.

Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост
Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост

быстренько стряпаем незамысловатый взрыв и выбираем для этой частицы Hide On Contact
При касании частица будет исчезать, что впрочем очевидно из названия.

Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост
Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост

тут два события для левой и правой кнопки мыши

Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост

скрипт для обеих сцен с партиклами

Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост

код для сцены Main

Godot4. Particles 2D Collision Gamedev, Инди, Godot, Godot Engine, Видео, YouTube, Без звука, Длиннопост

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

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


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

Показать полностью 7 1
[моё] Gamedev Инди Godot Godot Engine Видео YouTube Без звука Длиннопост
0
8
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Ищем потерянные ноды⁠⁠

Утречка! Давно ничего не писал, были причины. Немножко расскажу, так получилось что 31го декабря, за несколько часов до НГ мы взяли и релизнулись. Не скажу что это эпохальное событие, игра и сейчас сырая, но в целом даже на довольно нишевой платформе более 2000 юзеров, какой-никакой ретеншн и длина сессии очень больше 15 минут, что очень даже неплохо. Это небольшой айдл, приложу маленький видосик с процессом.

Не буду тут рассказывать что это несет великую ценность для геймдева, но для меня как Godot-разработчика большая веха. Полностью кроссплатформа, один билд собирается и в apk и html5, который более менее ровно работает и на пк и с мобилки, наподключали всего чего только можно и appsflyer с devtodev и платежку и рекламу, в качестве бекенда используем Nakama, офигенная вещь и с Godot работает прекрасно, даже есть свой самописный сервер на Godot, мы его используем теперь для сбора своей статистики на этапе загрузки html через вебсокет. Брат у меня из геймдизайнера прям матерым линкусоидом стал, докеры там какие-то разворачивает на VPS, и интерфейсы ваяет, я больше все же клиентской логикой занимаюсь.

Короче это я к чему, Godot офигенно работает во всем, но кривые ручки разработчика могут все подпортить. Самое всеми любимое это конечно же - Утечки памяти, они же Memory Leak.

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

Из-за чего может получиться, самое простое и частое, это remove_child вы вызвали, а queue_free() для ноды не вызвали, вот и болтается она в памяти неприкаянная, в языках со сборщиком мусора типа Java, AS3 и тп, они бы почистились в определенный проход, но в Godot нету сборщика мусора, так что лучше не расслабляться. Покажу на немножко утрированном примере, но он практически идентичен тому, как сам натолкнулся на эту проблему и уже начал проверять.

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

Ну ладно меньше текста, немножко покодим, для примера возьму ещё одну полезную в хозяйстве вещь такую как HTTPRequest. Начну прям с этого туториала.
https://docs.godotengine.org/en/stable/tutorials/networking/http_request_class.html#preparing-scene

Сцена

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

Скрипт

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

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

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

А нам вот надо кровь из носу слать сколько угодно запросов, задудосить может хотим кого(Осуждаю), идем в следующий тутор.
https://docs.godotengine.org/en/stable/classes/class_httprequest.html#class-httprequest

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

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

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

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

И все как бы логично, мы же создаем новые реквесты, но никуда их не деваем, они свое сделали и висят балластом. Блин не могу найти странное решение, которое видел на форуме, но оно сводилось к удалению всех потомков на сцене. Не суть, напишу сейчас похожее, внимание не повторяйте это. Но для образовательных целей пойдет. Заодно ознакомимся с очень замечательным методом print_stray_nodes()

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

потыкаем на кнопочку 10 раз пока она не пропадет и посмотрим на результат.

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

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

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

Вот такие дела, пользуйтесь на здоровье.

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

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

Я покажу пример попроще и он расширит удобство сигналов заодно, мало-ли кто не знает, что так тоже можно)

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

Ну и скрин профайлера

Godot. Ищем потерянные ноды Godot, Godot Engine, Gamedev, Инди, Видео, Вертикальное видео, Длиннопост

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

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

P.s. Жена занялась Cutout анимацией, немножко в кодинг тоже начала тыкаться. Так что очень возможно запилю серию новичковую заново с более продуманным планом. Опыта опять же прибавилось, какие-то вещи пересмотрел, в каких-то укоренился напротив, все во благо скорости. Пусть и не топовый программист, но за три дня могу сделать любой прототип и 90% работы, а потом уже месяцами делать оставшиеся 90% работы)

Показать полностью 10
[моё] Godot Godot Engine Gamedev Инди Видео Вертикальное видео Длиннопост
2
46
sharfik
sharfik
2 года назад
Лига Разработчиков Видеоигр

Мой первый месяц в Godot Game Engine⁠⁠

В начале года решил попробовать освоить Godot. Навыков программирования у меня было 0, знал только что есть циклы for i=чет там и тд и тп, которое я проходил в университете на delphi.
Почему выбор пал на Godot? Где то прочитал, что GDScript который используется в годоте не такой сложный язык и новичкам программирования будет не так трудно (но я не новичок, я просто тупой в программировании и код вижу примерно вот как на следующей картинке)
(Картинка замылена в фш, а не не прогрузилась)

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

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

Далее я стал искать разного рода туториалы на ютубе. Всякие полезные ютуб каналы и просто статьи я искал в посте, который подготовил пикабушник @wolchy, пост: Godot Engine. Библиотека новичка

В одной из ссылок я нашел туториал, как сделать top-down shooter. После этого туториала я решил сделать что то своё, так как хотелось сделать тоже шутер с видом сверху, но чтобы стрелять можно было во все стороны, а не только вперед(вверх).

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

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

Первая версия получилась такой: статичный экран, бластер, один тип врагов.

Один товарищ с дискорда решил сделать взлом жопы игры и крашнул ее.

Никаких увеличения скорострельности в игре нет Т_Т

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

После я попытался сделать клон флаппи бёрд. Делался он по нескольким туториалам, так что особо интересного в этом нет, флаппи берд видели все.

Из нового я сделал запоминание highscore и сделал так что со временем проем в стенках становится всё меньше и меньше.

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

Tile Game демка на 6 уровней.
Когда то я эту идею увидел в интернете и решил повторить, теперь вот сделал ее в Годоте.

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

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

Всего сделал 6 уровней и в 2ух из них я переборщил с сложностью и многоступенчатостью(

Но был один человек с аватаркой Вергилия, который сказал Motivated и прошел все 6 уровней.

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

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

Из нового:
- Сделал нестационарный экран
-Добавил уклонение (дэш на корабле? я че дурак)
-Добавил бомбу, у которой есть куллдаун
-Внедрил сохранение highscore

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

В данный момент пытаюсь сделать платформер с дробовиком.
Суть платформера будет заключаться в том, чтобы пройти уровень собрав 2 типа коллектаблов (собираемых предметов) и сломать другой вид коллектаблов с ружья.
Игрок уже может прыгать, делать двойной прыжок, стрелять, скользить вниз по стене и прыгать от стенки к стенке.

Так же на этом платформере тренируюсь использовать анимационные спрайты и разного рода другие функции Годота.

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

Мой первый месяц в Godot Game Engine Инди игра, Gamedev, Godot, Godot Engine, Видео, Длиннопост

Не уверен по поводу постинга ссылок, поэтому воздержусь.
Шутер опубликован на itch io. Может будет пробиваться по поиску, не знаю.

В общем это мой первый месяц в годоте. Посмотрим как оно будет продолжаться.
В одном из конструкторов я проработал над одной игрой 1.5 года почти в одиночку и немного перегорел. И того же запала как раньше уже нет. Но зато теперь я могу выложить игру в дискорд и люди не имеющие PS4 смогут поиграть на компьютере.

Как то так. Пока нравится, но обучение трудный процесс.

Показать полностью 6 2
[моё] Инди игра Gamedev Godot Godot Engine Видео Длиннопост
9
6
NobodyHere539
NobodyHere539
2 года назад
Лига Разработчиков Видеоигр

Игра про Пьяного Кренделя на Godot 4⁠⁠

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

Контент в игре весь мой, за исключением ассета подземелья (брал его на итче, он бесплатный), пары звуков и одной композиции, что играет после 10го уровня - это написала нейросеть. Ну, и анимации с миксамо. С остальным разбирался сам.

Оптимизацией там не очень пахнет, скажу лишь, что первый запуск будет фризить. Потом вы можете перезапустить программу и этих фризов уже не будет. Для запуска потребуется видеокарта, поддерживающая Vulkan API. Сделано на Godot 4 beta 10.

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

Игра про Пьяного Кренделя на Godot 4 Godot Engine, Godot, Инди игра, Jam, Пиво, 3D, Low poly, Gamedev, Видео, YouTube, Длиннопост

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

Игра про Пьяного Кренделя на Godot 4 Godot Engine, Godot, Инди игра, Jam, Пиво, 3D, Low poly, Gamedev, Видео, YouTube, Длиннопост

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

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

Игра про Пьяного Кренделя на Godot 4 Godot Engine, Godot, Инди игра, Jam, Пиво, 3D, Low poly, Gamedev, Видео, YouTube, Длиннопост

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

Рекомендуемые системные требования:

  • Intel Core i9-13900K и выше

  • 128 Gb RAM

  • RTX 4090 и выше

Всем, кто поиграет, огромное спасибо.

Ссылка на игру: https://n0b0dyhere.itch.io/drunk-kretzel

Фидбек можно отправлять мне в телеграм-канал https://t.me/nododychannel (негодование по поводу его наличия в посте, можете оставлять в комментариях)

Показать полностью 3
[моё] Godot Engine Godot Инди игра Jam Пиво 3D Low poly Gamedev Видео YouTube Длиннопост
8
2
CucumbeRunner
CucumbeRunner
2 года назад

Будь целеустремлённым! Будь как огурчик! ⁠⁠

Всем большой привет! С большой гордостью хочу рассказать вам о результатах многих бессонных ночей и усердного труда! Иными словами - знакомства пост. :)

CucumbeRunner - Это динамичный платформер-раннер, в котором вам предстоит помочь целеустремлённому Огурчику преодолеть множество трудностей! Прыгайте, делайте потрясающие трюки в воздухе, собирайте драгоценные камни и открывайте замаскированные секреты!

Будь целеустремлённым! Будь как огурчик!  Инди игра, Инди, Gamedev, Компьютерные игры, Pixel Art, Платформер, Разработка, Godot Engine, Godot

На данный момент игра находится в разработке, о дате релиза будет известно уже очень скоро (ориентировочно - начало марта 2023)! А сейчас вы по ссылке ниже можете добавить её в свой Список Желаемого в Steam!

Что уже есть в игре?

  • Более 120 разнообразных уровней!

  • 4 игровых мира, в которых действуют свои особые правила!

  • Возможность изменять внешний вид огурчика по своему усмотрению!

  • Множество спрятанных секретов, за нахождение которых вас ждёт особая награда!

  • Крутые воздушные трюки и многое-многое другое!

Будь целеустремлённым! Будь как огурчик!  Инди игра, Инди, Gamedev, Компьютерные игры, Pixel Art, Платформер, Разработка, Godot Engine, Godot

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

Буду рад вашим комментариям, а если хотите поддержать проект, то помимо странички в Стиме у огурчика ещё есть Группа ВК, где иногда выкладываются всякие-разные интересные материалы. :)

Ссылка на страницу игры в Steam:
https://store.steampowered.com/app/2228350/CucumbeRunner

Показать полностью 2
[моё] Инди игра Инди Gamedev Компьютерные игры Pixel Art Платформер Разработка Godot Engine Godot
1
164
CGCFSS
CGCFSS
2 года назад
Лига Разработчиков Видеоигр
Серия Делаю игру Тридевятьземель

Продолжаю делать игру в сеттинге славянских сказок⁠⁠

Всем привет.

Не так много произошло за этот месяц, всё ещё сказывается нехватка времени и средств.

Но могу показать вам новых персонажей:

Продолжаю делать игру в сеттинге славянских сказок Разработка, Gamedev, Инди, Инди игра, Сказка, Фольклор, Игры, Godot, Godot Engine, Баба-яга, Гифка, Видео, Без звука, Длиннопост
Продолжаю делать игру в сеттинге славянских сказок Разработка, Gamedev, Инди, Инди игра, Сказка, Фольклор, Игры, Godot, Godot Engine, Баба-яга, Гифка, Видео, Без звука, Длиннопост

И новую рубку деревьев:

Продолжаю делать игру в сеттинге славянских сказок Разработка, Gamedev, Инди, Инди игра, Сказка, Фольклор, Игры, Godot, Godot Engine, Баба-яга, Гифка, Видео, Без звука, Длиннопост

И то, как игра могла бы выглядеть с 3D перспективой(но, скорее всего, не будет):

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


Ссылки:


twitter.com/overhillsgame
mastodon.gamedev.place/@OverhillsTheGame (@OverhillsTheGame@mastodon.gamedev.place)
youtube.com/@overhillsgame

cgcfss.itch.io/overhills

cgcfss@pm.me

Показать полностью 2 1
[моё] Разработка Gamedev Инди Инди игра Сказка Фольклор Игры Godot Godot Engine Баба-яга Гифка Видео Без звука Длиннопост
25
5
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Немножечко про шейдеры и BackBufferCopy⁠⁠

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

Решаемая задача: надо применить шейдерный эффект не на одиночный спрайт, а на группу спрайтов(например cutout анимация или сложносоставная иконка в интерфейсе)
Для примера возьму этот эффект
https://godotshaders.com/shader/teleport-effect/

Работает хорошо, эффект симпатичный

Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост
Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Но тут мы получим не совсем ожидаемый результат.

По любому мы должны брать SCREEN_TEXTURE, чтобы получить желаемое.

Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

В принципе уже похоже на правду, но тут есть одно маленькое НО..
Если на экране будет ещё и текстура фона, то шейдер будет применяться и к ней.

Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Вот на скрине наглядно видно, что он ещё и подложку вместе со спрайтами "телепортирует"

Если честно долго голову ломал и очень конечно дикий велосипед написал, чтобы этого избежать, а все оказалось гораздо проще. В Godot есть специальная нода для этих случаев.
BackBufferCopy
https://docs.godotengine.org/en/stable/classes/class_backbuf...

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

Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост
Godot. Немножечко про шейдеры и BackBufferCopy Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

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

Спасибо за внимание.
Небольшой но уютный чатик сообщества, если есть вопросы заходите.
https://t.me/Godot_pikabu

Показать полностью 6 4
[моё] Gamedev Инди Godot Godot Engine Видео Без звука Длиннопост
0
8
Boogernator
Boogernator
2 года назад
Свидетели Godot'овы

Godot. Static, Tool и два Enums'a⁠⁠

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

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


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

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Перво наперво надо её где-то хранить, запилим CurrencyStorage. Можно это конечно сделать синглтоном или ещё как, но в этом случае я сделаю, используя статичные функции, меня недавно распрашивали насчет них, кому-то видимо нужно и может пригодится, да и сам я ими пользуюсь в различных Utils классах.
Важное замечание, в gdscript есть статичные функции, но нет статичных переменных, что с одной стороны странно и неудобно, с другой стороны хорошо) Но эту неприятность легко можно обойти, например в константе хранить массив, словарь или свой пользовательский класс.

Использую словарик.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

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

Ну ладно. проверим что все работает как надо

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

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

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Сейчас можно расставить наши IconLabel в сцене Main, запустить и игра упадет.

Связано это с порядком выполнения методов _ready() в дочерних и родительских нодах, а если помните то CurrencyStorage.store() я поместил именно в _ready.
Кстати непонимание этой разницы вызывает немало ошибок у новичков, поверьте я знаю с двумя новичками и сотрудничаю сейчас.
метод _ready() это не конструктор, он вызывается когда экземпляр уже добавился на сцену в результате add_child(). Конструктор, который вызывается при создании экземпляра это _init()
И порядок выполнения следующий:
parent -> _init()
child -> _init()

...

child -> _ready()

parent ->_ready()


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

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Для каждой IconLabel не забудьте указать разный тип. И я кстати косякнул, два раза в match указал Gold, вместо Silver.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Собственно результат при запуске.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

В редакторе же мы видим далеко не такую красоту, там тлен и пустота.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Согласитесь очень неудобно, ведь надо же не только вывести, но и красиво расставить.

Для этого воспользуемся ключевым словом tool.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

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

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост

Картинками не показать, что меняется в редакторе, вот видосик держите.

Наберет если пост 15 лайков, то напишу и продолжение про пользовательскую кнопку для покупок за валюту, и покупке валюты за рубли)) Тонкий байт на лайки, эндорфинов не хватает, а каждый лайкосик дает немало)

Ну и ссылка на чатик сообщества в тг https://t.me/Godot_pikabu
Можно позадавать или поотвечать на вопросы или просто пофлудить, но без троллинга и токсичности плз.


p.s. А иногда tool не сразу почему-то работает после добавления его в скрипт, бывает нужно релоаднуть проект.

Godot. Static, Tool и два Enums'a Gamedev, Godot Engine, Godot, Видео, Длиннопост
Показать полностью 11 1
[моё] Gamedev Godot Engine Godot Видео Длиннопост
7
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии