Сообщество - Свидетели Godot'овы

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

88 постов 324 подписчика

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

70

Godot Engine. Библиотека новичка

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

Всем привет, дорогие товарищи! Как и было обещано, публикую подборку учебных материалов, которые помогли мне и моим товарищам освоить Godot Engine :)


В этом списке вы найдёте ссылки на материалы, которые можно охарактеризовать как Godot for beginners. Надеюсь, вам будет интересно :)


Если вы впервые слышите об этом движке, приглашаю ознакомиться с его описанием здесь:

Godot Engine. Обзор игрового движка



Официальная Документация


Несмотря на то, что меня постоянно забрасывают какахами, когда речь заходит о доках, я продолжу настаивать на своём: УЧИТЕСЬ РАБОТАТЬ С ДОКУМЕНТАЦИЕЙ! Почему? -- Никто лучше разработчика не знает, как устроен его продукт, так что к кому ещё обращаться, как ни к нему?


Godot Community не только постоянно улучшает и совершенствует движок, но также дописывает и детализирует официальную документацию. Здесь вы найдёте ответы на большинство вопросов, сталкиваясь с практическими проблемами. Да, вероятно, этой ссылке нечего делать в разделе "для новичков", но чем раньше вы освоите навык работы с доками, тем меньше набьёте шишек об углы движка (кстати, это касается любого программного продукта).


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

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

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


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


Официальная Документация Godot Engine



Подробный туториал о создании простой 2D игры


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


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

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

Ссылка для скачивания ассетов указана в одном из первх уроков туториала.


Туториал на deuga.me Создание простой игры шаг за шагом



Kids Can Code. Godot Recipes


Раздел, посвящённый Godot, в он-лайн школе Kids Can Code. Название школы говорит само за себя ;) Здесь вы найдёте открытые мини-уроки, посвещённые решению практических задач.

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

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


Godot Engine на Kids Can Code



GDQuest


Вообще-то это он-лайн школа с довольно демократичными ценниками на курсы, но речь пойдёт не о ней :)


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

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

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


Бонусом -- пачка учебных материалов по визуальному редактору Krita.


GDQuest на YouTube

Официальный сайт GDQuest



HeartBeast


YouTube канал пользователя под ником HeartBeast, где вы так же найдёте уроки по разработке простых коротких игр. У лектора прекрасная дикция, он довольно быстро говорит, но трудностей с пониманием, вроде бы, не возникает.

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

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


HeartBeast на YouTube



Angega Studios


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


Под своими видео автор даёт ссылки на ассеты.

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

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


Angega Studios на YouTube



Game Development Center


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


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

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

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


Game Development Center на YouTube



Game Endeavor


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

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

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


Game Endeavor на YouTube



Сообщества и взаимопомощь


За 8 лет вокруг Godot Engine сформировалось очень дружелюбное и интересное сообщество. Люди с удовольствием помогают друг другу, отвечают на вопросы, делятся опытом разработки и игровыми ассетами.


Официальный форум вопрос-ответ. Форум, предназначен для взаимопомощи пользователей (иногда его посещают и разработчики движка). Цель форума проста: свести друг с другом вопрошающего и отвечающего.


На форуме действует система голосований за воспросы и ответы (примерно как на пикабу). Если вы встретили какой-то вопрос, он вам актуален, но всё ещё без ответа, тыкаете плюс -- вопрос взлетает в рейтинге по актуальности. Просматривать сообщения пользователей без регистрации можно, закрытые разделы отсутствуют.


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


Сообщество Godot на Steam. Здесь люди, в основном делятся своими поделками и обсуждают популярные проблемы, связанные с разработкой на Godot. Оно не очень полезное, но позалипать на демки в порядке прокрастинации очень приятно и весело.


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



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


Я прекрасно понимаю, что изучать что-то новое и незнакомое очень трудно и временами дико бесит. Но если вы решили сделать свою собственную игру, дерзайте! Забейте на бурчание родных и друзей, что вы зря тратите своё время и "лучше бы занималисть [вставить нужное]".


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

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


Всем хорошего вечера, успехов в изучении Godot и лёгкого старта в увлекательном игродельном мире! ^_^



