Сообщество - Лига Разработчиков Видеоигр
Добавить пост

Лига Разработчиков Видеоигр

6 811 постов 22 224 подписчика

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

На пороге релиза: как маленькая идея превратилась в большую игру

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

Итак...

Началось всё с простой мысли "как познакомить побольше людей с новой игровой вселенной"? А точнее с миром Remedium, разработка которого идёт уже не первый год. PR, реклама, игровые СМИ и блогеры - это всё понятно, но что-то же еще можно сделать? И тут кто-то предложил "а давайте сделаем небольшую мини-игру за копейки по той же вселенной". Мысль благородная и понятная: создать небольшой проект, вложить в него главные элементы, такие как атмосферу, ключевых персонажей, кор-геймплей с уничтожением толп противников. При этом сделать честный и минимальный ценник, чтобы ребята, затратившие время и силы на разработку не чувствовали, что потратили всё это впустую.

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

Сказано - сделано.

Разработка была полноценной, так как в отличие от Remedium, в Sentinels по задумке на экране могло быть одновременно до 300-500 врагов. А переходить в 2D никто из команды не хотел. Всё должно было быть в полном 3D. Пошёл процесс оптимизации... Во чтобы то ни стало важно было добиться того, чтобы даже самая слабая машина могла выдержать отображение и взаимодействие с сотнями врагов на одном экране. И это было чертовски сложно. Нельзя было просто перенести модель врага из оригинальной игры. Слишком тяжёлые текстуры, слишком много полигонов, слишком много данных приходилось обрабатывать. Уже на второй-третьей волнах картинка могла превращаться в демонстрацию слайдов с проектора. Так что пришлось попотеть.

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

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

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

Хотя была еще одна интересная задача, вроде бы простая, но принёсшая нам огромную попоболь xD Враги то и дело спавнились в воздухе. Точнее как, если игрок находился у края карты или обрыва, он могу увидеть как к нему семеня лапками бежит по небу аки по суху стая гиен. Что мы только не делали. И зоны спавна ограничивали, и особые условия для появления мутантов прописывали. Ну никак не могли эти мутанты успокоиться и всё лезли "полетать". Но спустя несколько обнов удалось справиться и с этим.

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

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

- 3 новых стража со своими уникальными особенностями;
- пара десятков новых видов оружия и улучшений для големов;
- новый бесконечный режим "RUSH", где можно проверить на прочность свою сборку Стража;
- пара новых боссов;
- пяток новых противников и механик для них.

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

В общем, работа кипела и Sentinels перестала быть "маленькой игрой за 99 руб.". Проект уже начал требовать действительно много внимания и затрат сил. Но они окупились с лихвой, так как в начале июня игра стала номинантом в категории MOST ANTICIPATED GAME на DevGAMM 2023. Самая Ожидаемая Игра. Вы только вдумайтесь, САМАЯ, МАТЬ ЕГО, ОЖИДАЕМАЯ.

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

Выиграть, конечно же, не удалось xD Там были действительно сильные конкуренты. Но всё равно было чертовски приятно. Таким макаром, потихоньку-потихоньку, прошло почти полгода с момента начала разработки. Внутри команды REMEDIUM: Sentinels перестала восприниматься как мини-эксперимент. Пришло осознание, что тянуть больше нельзя, нужно дорабатывать, полировать и расширять платформы.

Часть команды занялась первым, а другая пошла переносить билд для консолей PlayStation, Xbox и Nintendo Switch. Заказали производство анонсирующего трейлера... если вы думаете, что разработчики сами делают трейлеры - это далеко не всегда так) Лучше отдать это дело на откуп профессионалам, а самим заняться именно разработкой. Как говорится, делегируй, делегируй и еще раз делегируй. Иначе зашьёшься. Кстати, вот такой вот трейлер вышел буквально в начале этого месяца:

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

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

1) Показать густую и мрачную атмосферу создаваемого нами мира Remedium;
2) Дать игрокам интересный и разнообразный геймплей на часы по цене шаурмы;
3) Дать возможность игрокам соревноваться (да, мы добавили рейтинговую таблицу);

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

