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

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

51

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
48

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
30

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Физика в 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
21

ГЦ Свидетели Godot'овы. Нас 100 человек

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

Не только в юнити и UE можно делать прикольные эффекты, Godot может делать все тоже самое, а в 4 версии которая нас ждет, будет ещё всего больше.
Ну и это 3D

ГЦ Свидетели Godot'овы. Нас 100 человек Godot, Godot Engine, Инди, Gamedev, Видео, Без звука, YouTube, Длиннопост, Мат

Не спорю, далеко от идеала, первая моя попытка в 3D партиклы, @xenofob, прям вытащил меня из пучины, в дальнейшем думаю посты по Gridmap будут от него или может от меня, короче он забрал в нашем проекте с меня кучу работы с ассетами, даже как-то дышать стало легче, посмотрел один видосик и за часик вот сразу собрал такой эффектик. Как красные карандаши в проекте заменю на эти пульки, так сразу же будет пост, как делать подобное.

Кому интересно прямо сейчас, этот чувак прям вообще хорошо основы рассказывает.
https://www.youtube.com/watch?v=DkJ2jYl-ESw&ab_channel=G...
Но английский желателен или общее понимание работы партиклов, вообщем что-то не понятно будет, спрашивайте.
А по своему разумению, скоро напишу как делать подобные)

Всем Godot!!!


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

UPD:
Но это добро не для всех, это ультраправая территория Godot. Чатик все показал.
https://t.me/Godot_pikabu
Бухло, секcзизм(бля я не знаю как это слово правильно написать, оно всегда подчеркнуто остается), троллинг и пиздеж обо всем кроме Godot, но мы все выговорились, по сути каждый о своем наболевшем, поделились проектами, проблемами и о хуйне пообщались всякой, хз что будет дальше, но и о потенциальной помощи друг другу договорились ,за всех не скажу, я договорился)) Я буду помогать, когда-нибудь и мне понадобится, короче чатик норм получился, не думал что вообще кто-то зайдет. Уверен что эти парни помощи ещё дадут. Но вряд-ли получится найти халявного разработчика, каждый со своим проектом, хотя один всех пытался собрать в общее, так что дерзайте не разрабы, у нас там есть один ГД, правда он многих кодеров за пояс заткнет) Велкам блять)

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

Godot. AnimationPlayer. Вызов метода с таймлайна

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

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

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

Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост

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

Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост

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

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

Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост
Godot. AnimationPlayer. Вызов метода с таймлайна Gamedev, Godot, Разработка, Мат, Видео, Длиннопост

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

Все просто.


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


p.s. Разбор текстовый по AnimationPlayer будет ещё и не один, в течении этого года буду им часто пользоваться, это настолько мощный и удобный инструмент что грех им не пользоваться, по сути это Flash и Spine и DragonBones в одном флаконе и даже больше. Искренне верю, что все больше и больше людей попробуют для себя Godot и мы увидим новую эпоху флеш-игр, только быстро-работающих и без проблем с безопасностью. А после заявлений CEO Unity, хочется только плевать в их сторону, уверен что именно Godot станет следующим народным движком.

Всем Godot.

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1

День добрый, уважаемые любители Godot'a. Хотел вроде разобрать вариант предложенный создателями самого Godot, но у меня как всегда семь пятниц на неделе и почему-то подумалось, что лучше написать этот велосипед с нуля и самостоятельно, по своему разумению. А потом уже сравнить с нормальным вариантом, попутно по возможности выяснив, а как правильнее и лучше. Может кто подскажет заодно, как вообще это выяснить, наверняка должен быть какой-нибудь профайлер для шейдеров)


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

Godot путь новичка. Первый Enemy и первый Шейдер

Вот ссылки на документацию
https://docs.godotengine.org/ru/stable/tutorials/shaders/ind...
https://docs.godotengine.org/ru/stable/tutorials/shaders/sha...


Ну ладно хватит с деталями. Стартуем.

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

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

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

Во-первых мы использовали 4-Way для определения соседей вместо 8-way, что сразу порождает кучищу проблем, ну да ладно, это всего лишь первая часть, чтобы было что исправлять, надо чего-то и наговнякать же сначала, отправная точка хотя бы имеется)

Godot. Путь к основам VFX. Пишем свой outline shader. Ч1 Gamedev, Godot Engine, Godot, Инди, Мат, Длиннопост

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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