P.S.: Годобот в заголовке нарисован мной. Картинка распространяется под Creative Commons Attribution 4.0 International License. Если вам нужна эта картинка, вы можете скачать её здесь:


Ссылка для скачивания Годобота


В архив входят 4 картинки с вариациями фона и *.PSD файл.



UPD by @Boogernator: Полезным может ещё оказаться канал, ролики маленькие, про небольшие полезные мелочи рассказывают.

https://youtube.com/c/PlayWithFurcifer



UPD by @captainperson: Еще для любопытных, Стим-куратор игр, сделанных на Godot. В основном любительские поделки на коленке, но уже имеются весьма успешные игры.

https://store.steampowered.com/curator/41324400-Is-it-made-w...



UPD by @MFSUS: тутор с которого я начал.

https://www.codingkaiju.com/tutorials/space-asteroid-arcade-...

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

Физика в Godot 3.5 на примере одной машинки

Всем привет!


Да, вот так бывает, сидишь никого не трогаешь, примус починяешь Годот ковыряешь, статейки почитываешь, а потом тебе пишет @Boogernator, мол запили пост про машинку, которую ты мне показывал, а то я уже и анонс сделал 😁


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


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


Создайте в редакторе новый проект и создайте в нем папку res://assets/, куда добавьте два изображения - кузов и колесо:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Следующим шагом создайте сцену на основе узла RigidBody2D, назовите его Car и к нему дочерними узлами добавьте узлы Sprite и ColissionPolygon2D. В текстуру спрайта перетащите изображение кузова и в свойстве Scale установите значение 0.3:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Для добавления формы столкновения выберите узел ColissionPolygon2D и с помощью точек обведите контур кузова:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

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

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Для колес создайте два узла RigidBody2D с дочерними элементами Sprite и CollisionShape2D. Добавьте текстуру и установите значение Scale на 0.3 по аналогии с кузовом. Разместите колеса на нужных местах, для удобства можете воспользоваться направляющей. Также добавьте форму у коллизий по форме колес:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Колесам тоже задайте гравитацию и массу:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Чтобы присоединить колеса к кузову автомобиля добавьте на сцену два узла Pinjoint2D и разместите их в дереве узлов по одному под каждым колесом а на сцене поставьте по центру каждого колеса:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Теперь у каждого узла Pinjoint2D в инспекторе надо выбрать узлы, которые он будет соединять. У заднего колеса это узлы WheelLeft и Car, у переднего WheelRight и Car соответственно:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Создайте сцену с именем Main на Node2D, это будет главная сцена с дорогой по которой поедет автомобиль. Создайте дорогу и ограничивающие барьеры на основе StaticBody2D, задайте им коллизию и текстуру, я использовал иконку годо. Сделайте эту сцену главной кликнув правой кнопкой мыши по сцене в панели файловой системы:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост
Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

На главную сцену добавьте сцену с автомобилем как дочернюю:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Запустите проект (F5) и убедитесь, что автомобиль собран правильно, колеса не отваливаются и т.п.

Осталось написать несколько cтрок кода, в которых собственно вся сила поста. Т.к. RigidBody2D это физическое тело вы не можете его контролировать напрямую как KinematicBody2D, вместо этого используются гравитация, импульсы и т.д. Двигать автомобиль будем путем подачи крутящего момента на колесо при нажатии клавиш Right и Left.


Прикрепите к узлу Car скрипт со следующим содержимым:

Физика в Godot 3.5 на примере одной машинки Godot Engine, Godot, Gamedev, Разработка, Обучение, Инди, Урок, Программирование, Видео, Без звука, Длиннопост

Можно запускать и проверять:

Кому лениво все это повторять можете качнуть репозиторий.


На этом все. Всем приятных экспериментов! 🚕

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

Godot. Путь Алкаша. Рейкасты

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


https://docs.godotengine.org/en/stable/tutorials/physics/ray...

Делать буду на примере базового шаблона, ну и приближу ТЗ к реальному в том формфакторе, как именно мне доводилось работать.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

Собственно враги бегают, на краю разворачиваются, на видосике видно.


