GoblinCave

GoblinCave

Dev Blog от гоблина который пытается с нуля и без каких либо навыков войти в разработку игр. Считайте это списком граблей для таких же новичков как я...
На Пикабу
поставил 16 плюсов и 0 минусов
427 рейтинг 54 подписчика 1 подписка 19 постов 3 в горячем

Как нейросети постепенно засрут интернет (а точнее уже засрали)

Год назад я наткнулся на статью, которая предсказывала деградацию нейросетей и автор приводил интересную теорию:

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

● Качество итоговой работы нейросети на данный момент ниже, чем оригинальный контент живого автора. Логические и смысловые ошибки, а так же некое "отсутствие души".

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

● Из-за общего снижения качества "скармливаемой" информации, нейросеть начинает тупить, все чаще повторяя свои же ошибки и неточности.

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

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ Я может быть какое то обновление пропустил, но про "Сеть" в Кенши не слыхал

Увидев этот странный текст, я из интереса перешел по ссылке, а там безумие в чистом виде!

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ Даже в Kenshi есть свой филиал "Без баб"

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ А как вам такое? Холодные осадки в Kenshi осознали себя и из погодных условий превратились во фракцию

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост

▸ А Шеки решили позабыть свой культ битвы и стать торговцами тех-охотниками

Для тех кто еще не понял - эта статья написана нейросетями!

Написана убого, коряво, без намека на логику, но с нужными SEO элементами - тот самый информационный мусор. А самое забавное, что мусор вынесен на первую позицию поисковой выдачи Яндекса. Да что там, 5 из 15 ссылок на первой странице поиска вели на такие же плоды нейросетей разной степени бредовости.

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

Какая задача у информационного контента в 21 веке? Решить проблему пользователя? Нет - привлечь трафик и желательно здесь и сейчас, ведь трафик это деньги. Поэтому количество такого контента будет расти в геометрической прогрессии.

Масштаб проблемы и как она будет решаться в будущем?

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

● Для самих нейросетей встает вопрос обучения. Chat-GPT потребляет информацию из интернета и недавно с него сняли ограничения 2021 года (все что вышло позже этой даты нейросеть не учитывала). Если на системном уровне не будет фильтра, то в обозримом будущем качество ответов заметно упадет, ведь они будут составляться на основе ошибочных материалов созданных нейросетью до этого.

● Google, Яндекс и другие поисковики в какой то момент столкнутся с недоверием аудитории, ведь перестанут решать основную задачу пользователя - поиск полезной информации. Пока что их инструменты оценки качества контента слишком примитивны, что доказывает пример приведенный в начале статьи (1/3 выдачи поиска загажена мусором нейросетей). Единственный возможный критерий отбора доступный в данной ситуации - отдавать приоритет оригинальным статьям от живого автора.

А что в итоге?

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

Ждем, когда техно-жрецы найдут решение этой проблемы и оно вскроет еще десяток других. А пока подписывайся на мой гоблинский блог - тут много интересного про разработку игр и нейросети.

P.S. По поводу моего месячного отсутствия. Несмотря на навалившийся ворох дел - я не забрасывал изучение инструментов для разработки игр. Просто написание статьей не вписывалось в мое плотное расписание. В ближайшие пару недель постараюсь выложить новую статью про Godot.

ВСЕМ WAAAGH!

Как нейросети постепенно засрут интернет (а точнее уже засрали) Программирование, Разработка, Программист, Нейронные сети, Арты нейросетей, Яндекс, Google, IT, Чат-бот, Поисковые запросы, Поиск, ChatGPT, Длиннопост
Показать полностью 5

Как базовое умение рисовать облегчит вам работу с нейросетями

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

Например, я решил сделать персонажей для будущего проекта схожими с механикой Madness Combat - когда тело персонажа в основном находится под углом, а вместо рук и ног только кисти и ступни. Но саму стилистику более близкую к Battle Brothers.

Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост

Первые проблемы

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

Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост

● Как подсказать задумку для нейронки

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

Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост
Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост
Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост
Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост

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

Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост
Как базовое умение рисовать облегчит вам работу с нейросетями Gamedev, Инди игра, Разработка, Программист, Программирование, Игровой дизайн, Дизайн, Компьютерная графика, Нейронные сети, Арты нейросетей, Гайд, Инди, Игры, Stable Diffusion, Длиннопост

Пробный вариант собранный из разных сгенерированных частей

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

Подписывайся на мой гоблинский блог, впереди еще больше интересного!

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

Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей?

Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост

● Примерно так выглядит сбор "деталей" для создания модельки в "Dragon Bones".

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

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

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

● Как это исправить?