Но это не значит, что на этом путь Sentinels завершится. Есть еще вопрос, по которому к единому мнению внутри команды мы не пришли. Это сюжетная составляющая проекта.

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

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

На пороге релиза: как маленькая идея превратилась в большую игру Разработка, Игры, Компьютерные игры, Gamedev, Инди, Инди игра, Раздача игр, Roguelike, Гифка, Видео, YouTube, Длиннопост

Стоит ли оно того? Будет ли это действительно нужно игрокам? Ответ на этот вопрос может дать предстоящий релиз. Мы уже скрестили все пальцы (и не только) и с нетерпением ждём 18 июля. Первые релизные продажи и вишлист, собранный к моменту выхода покажут, нужен ли игре рост. Или мы достигли пика в данном проекте и можно смело отпускать его... и боязно, и интересно.

Так что не стесняйтесь, пишите любой фидбэк, любое мнение, нам оно действительно важно и полезно.

Хотите поддержать нас морально? Постучите по дереву три раза и пожелайте нам удачи)

Можете поддержать чуть больше? Добавьте игру в вишлист в Steam, это поможет пробиться на релизе через алгоритмы и больше людей узнают об ней.

Хотите сами поиграть, но денег нет? Не вопрос! Оставьте "+" (или любой другой коммент) в ответ на мой комментарий под этим постом и в понедельник я выберу 10 случайных человек. Ключи дам для любой платформы на ваш выбор (PC, PS, Xbox или Switch), так что можете написать сразу платформу.

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

И да, спасибо за поддержку!
Страница игры в Steam: https://store.steampowered.com/app/2244480/REMEDIUM_Sentinel...

На всякий случай для соответствия правилам

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

Это я

Это я Gamedev, Game Dev Tycoon, Юмор, Игры, Мемы, Разработка
Показать полностью 1

Краткий обзор способов создания 2Д графики

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

Я представил 50 проектов на своём сайте. Для каждого из них делал графику сам. Пробовал различные стили и техники рисования. И мне есть что рассказать на этот счёт. Хочу, чтобы вы имели общее представление о трудоёмкости той или иной техники создания 2Д графики.

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

Пиксель-арт

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

Я не матёрый пиксель-арт художник, хотя работал над 10+ проектами в этой технике. Выделил несколько основных стилей.

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

Я делал полностью в монохроме проект Ваш Звонок. Игра Холодная Тишина на 95% монохром. Использовал градации от белого к бирюзовому, но добавлял акценты красным цветом.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Контурный пиксель-арт. Все объекты рисуете контуром. Я использовал этот стиль в проекте Зеркальный. Он начинался как поделка на конкурс Ludum Dare - игру нужно сделать за 48 часов. За отведённое время я сделал мини-метроидванию с тремя локациями. При этом я нарисовал для проекта 40 анимированных спрайтов и 3 тайлсета. Рисовать контуром просто, и получается быстро. Вы работает над формой, а контраста добиваетесь подбором цветов.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Бедный пиксель-арт. Объекты имеют низкое разрешение от 8х8 до 16х16 пикселей. Это сложный стиль. Вы будете решать проблему узнавания формы. Можно провести часы за отрисовкой одного спрайта, гоняя пиксель по холсту. Я делал игру Как Комар Стал Человеком с размером объектов 16х16 пикселей. Потратил много времени, чтобы показать узнаваемыми собаку, пингвина и человека.

Ещё я рисовал в этом стиле одновременно с монохромом проект Ваш Звонок. Упоминал его выше. Работать над формой и делать её читаемой - вдвойне сложная задача.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Богатый пиксель-арт. Объекты имеют разрешение от 32х32 пикселей. Чем больше этот размер - тем сложнее рисовать. Вам придётся добавлять больше оттенков и больше деталей. Это дольше рисовать и сложнее анимировать.

Наибольшее количество пиксель-арт проектов я делал в этом стиле. Размер объектов 32х32. Иногда приходилось рисовать крупные спрайты для окружения или больших объектов. Много времени тратил на их отрисовку и анимации.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

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

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Ручной арт