Представим гипотетическую ситуацию, я снова молод, юн и красив, меня взяли джуном в контору. Мне прилетатает срочный таск в чатик от ГД,
1. надо чтобы враги могли спускаться по рампам,
2.чтобы могли запрыгивать на препятствия в один тайл высотой
3. ЧТобы могли падать с края, если там высота в одни тайл и они могут забраться обратно.
4. Это срочно!!! сегодня показывать билд продюсерской группе, если что пиши или спрашивай у тимлида.


Ладушки, лиха беда начало, да и горе не беда. Топаем к тимлиду за ЦУ и советом.

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

У меня получилось так.

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

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

Немножко текста, разбавить эти картинки. А что собственно происходит и про что этот код?
is_on_wall() он проверяет, касается ли сейчас бочком наш кинематикбоди стенки, если касается, то разворачивает целиком всю сцену и меняет ей вектор движения на противоположный.
_velocity.x *= -1
self.scale.x *= -1

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

Godot. Путь Алкаша. Рейкасты Gamedev, Инди, Godot, Godot Engine, Видео, Без звука, Длиннопост

К слову not можно заменить на ! (Логическое отрицание) и так и так работает, я лично предпочитаю использовать !
Но тут уж заодно раз в качестве болванки взял чужой проект, то буду максимально стараться придерживаться их стилистики, но это пустяки.

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

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

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

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

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

Godot. Поддержим за пост

Ещё раз добрый вечер, давайте поддержим @xenofob, Ему кажется, что это очевидная и простая реализация, но нифига. У него машинка годно сталкивается,  он считает, что ему нечего сказать, мне кажется что это не так. Ты разобрался как это сделать легко, будь любезен поделись с комьюнити. Не держи в себе эти знания. Не осуждайте, человек сферу деятельности может меняет, он не программист. Godot открывает таланты.  Ну короче +- надо или нет. Да пофигу на демократию, надо, так что давай не ленись, садись и пиши)) Пост с машинкой точно будет!)

p.s. Я зря вообще влез, но что за движ если я не влез, согласен отдам права))

2

Godot. Путь алкаша. Коллизии и первые партиклы в 3D

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

Так оно ещё все сыренько и кривенько, но это первые мои потуги в 3D, как минимум коллизии нормально работают, партиклы запускаются, если честно сам кайфую. Оно даже так выглядит уже прилично, 3D само по себе бодрее смотрится чем спрайтики, ну и тут простор ещё большой для улучшения качества картинки. Не знаю ещё, как все будет происходить, так бы конечно надо уже переносить в проект с подключенной Накамой, но с другой стороны интуиция пока советует не спешить. Очень вероятно, что вот эту все балду на квадратиках, приведу в божеский вид, доделаю врагов, минимальный UI и сделаю репозиторий на Githube открытый. И под него уже запилю серию постов для новичков, как что и куда пихать, чтобы все начало бегать и стрелять. Но это скорее всего будет не раньше, как новый период трезвости наступит. Да и надо ещё с шейдерами в 3D хоть немножко подразобраться.


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


p.s. Если по какому-то моменту надо кому помочь, то пишите в комментариях что нужно. По требованию смогу собраться, а так не знаю чего придумать и полезного написать. В документации реально есть ответы на все вопросы)


p.p.s. Специально на ютуб залил, пикабу пережимает сильно, но у меня почему-то лагает видео с ютуба, добавлю ещё и просто так, из Godot вообще летает все, никаких подлагов, иначе зачем было бы выкладывать)

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

Godot. Путь Алкаша. Проблемы с Накамой и не только

Всем добрый вечер, меня радует, что в нашем сообществе появился новый автор, пишущий правильные вещи, понятным языком, надеюсь появятся и ещё, передам ей админство по требованию, впрочем у неё и так все полномочия есть.
У меня сейчас коротенький постик, о насущном, ну надо начинать с малого, а потом уже к деталям,
https://heroiclabs.com/docs/nakama/client-libraries/godot/
Рассинхронов и багов там хватает конечно. Но работает))

Godot. Путь Алкаша. Проблемы с Накамой и не только Gamedev, Godot, Инди, Видео, Без звука, Длиннопост

