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

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

91 пост 333 подписчика

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

71

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

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


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


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

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



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


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


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


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

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


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


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



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


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


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

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


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



Kids Can Code. Godot Recipes


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

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


Godot Engine на Kids Can Code



GDQuest


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


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

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


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


GDQuest на YouTube

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



HeartBeast


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

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


HeartBeast на YouTube



Angega Studios


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


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

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


Angega Studios на YouTube



Game Development Center


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


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

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


Game Development Center на YouTube



Game Endeavor


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

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


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
30

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

Мозги мне не еби, поясни на пальцах, что конкретно сделать надо)

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

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

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

Не переживайте,  если вас пугает лишний код, он не важен для текущей задачи, в целом и есть мысль, чтобы скопипастить потом и вынести в отдельный репозиторий и его можно будет использовать чтобы рисовать жесты, как в выше упомянутом 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шников)

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

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

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

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

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

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

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

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

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

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

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

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-метр

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


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

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

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

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

Когда маги копают руду. Начало

Введение.

Многим приходит в голову мысль, сделать свою игру.

Ну и мне вот пришла.

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


Причины.

"Ну хочешь делать, садись и делай, писать-то сюда зачем?" - спросил бы я сам себя, если бы не был самим собой.

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

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

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

Поехали!

Идея.

До сих пор еще сталкиваюсь с упоминанием древнего мема про корованы и домики, в контексте недалекости автора. По мне так в наше время это моветон.

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

Поэтому изложу свою идею.


Фентезийный мир в духе Disсworld Терри Пратчетта. В мире есть ключевой ресурс - руда. Руда используется для создания всего, некий аналог спайса (Меланжа) из Дюны. Особенность руды в том, что ее добычей занимаются не шахтеры (пытаемся сломать стереотип), а маги.

Маги, копающие руду в мире сатирического фэнтези, почему бы и нет.

Что за игра?

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

AERM - это аббревиатура следующих понятий: Aquisition, Engagement, Retention, Monetization.

Этот термин описывает приоритетный список аспектов игры.


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


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

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


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


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


Итого, что мы имеем:

- Платформа: мобильные телефоны

- Направление: казуальная игра


Я предполагаю две целевых аудитории для игры.

Первая группа:

- казуалы в возрасте, преимущественно женщины. Европа, США.


Вторая группа:

- хардкорные игроки 25+, преимущественно мужчины. Европа, США.


Комментарий от автора:

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


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


Итого, что за игра:

Казуальная игра в фентезийном мире с жестким (но пересекающимся) разделением мета-гейма для казуальной аудитории и для хардкорщиков.

Мета-гейм для хардкорной аудитории - это план на развитие.


На этом закончу свою первую статью.

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

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