Рисуете всю графику на бумаге. Сканируете, и обрабатываете. После удаления мусора и фона вставляете в игру. Этот способ подойдёт если вы хорошо рисуете руками, но плохо в цифре. Или если вы хотите чтобы ваша игра выглядела нарисованной.

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

Я пробовал эту технику для проекта Глазостен. Мне нравится результат, но не нравится скорость производства такого арта.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

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

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

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

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

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

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Высококачественный арт

Сюда я отношу всё, что рисуется в цифре с высоким разрешением. Всю работу вы выполняете сразу в графическом редакторе.

Растровый арт. Вы рисуете мультяшек, персонажей фентези РПГ или космических солдат. Но делаете вы это разными кистями в графическом редакторе на большом холсте. Профессионалы часто рисуют арт заведомо большего размера. Так они могут ускорить процесс и рисовать грубо: при уменьшении сгладятся шероховатости. Даже такая отрисовка занимает очень много времени. Больше всего на проработку объёмов и детализацию.

Для меня это малоизученная область. Я делал так графику всего для двух проектов: Бродячий сундук и Sig.NULL. Потратил много времени на детали и полировку.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Вектор с обработкой. Вам проще будет рисовать вектором, если не умеете работать с кистями в растре. Основные части вы рисуете векторными формами. А детали, эффекты, свет и тень - накладываете поверх растром.

Такой способ отрисовки я применял в своём проекте Danger! Energy. На момент разработки я не умел пользоваться графическим планшетом и рисовать в растре. Зато хорошо владел вектором и обрабатывал уже готовые изображения. Примерно так же я делал графику для своего проекта Tower Bombarde.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост
Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

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

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

В некоторых игровых движках вы можете использовать прямо векторные картинки. Но скорее всего вы будете переводить всё в растр и импортировать его. Я так создавал графику в проект Tvvin Core.

Краткий обзор способов создания 2Д графики Личный опыт, Инди игра, Графика, Gamedev, Видео, Без звука, Длиннопост

Итог

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

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

Все продемонстрированные проекты вы можете найти и скачать на моём сайте.

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

RWC OpenMW Engine. Миссия Мины!

Попробую такой формат. Буду выкладывать видео, по типу журнала разработки. Для своих четырех подписчиков. Возможно по одному разу в неделю, перед выходными. По сути просто репосты youtube...)

RWC OpenMW Engine. Миссия Мины! Openmw, Gamedev, Игры, Моддинг

https://youtu.be/XsFnzcJNe_I

RWC OpenMW Engine. Миссия Мины! Openmw, Gamedev, Игры, Моддинг

https://youtu.be/_VloAnE-gic

пы. сы. а кто нить знает как делать так, что бы на пикабу прогружались превьюшки видосов с youtube?

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

Все еще делаем игру, все еще с мужем, пока даже не развелись, а сделали первый трейлер

Я уже не первый раз пишу о нашей семейной разработке игры в приключенческом жанре Almost my floor: Duality Недавно у нас появился первый тизер игры, который я вам и представляю сегодня.

Все еще делаем игру, все еще с мужем, пока даже не развелись, а сделали первый трейлер Инди игра, Компьютерные игры, Видеоигра, Steam, Разработка, Игры, Point and click, Хоррор игра, Визуальная новелла, Гифка, Видео, YouTube, Длиннопост

Almost my floor: Duality - приключение в родном сеттинге основанное на постоянном выборе пути и принятии решений. Сдобренное экшен вставками и элементами point&click квеста. Что-то вроде dark pictures только в 2д, с большим количеством разветвлений, но с чуть меньшим количеством героев, которых можно растерять по мере прохождения.

Все еще делаем игру, все еще с мужем, пока даже не развелись, а сделали первый трейлер Инди игра, Компьютерные игры, Видеоигра, Steam, Разработка, Игры, Point and click, Хоррор игра, Визуальная новелла, Гифка, Видео, YouTube, Длиннопост

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