Но простота, она сомнению не подлежит) Я попробую упросить Брата, написать пост, но по большому счету, вам надо загуглить такие слова, как Docker и Composer, ну и Ubuntu, с ней дешевле всего выйдет. PostrgeSQL лучший выбор. Ну и добавлю бонусом для новичков, вам вроде звучит это магией, но это саморазумеющиеся навыки для СеньорГеймдизайнера с 10+ годиками стажа. Плох тот геймдиз, который не может себе сделать клон бд, для своих странных сверхзапросов)

Ну и люди с Накамы, отписались ему на почту, была там проблема) Что с любой проблемой, можно сразу им писать) Что ещё раз показывает, Godot Комьюнити, оно очень отзывчивое, никто не хочет из бизнеса пока связываться с Godot, а разработчики хотят) Самое время сделать правильный выбор.
GODOT LIVES MATTERS.

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

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

Godot. Путь Алкаша. Проблемы с Накамой и не только Gamedev, Godot, Инди, Видео, Без звука, Длиннопост

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

Если что-то не нравится.

Godot. Путь Алкаша. Проблемы с Накамой и не только Gamedev, Godot, Инди, Видео, Без звука, Длиннопост
Показать полностью 3
9

Godot. Путь алкаша. Освещение и прицел

Всем добрый вечер. Я опять бухал и кодил. Немножечко прогресса и маленький кусочек кода.
@wolchy,  написала бомбический пост о преимуществах Godot.

Godot Engine. Обзор игрового движка

Я не разбираюсь настолько глубоко, мне вообще глубоко насрать на внутреннюю реализацию движка или хороший код, мне просто нравится в этом вошкаться, а качество реализации это не про меня. У меня вообще мысли в голове: плана, что геймдев это нихера не про аналитику, не про взвешенный подход и тд, это реализация странных фантазий от странных личностей. Я обожаю Godot, за то что он мне позволяет это делать, даже синим в салат. Хорошего кода никогда больше не будет в моих постах, будет только так, как я сам пишу, чисто по кайфу и синеньким. Хардкод, магические числа, копипаста и избыточный код, вот этого у меня будет много.

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

Godot. Путь алкаша. Освещение и прицел Gamedev, Инди, Godot, Алкоголь, Мат, Видео, Без звука, Длиннопост

Так вот им и оставим это дело, я раньше ещё смущался своего подхода, но он рабочий!!
Набрал новичков, за три дня запустили два проекта, получили награду на джеме, игра в вк работает, ну сейчас проплатил вроде снова братан и дальше будет вертеться, сервер тоже на Godot написан, даже не ребутали ниразу для профилактики, утечек ноль, а это сервер, в Никите работал когда лет 8 назад, каждую неделю ребутали сервак, а вроде по уму на Java,был написан, netty использовали, многопоточность вся хуйня и тут движочек на 20 мб, если не меньше, там для линукса хедлесс вобще крохи какие-то весит. Скоро ещё про Накаму напишу, там вообще бомба)

Ладно я не про это, Wolchy написала, что Godot прям хорошо работает с освещением, ну любопытно же стало) Полвечера ебался с арктангенсами никак не мог выровнять угол поворота пульки по направлению движения, по итогу сделал, как раньше писал про 2D, отлично все сработало) но было же интересно, реально ли все так с освещением хорошо) Ну вот видосик, просто spotlight ноду подвесил на пульку)

На каждой пульке отдельный источник света, ничего не делал с ним, obs конечно пережимает, выглядит волшебно, работает ещё лучше. Просвечивает, это потому что кубы, чуть меньшего размера чем размер в GridMap стоит, но это для другого делал) офигено работает.
А вот для прицела код, который обещал)) 15 строчек, работает как часы) Как время улучшать настанет, напишу ещё про него, штука то прикольная, да и без рейкастов не обойтись потом, как без них вражины будут стрелять и перепрыгивать)

Godot. Путь алкаша. Освещение и прицел Gamedev, Инди, Godot, Алкоголь, Мат, Видео, Без звука, Длиннопост

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

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

Godot Engine. Обзор игрового движка

Всем привет, дорогие товарищи! Представляю вашему вниманию большой обзор игрового движка Godot Engine. Надеюсь, вам будет интересно :)

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