Можно просто добавить в запрос "detailed fingers" и без конца мучать нейросеть в ожидании чуда. Но куда проще взять "ситуацию с руками" в свои руки. Я владею Photoshop на базовом уровне, но даже таких знаний хватает, чтобы исправить косяки робота.

Я отобрал модельки с менее уродливой правой рукой (та где видно пальцы). Именно с ней связанно больше всего косяков. С помощью графического редактора я удалил лишнее и дорисовал недостающее. В основном применялся "Штамп". Цветовая палитра копируется пипеткой, обводка при помощи кисти.

Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост

▸ Эволюция руки

Таким образом вместо соотношения 1/100 удачных, мы получаем уже 5-10/100, что делает работу с нейросетью более продуктивной. Да, программа не нарисует все за вас, придется научиться хотя бы редактировать графические элементы. Но это уже в половину проще чем рисовать все с нуля.

Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост
Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост
Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост
Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост
Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост
Нейросети - это буквально "руки из ж*пы". Как решить проблему лишних пальцев и конечностей? Разработка, Программирование, Gamedev, Программист, Инди игра, Unity, Unreal Engine, IT, Дизайн, Арты нейросетей, Нейронные сети, Stable Diffusion, Игры, Game Art, Motion design, Гайд, Анимация, 2D, 2D анимация, 2d рисование, Длиннопост

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

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

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

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Удачные варианты - партия №1

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Удачные варианты - партия №2

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Милые варианты - партия №1

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

Парад уродов

Данные персонажи создаются через нейронку Stable Diffusion. Использовал инструменты с сайта OpenArt. За основу взят вот этот товарищ:

Готовлю для вас интересный материал по созданию 2D персонажа через нейронки, а пока делюсь наработками. Ссылка на саму неросеть внизу поста Программист, Разработка, Программирование, Gamedev, Инди игра, Арты нейросетей, Нейронные сети, Дизайн, Создание персонажа, Разработчики, 2D, 2D анимация, 2d рисование, Stable Diffusion, Гайд, Инди, Digital, Компьютерная графика, Длиннопост

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

Подпишись, чтобы увидеть итог эксперимента!

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

Реакция на посты новичка в теме разработки игр

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

● Но вот уже не первый раз натыкаюсь на мнение мол "ты новичок - не лезь".

Реакция на посты новичка в теме разработки игр Программирование, Программист, Gamedev, Разработка, Мнение, Инди игра, Unity, Инди, Unreal Engine, Гайд, Критика, Срач, Спор, Конфликт

▸ Коммент под последней статьей на Пикабу

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

Реакция на посты новичка в теме разработки игр Программирование, Программист, Gamedev, Разработка, Мнение, Инди игра, Unity, Инди, Unreal Engine, Гайд, Критика, Срач, Спор, Конфликт

▸ Дисклеймер

● Теперь нахожусь в раздумьях, какой дальше делать контент.

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

По другую же сторону новички, которые все чаще пишут комменты под моими постами и интересуются движком. Некоторые даже начали учить GD-Script по моим статьям, возможно ввиду малого количества русскоязычного контента по Godot Engine.

Реакция на посты новичка в теме разработки игр Программирование, Программист, Gamedev, Разработка, Мнение, Инди игра, Unity, Инди, Unreal Engine, Гайд, Критика, Срач, Спор, Конфликт
Реакция на посты новичка в теме разработки игр Программирование, Программист, Gamedev, Разработка, Мнение, Инди игра, Unity, Инди, Unreal Engine, Гайд, Критика, Срач, Спор, Конфликт
Реакция на посты новичка в теме разработки игр Программирование, Программист, Gamedev, Разработка, Мнение, Инди игра, Unity, Инди, Unreal Engine, Гайд, Критика, Срач, Спор, Конфликт

● Может кто-то сталкивался с подобной делемой? Поделитесь мнение в комментах!

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика

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

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

● Создание сцены с персонажем:

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Как выглядит узел "CharacterBody2D"

● Визуальное изображение персонажа:

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Узел "Sprite" -> Texture -> Быстро загрузить

● Настройка зоны столкновения:

Чтобы наш персонаж не проваливался в текстуры и реагировал на поверхности мы должны настроить зоны столкновения. В прошлом уроке мы работали со слоем Collision в нашем TileMap. Тут же мы добавляем узел "CollisionShape2D", который представляет из себя выделение зоны столкновения в виде простой геометрической фигуры. Вид этой фигуры мы выбираем во вкладке "Shape".

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Узел "CollisionShape2D" -> Shape -> Новый RectangleShape2D

● Начальные данные для физики и управления:

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

Чтобы создать константу мы пишем: const название_константы = значение

Переменные же создаются по другому: var название_переменной = значение

Давайте разберемся за что отвечают указанные нами значения:

speed и acceleration - от этих значений будет зависеть скорость передвижения по оси X (влево-вправо)

jump_velocity - это значение влияющее на высоту прыжка. Ось Y в Godot перевернута с ног на голову и отрицательное значение означает вверх.

friction - значение влияющее на скорость остановки при прекращении передвижения.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Так выглядят наши константы в коде

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

var gravity = ProjectSettings.get_setting("physics/2d/default_gravity")

● Общая функция для управления персонажем:

Задав исходные данные мы можем приступать к настройкам функций нашего персонажа. Для этого мы пишем стандартную функцию Godot:

func _physics_process(delta):

Для тех кто не знает - эта функция вызывается перед каждым физическим кадром, который привязан к физическому fps, он по умолчанию равен 60 раз в секунду.

var input_axis = Input.get_axis("ui_left","ui_right")

Get_axis - это функция которая присваивает переменной одно из двух значений при нажатии одной из двух кнопок. Первое значение равно -1 и задается при нажатии клавиши "влево". Второе же равно 1 и задается при нажатии клавиши "вправо". Если на момент кадра не нажата ни одна из этих кнопок, значение равно 0. Это позволяет нам определить нужное направление для изменения координат персонажа.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Влево = -1 | Вправо = 1 | Стоим на месте = 0

● Движение по оси X (влево-вправо), создаем новую функцию:

handle_acceleration (input_axis, delta)

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

if input_axis !=0:

Если данное условие выполнено, то мы совершаем перемещение в заданном направлении. Для этого используется функция move_toward.

velocity.x = move_toward(velocity.x, speed * input_axis, acceleration * delta)

velocity.x - это переменная отвечающая за перемещение по оси X.

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

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

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

move_toward ( начальная точка, точка прибытия, расстояние шага за один кадр )

▸ А где тормоза то !?

● Как сделать остановку?

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

Копируем нашу прошлую функцию и переименовываем ее:

handle_friction (input_axis, delta):

Так же меняем заданное условие, input_axis должен быть равен нулю. Главное помнить, что знак равенства при сравнении выглядит вот так "==".

if input_axis == 0:

В функции move_toward заменяем значения. Первое остается прежним, на втором ставим ноль, а на третьем стираем acceleration и пишем friction. Все это в сумме обеспечит нам быструю остановку.

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Функции обратные друг другу

● Движение по оси Y (прыжок, гравитация), создаем новую функцию:

aplay_gravity(delta):

Если мы не на земле, то бишь в воздухе - нас должно тянуть вниз.

if not is_on_floor():

velocity.y += gravity * delta

Ставим именно "+=", так как это сделает плавное падение с нарастающим ускорением. Не забудьте умножить на delta, иначе все произойдет за долю секонды.

● Следующая функция для прыжка:

handle_jump(delta):

Для нас важны два условия - нахождение на земле в момент прыжка и нажатие нужной клавиши.

if is_on_floor() and Input.is_action_just_pressed("ui_accept"):

Если данное условие соблюдено мы приравниваем параметр оси Y к значению высоты прыжка.

velocity.y = jump_velocity

Добавляем эти функции под physics_process, а после переходим на сцену "world". Туда из общего списка ресурсов перетаскиваем сцену "player".

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

.tscn - это формат сцены в Godot

Godot 4: создание платформера от гоблина для человеков | Урок 2: Персонаж, управление и физика Gamedev, Инди игра, Разработка, Программирование, Программист, Инди, Unity, Unreal Engine, Python, IT, Гайд, Игры, Godot, Godot Engine, Платформер, Геймеры, Видео, Без звука, Длиннопост

Как выглядит наш блок с функциями

● Что у нас получилось в итоге?

✓ Если вы нажимаем клавишу влево или вправо - персонаж двигается в выбранном направлении.

✓ Если ни одна из клавиш направления не нажата - мы останавливаемся.

✓ Если мы находимся в воздухе - нас тянет вниз с каждой секундой все сильнее.

✓ Если находясь на земле, мы жмем прыжок - нас подкинет вверх.

▸ Оно живое!

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

✓ Зеленые новички - крепитесь и подписывайтесь, скоро новая статья. На очереди две темы - "анимация персонажа" или "двойные прыжки и прыжки от стены".

✓ Опытные шаманы - запасайтесь успокоительным, ибо дальше будет еще куча попыток освоить gamedev.

✓ Ну и все кто имеет свое мнение, поддержку или усмешку - пишите комменты!

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

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

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

● Узлы, сцены и прочие слова не связанные с BDSM - это интерфейс Godot 4:

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Наглядно показываю что и где

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

Создадим сцену нашей карты и назовем ее World. Для этого выбираем "2D сцена" как на скрине выше. Теперь можем добавить к сцене дочерний узел, нажав на плюсик. В поиске ищем TileMap - это узел для работы с тайл-сетами будущей карты.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Что такое TileMap:

TileMap - это крайне полезный инструмент, который позволяет создать автоматическое заполнение карты. В разделе TileSet выбираем новый, внизу выбираем "Набор тайлов" и в открывшемся окне загружаем заранее подготовленный файл.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Шаблон для создания тайл-сета

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Настройка рисования карты в TileMap:

В правом блоке узла TileMap вы найдете вкладку "Terrain Sets" (набор местности). В ней мы нажимаем "Добавить элемент" и в открывшемся блоке снова жмем "Добавить элемент". Теперь в центральном блоке выбираем вкладку "Рисовать" -> "Свойства рисования" - > Terrains.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Настройка местности

В обоих выделенных вкладках выбираем созданный нами элемент Terrain. С его помощью мы настраиваем области тайл-сета. Именно по ним Godot определяет какой кусок ставить следующим.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Настроенный TileMap

● Зоны столкновения для TileMap:

Помимо визуального изображения, нам нужно добавить для карты физический слой. Выбираем Physics Layer и добавляем новый элемент. Далее в разделе рисования выбираем "Физика" и наш слой. Так как наша карта состоит из блоков - выделаем каждый квадратом.

Теперь другие объекты будут видеть нашу карту и воспринимать ее как физическое препятствие.

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

● Как работает настроенный TileMap:

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸Рисуем что хотим

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

Godot 4: создание платформера от гоблина для человеков | Урок 1: TileMap - редактор карты Разработка, Gamedev, Инди игра, Программирование, Программист, Godot, Godot Engine, Indiedev, Инди, Игры, Android разработка, Геймеры, Код, Текстуры, Pixel Art, Стратегия, Unity, Unreal Engine, Новичок, Длиннопост

▸А вот это уже что-то похожее на элемент игры

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

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

✓ Зеленые новички - крепитесь и подписывайтесь, скоро новая статья.

✓ Опытные шаманы - запасайтесь успокоительным, ибо дальше будет еще куча попыток освоить gamedev.

✓ Ну и все кто имеет свое мнение, поддержку или усмешку - пишите комменты!

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

А на что собственно живут разработчики из России в 2023 году?

А на что собственно живут разработчики из России в 2023 году? Программирование, Разработка, Программист, Gamedev, Инди игра, Unity, Инди, Unreal Engine, Python, IT, Монетизация, Россия, Технологии, Цифровые технологии, Длиннопост

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

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

Публикация игры в Steam требует оплаты слота, публикация в Google Play требует оплату лицензии разработчика. Говорят пополнить Steam можно через Qiwi, но с Google Play такое не работает. То есть, уже на этапе публикации вашего проекта вы сталкиваетесь с проблемами.

Допустим вы каким то образом смогли разместить свой проект на площадке - что по монетизации?

Как мне известно вывести деньги со Steam можно через Райффайзен, выбрав функцию банка-посредника. Учитывая плату самому Steam, наценку банка и налоги - вы получите в лучшем случае 50% от заработанных денег. Как происходит вывод средств с Google Play не знаю, но предположительно для этих целей заводится зарубежный счет с карточкой. Правда вам это вряд ли пригодится - публикация платных продуктов из РФ приостановлена.

Один из видов монетизации мобильных игр - это реклама!

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

Что же остается простому работяге игрового фронта?

Ответ прост - крутиться в поиске всех возможных альтернатив. За неимением возможности выгрузить свое приложение в Google Play разработчики из России все чаще смотрят на тот же App Gallery. Если игра проста и имеет возможность выгрузки в формате HTML5 - то можно попробовать Яндекс.Игры или другие сайты с браузерными проектами. Конечно, есть зародыш в виде RuStore, но не думаю что он в ближайшие пару лет получит действительно широкую аудиторию.

Медиаторы Appodeal и Clever Ads Solution все еще работают с Россией, что позволяет получать выплаты от "забугорных" рекламных сетей через посредника. К тому же есть сетки Яндекса и My Target, которые гарантированно дают выплаты.

Если же вы нацелены на Steam, то вам предстоит найти посредника, который подключится к вашему аккаунту, приобретет слот из своей страны, а после вы удалите его доступ через настройки. Либо можно обратиться к издателям, если вы сделали качественный проект. Если же вы нацелены только на аудиторию из России - можете попробовать VK Play (правда продажи там в разы меньше).

А на что собственно живут разработчики из России в 2023 году? Программирование, Разработка, Программист, Gamedev, Инди игра, Unity, Инди, Unreal Engine, Python, IT, Монетизация, Россия, Технологии, Цифровые технологии, Длиннопост

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

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

P.S.

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

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