Все еще делаем игру, все еще с мужем, пока даже не развелись, а сделали первый трейлер Инди игра, Компьютерные игры, Видеоигра, Steam, Разработка, Игры, Point and click, Хоррор игра, Визуальная новелла, Гифка, Видео, YouTube, Длиннопост

Многие сцены в игре будут представлены в виде комикса с характерным визуальным стилем. Недавно посмотрела мультик про человека паука, там так классно поставлены комикс сцены. Вдохновилась. Возьму за референс.

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

steam: https://store.steampowered.com/app/2068190/Almost_My_Floor_Duality/

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

Xonix + Раннер циркулярной пилой

Xonix + Раннер циркулярной пилой Gamedev, Инди игра, Разработка, Ретро-игры, Инди, Гифка

В некоторых бонусных уровнях в моей игре реализована модифицированная игровая механика Xonix-а:

1. Циркулярная пила постоянно движется по периметру.

2. При нажатии на клавишу она начинает резать перпендикулярно вектору движения.

3. Повторное нажатие приведет к отмене - реверсивному движению.

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

Xonix + Раннер циркулярной пилой Gamedev, Инди игра, Разработка, Ретро-игры, Инди, Гифка

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

Заходите на страничку игры в Стиме - Wishlist & Follow, если вам интересно посмотреть эксперименты с игровыми механиками.

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

Первые попытки освоить движок Godot - делаем простой платформер

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

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

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

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Тут наша сцена и связанные с ней узлы...

Создаем карту

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Все мы иногда статичное тело...

Правой кнопкой мыши жмякаем на нашу 2D сцену "World" и выбираем "Добавить дочерний узел". В списке ищем "StaticBody2d" и теперь у нас есть база. Добавляем два дочерних узла уже в статичный объект - "Polygon2D" и "CollisionPolygon2D".

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Рисуем будущую карту при помощи CollisionPolygon2D...

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Код приравнивающий форму фигуры к форме области столкновения...

Теперь нам нужно сделать так, чтобы визуальная фигура повторяла форму области столкновения. Нажимаем на нашу сцену и добавляем к ней скрипт. GD-script во многом схож с языком Python и более-менее прост в понимании. Сначала добавим наши узлы в виде переменных, для этого зажимаем "ctrl" и перетаскиваем в код после блока extends.

Прописываем функцию ready, она будет воспроизводится сразу во время запуска сцены. А дальше просто приравниваем форму фигуры к форме области столкновения (polygon_2d.polygon = collision_polygon_2d.polygon).

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Получаем дешевую и сердитую карту - все в гоблинском стиле!

Карта готова, но что делать теперь? Пора добавить нашего персонажа-марионетку.

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Добавляем иконку

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Выделяем область столкновения...

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

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Наши переменные...

Задаем переменные через const (constants - постоянное значение). Значения констант не могут быть изменены в ходе самой программы, на то они и постоянные. Для чего нужны эти значения расскажу ниже.

const SPEED = 150.0

const JUMP_VELOCITY = -300.0

const FRICTION = 1000.0

const ACCELERATION = 600.0

На этот раз мы берем не функцию ready, а другую - physics_process. В отличии от простого process, здесь время между выполнением функции будет одинаковым. Это обеспечит нам стабильность при передвижении объектов.

Начнем с настройки гравитации!

Дело в том, что система координат X-Y в Godot имеет свои приколы. Ось X идет от отрицательной к положительной слева направо, однако ось Y идет от отрицательной к положительной сверху вниз. То есть ось Y буквально перевернута с ног на голову. Если непонятно - объясню проще:

Хотим передвинуть вправо - прибавляем к оси X;

Хотим передвинуть влево - вычитаем из оси X;

Хотим передвинуть вниз - прибавляем к оси Y;

Хотим передвинуть вверх - вычитаем из оси Y;

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Гравитация... беспощадная ты с*ка!

Как же нам заставить персонажа падать под давлением гравитации? Для начала добавим переменную GRAVITY равную 1000. Затем создаем свою пользовательскую функцию и называем ее aplay_gravity.