Для ЛЛ: многабукв, но можно пролистать в конец поста – там есть список преимуществ и недостатков движка. Godot классный! Попробуйте Godot!



Кому может быть полезен этот пост


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


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


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


Официальный сайт Godot Engine



Немного истории


Разработкой движка Godot (читается «годо») с 2007 года занимались Хуан Линетски и Ариель Манзур. Стоит отметить, что в те бородатые времена движок был проприетарным, закрытым и создавался для нужд частных заказчиков.

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

В 2014 году авторы выпустили обновлённую версию движка под лицензий MIT и выложили исходники на GitHub, разработка перешла сообществу Godot Engine Community, и продолжается до сих пор.


Репозиторий Godot Engine Community на GitHub



Обзор


Godot Engine – очень компактный (~74MB), быстрый и оптимизированный движок, позволяющий создавать с нуля любую игру любого жанра. Он кроссплатформенный, мультифункциональный, бесплатный, опенсорсный.


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

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

Он достаточно дружелюбен к новичкам. Элементы документации продублированы в трёх местах, что обеспечивает быстрый доступ к справке «без отрыва от производства». Так же в движок зашиты ссылки на он-лайн ресурсы, которые помогут вам в решении большинства проблем.

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

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


При этом базовая сборка не тащит за собой «ваще все библиотеки, которые только есть в природе» – вплоть до того, что в ней отсутствуют инструменты для билда. Godot – это конструктор. Он не знает, чем вы будете заниматься, поэтому предоставляет функционал разработки… и… всё! Остальное вы докачиваете сами по мере необходимости.


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



Среда разработки


Godot «из коробки» обладает всеми необходимыми компонентами для разработки, отладки, тестирования и конструирования игры, не требует использования дополнительного ПО для создания программной и архитектурной составляющих (разумеется, вам в любом случае потребуются программы для создания визуального контента, звуковых ассетов, etc.).


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


Для воплощения ваших самых смелых идей он имеет 2D и 3D пространство со стандартным набором классов и объектов, а так же редактор скриптов и два редактора шейдеров — для прямого программирования и визуальной настройки. Поведение любого класса вы можете расширять и/или изменять по мере надобности.


Об особенностях рендера и визуальной среды ниже.


Редактор скриптов обладает возможностями дополнения кода, авто-отступами, подсветкой синтаксиса, быстрым доступом к API движка и докам.


Интерфейс приятный, лакончиный и довольно интуитивный:

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

Внутренние ресурсы проекта


Основным объектом для программных манипуляций является дерево «сцен» и «узлов». Узлом может являться как самостоятельный объект, так и группа объектов. Прелесть заключается в том, что любой из узлов в любой момент времени можно изолировать в самостоятельный компонент («сцену»). Поэтому при разработке можно быстро и безболезненно редактировать, масштабировать или полностью менять структуру проекта и/или его отдельных модулей.

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

Все игровые ресурсы (графические и звуковые ассеты, скрипты, конфиги, шейдеры, etc.) хранятся в файловой системе как набор файлов, не являясь частью БД или иерархических компонентов структуры самого движка. К файловой системе можно обращаться как непосредственно средствами вашей ОС, так и из редактора проекта.

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

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



Скрипты


Godot исользует собственный высокоуровневый динамически типизированный скриптовый язык программирования — GDScript, который является плодом порочной связи гибридом Python и Lua.


Язык специализировался и оптимизировался под ранее упомянутую архитектуру систем сцен и узлов, однако если по какой-то причине вам хочется писать на другом языке (допустим, не хватает каких-либо инструментов, или вы просто не хотите осваивать новый синтаксис), Godot умеет интегрировать другие языки программирования, в частности C#, C++, Rust.


Помимо этого (начиная с версии 3.0) присутствует компонент для визуального программирования — Visual Scripting. Про него не могу ничего сказать, не приходилось пользоваться, но, думаю, это легко нагуглить.