Мы должны падать когда находимся в воздухе, то есть не на полу. Буквально говорим программе "Если объект не на полу сделай следующее: измени положение по оси Y в положительную сторону на заданное нами расстояние".

if not is_on_floor():

velocity.y += GRAVITY * delta

Что такое delta? Это время между кадрами, благодаря чему перемещение будет стабильным вне зависимости от FPS.

velocity - это параметр скорости изначально зашитый в наш объект. По этой причине его так же не требуется объявлять как переменную. Грубо говоря сюда мы задаем то расстояние, на которое должен переместиться объект по осям X и Y.

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Отлично, нас прижало как после "Балтики 9"!

Теперь настраиваем прыжки!

Для этого создаем еще одну пользовательскую функцию handle_jump. Мы говорим ей: "Если мы нажимаем кнопку прыжка и находимся на полу - измени положение по оси Y в отрицательную сторону". Напомню, что константа прыжка имеет отрицательное значение.

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

velocity.y += JUMP_VELOCITY

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

К гравитации добавляются прыжки...

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Прыжок веры...

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

Надеюсь вы еще не забыли, что направление у нас зависит от отрицательного или положительного значения? Есть такая штука в Input как get_axis, где мы задаем две клавиши. Нажатие первой клавиши прировняет переменную к значению -1, нажатие второй клавиши наоборот к 1. Если ни одна из клавиш не нажата, переменная принимает значение 0.

Создаем переменную input_axis внутри physics_process, на этот раз через var, ведь она будет менять свои значения в процессе. А далее задаем машине установку "Если нажата одна из двух клавиш, то мы меняем значение по оси X в зависимости от выбранного направления".

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

Начальная точка - velocity.x

Конечная точка - наша скорость SPEED помноженная на направление (-1 или 1)

Промежутки - наше ускорение ACCELERATION помноженное на время между кадрами delta

if input_axis !=0 :
velocity.x = move_toward(velocity.x, SPEED * input_axis, ACCELERATION * delta)

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Вот наш код...

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

А вот признаки жизни... беги Форест - БЕГИ!

Двигаться мы можем, а вот с остановкой проблема. Что не дает нам вечно кататься по земле? СИЛА ТРЕНИЯ!

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

if input_axis == 0 :

velocity.x = move_toward(velocity.x, 0, FRICTION * delta)

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост
Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Бегаю, никого не трогаю... к земле притягиваюсь во время прыжка...

Вишенкой на торте внутри физической функции является move_and_slide которая и отвечает за все эти процессы. Без нее указанные выше шаманские обряды просто не запустятся.

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

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

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

P.S.

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

Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост
Первые попытки освоить движок Godot - делаем простой платформер Gamedev, Разработка, Инди игра, Программирование, Программист, Инди, Python, Godot, Godot Engine, Новичок, Код, Разработчики игр, Игровой движок, Платформер, IT, Unity, Unreal Engine, Длиннопост

Традиционный тематический гоблин в конце!

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

Поиграем в бизнесменов?

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

СДЕЛАТЬ ВЫБОР

Вчера запаниковал прямо на улице

Подумал: а что с лицензией на использование шрифта в игре??? Понравился шрифт для надписи "Game Over", а без него дизайн поломался бы. Пришлось бы вымучивать новый, а я даже пока не умею!

Зашёл на сайт разработчика шрифта, а там: "Пожалуйста, не стесняйтесь использовать шрифт в коммерческих целях, в том числе в разработке игр. Шрифт бесплатный." Святой человек.

P. S. Череп сгенерирован нейросетью Stable Diffusion Automatic1111. Пошаговая инструкция по установке, если тебе нужно: https://youtu.be/jepK6ufemMw. Весит 25GB. И инфа для advanced users))) - Модель дополнена чекпоинтом Pirsus Comics: https://civitai.com/models/54009/pirsus-comics-style.

Вчера запаниковал прямо на улице Gamedev, Инди игра
Отличная работа, все прочитано!