Идеология движка имеет строгое ограничение: один узел — один скрипт. Однако, если вам необходимо менять поведение и/или состояние объекта в зависимости от игрвого состояния, Godot любезно предоставляет возможность заменять один скрипт на другой «на лету» или пользоваться внешними скриптами, которые вообще не привязаны ни к одному узлу — например, это могут быть списки оружия, брони и соответствующее им поведение, которое подхватывается из мирно дремлющего скрипта активным и применяется.



Визуализация


Графическая система — OpenGL ES. Для рендеринга 3D-сцен применяются технологии order-independent transparency, normal mapping, specularity, полноэкранные постэффекты типа FXAA, bloom, DOF, HDR, гамма-коррекции, distance fog, динамические тени на основе shadow maps и другие.


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


В отличие от многих других движков, которые имитируют 2D-среду на 3D пространцстве, 2D компонент Godot полностью изолирован, оптимизирован и имеет свой собственный набор классов и объектов. Следствием этого является компактность и быстродействие готового игрового продукта (мы не тащим с собой тяжёлые 3D-объекты и обвязку к ним там, где это не требуется), а так же удивительная лёгкость манипуляций с 2D компонентами в процессе разработки.

Godot Engine. Обзор игрового движка Разработка, Gamedev, Godot, Godot Engine, Игры, Компьютерные игры, Игровой движок, Длиннопост

Помните, выше упоминалось, что Godot поддержит вас в любых самых сумасшедших начинаниях? ;) Стартуя работу с 2D сценой, вы легко можете добавить в неё 3D объекты или целые блоки, воспользовавшись многоуровневой системой вьюпортов. Благодаря изоляции 2D и 3D пространства (и, разумеется, многопоточности) компоненты не мешают друг другу и не тормозят работу продукта. В обратную сторону это тоже работает ;)



Игровая физика


Физический движок для 2D и 3D тоже уникальный и разработан с нуля, что позволило добиться требуемого уровня оптимизации физической подсистемы. Реализованы возможности рейкастинга, обнаружение столкновений, динамики твёрдых тел и соединений между ними. Так же имеется обширный арсенал инструментов, осуществляющих кинематику.


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


К сожалению, в версиях движка 3.0 — 3.5 (к настоящему моменту самая свежая из стабильных) на 2D пространстве отсутствует физика частиц — поведение имитируется, оставаясь не более, чем визуальным эффектом. Честной физики мы тут не увидим. В Godot 4.0 этот компонент улучшен, но это всё ещё альфа — имейте это в виду, если захотите поиграть с физикой частиц в новой версии движка. Для 3D всё в порядке.



Платформы


Напоминаю, для того, чтобы сбилдить проект вам сперва нужно скачать и настроить соответствующий компонент. Выбор при этом у вас впечатляющий. Godot поддерживает Windows (и UWP OS), MacOS, X11 (Linux, BSD), Android OS, iOS, HTML5. Также можно производить экспорт на другие платформы вручную через компилирование движка для SDK целевой платформы.


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



Подведём итоги


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


Плюсы:

- компактность;

- MIT лицензия;

- открытый код;

- не трубет установки;

- кроссплатформенность;

- гибкость;

- универсальность;

- быстродействие;

- многопоточность;

- высокая оптимизация;

- эффективное управление ресурсами компьютера;

- удобство для использования;

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

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


Минусы:

- скундый набор инструментов визуальной разработки;

- отсутсвие предустановленных тимплейтов;

- отсутствие встроенных инструментов для билда;

- неудобные инструменты вёрстки диалоговых окон;

- слабые AR/VR компоненты;

- осутствие физики для 2D частиц;

- отсутствие возможности редактирования мешей и уровней сглаживания;

- низкая популярность в России (очень мало материалов на русском языке).


Благодарю за внимание! Надеюсь, вам было интересно в общих чертах познакомиться с Godot. Если у вас остались вопрсы, можете задать их в комментах, постараюсь ответить на все :)

Всем хорошего дня, вдохновения и успехов в освоении Godot!


P.S.: Следующим постом выложу полезные материалы для новичков с кратким описанием полезности.


P.P.S.: К сожалению, невозможно запихать в один обзор всю полезную и интересную информацию, поэтому в перспективе планирую сделать подробное описание каждого блока с разбором функциональных компонентов. Пожалуйста, посигнальте в комментах, если эта информация вам интересна.

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