darkdes

darkdes

В основном соло разработчик игр. Творю и всякие физические творения. Пишу статьи о разработанных играх. Ссылки на мои соцсети и игры: https://darkdes.github.io/
На Пикабу
299 рейтинг 3 подписчика 6 подписок 7 постов 2 в горячем
10

Сделали игру командой за месяц или История разработки игры "Под Горой"

Введение

В этот раз я ввязался в кооперацию, а не в одиночку стал делать игру, как обычно бывает у меня. Уже принимал участие в командной разработке на конкурсы, например, «Антивирус» (или «Cybxus Heart») на Гаминатор 19, «Изгоняющий» на Гаминатор 25, и «Из Тени» на ЗОК 2024.

Скриншот из конкурсной версии багодня

Скриншот из конкурсной версии багодня

В прошлых совместных разработках моя роль была исключительно графическая — рисовал графику, делал 3д модели. Короче говоря, художник, но с обсуждением каких-то геймплейных идей. Хотя, я немного программировал в случае с «Антивирус», когда он стал «Cybxus Heart» после конкурса. А когда делаю игру в соло, то я отвечаю за все аспекты: программирование, геймдизайн, графика, музыка и т. д.

И вот новый конкурс на сайте Gamin.me — Гаминатор 28. На нём я взял себе другую роль — на мне была вся техническая часть. Короче говоря в этом проекте я был программистом. Повествование в этой статье, разумеется, только с моей стороны и мои восприятия. Не могу знать что думали, как делали и ощущали другие члены команды.

Антивирус, Изгоняющий, Из Тени

Об Изгоняющем я писал статью по графике на ВК, на ДТФ.


Концепция

Всё началось ещё до старта конкурса Гаминатор 28. Задолго. Всё началось в 1799 году … ладно-ладно, не настолько давно. Всё началось после проведенного мной недо-конкурса Графических Ассетов на сайте Gamin, где был ровно один участник – Kot211. Конечно, я был расстроен таким положением дел, но благодарен Коту, что он поучаствовал. Как я понял, то ему понравилось, что его рисунки оживают в игре, пусть и столь примитивной. А я именно этого и добивался: дать художникам (начинающим или мастерам) возможность “оживить” свои художества.

Специальная программа-игра на Godot для конкурса Ассетов, где можно заменить любой спрайт

Специальная программа-игра на Godot для конкурса Ассетов, где можно заменить любой спрайт

Графика Кота для этой спец.программы

Графика Кота для этой спец.программы

Спустя какое-то время после окончания конкурса Ассетов Кот написал, что мой конкурс вдохновил его и он полон решимости сделать целую игру-платформер! И мы начали это долго обсуждать. Пока мы перекидывались идеями, появилась новость о скором проведении  конкурса Гаминатор 28 пользователем Anim86. Мы решили делать игру на этот конкурс и стали обсуждать это меньше т.к. нужно было дождаться объявления темы. Однако, мы уже тогда определились, что я буду программистом, а Кот рисовать графику и уровни.

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

Вот так у нас образовалась команда из
Kot211 — графика, уровни, сюжет, ведение проекта, и, как мне кажется, вся идея;
DarkDes (т.е. я) — программирование, техническая часть;
Scorched — звуки, некоторая музыка и подбор музыки;

Думал, что мы будем пользоваться чатом редко, но там оказался плотный и скоростной трафик сообщений! Пару раз писал команде в полу-шутку, что “да вот же, я уже сделал игру на эту тему – Красный Робот с Гаминатора 22! И он тоже платформер!”. Этот проект с Гаминатора 22 в итоге стал практически основой для текущего.

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

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

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

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

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

© Kot211

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

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

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

Это лишь малая часть монстр-таблицы

Это лишь малая часть монстр-таблицы

Мы продолжали обсуждать концепцию в чате, от чего Скорчед даже начал переживать, что мы не успеем с такими объемами. Я с ним соглашался —  ничего не успеем. Поэтому я предложил сделать игру за 2 недели, а не месяц, который отводился на этот конкурс. Это позволило бы сосредоточится на самом важном и потом полировать игру. Забегая вперёд: конечно же, мы не взяли лимит в 2 недели и да, мы не успели к оригинальному дедлайну, как и было предсказано.

Разработка

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

Я сделал немного платформеров или игр схожего жанра. Могу вспомнить такие игры как «Непонятна тьма» для КОД 16,  «Рунтрис» или «Супер Матвей Галаксеевич» для КОД 17.2  (18),  «Криста фон Граф» на MP3 Jam и конечно «Красный Робот» (он же «Игра без названия, но про робота») с Гаминатора 22, который послужил основой для текущего проекта.

Непонятна тьма, Супер Матвей Галаксеевич, Криста фон Граф

Собрав старые наработки я сделал проект Platforman 2. Где первый? Судя по датам он стал основой для Красного робота и собран после Непонятной тьмы.

Platforman 2 основа для всех моих следующих платформеров, неким хабом откуда будут тянутся скрипты и объекты в другой проект, а потом доработанные версии этих скриптов из проекта должны вернутся в этот хаб-проект.

В будущем я хочу сделать технический монстр-проект Framework, где будут все мои наработки, чтобы глобально отслеживать изменения своей кодовой базы GameMaker. Для меня является проблемой — трекать изменения всех своих модулей, скриптов и объектов. Я делал таблицу и сейчас наткнулся на airtable, где попытаюсь выстроить целую БД, чтобы было проще оперировать своими наработками. Это было небольшое техническое отступление.

Пока я делал основу, где герой может прыгать, собирать монеты, и бегать по кривым поверхностям, концепт оброс некоторым количеством деталей концепта. Я приступил к созданию конкретного списка что нужно сделать т. е. список To-Do. Думал, что пока я пишу список и реализую его, то вся конкретика появится и устаканится. Но вышло так, что даже в своих списках (враги, например) всё ещё не появились как конкретный концепт и на тот момент было непонятно что вообще реализовывать.

Список, который я составил для базового платформера (Platforman2)

Список, который я составил для базового платформера (Platforman2)

Скорчед хотел попробовать использовать FMOD, и я даже скачал его себе на компьютер. Есть официальное расширение для GameMaker. Но честно, я сомневался в решении использовать FMOD. Мне было непонятно зачем такая сложность для простого проигрывания звуков. Там была пара интересных моментов, например, что из звуков можно составить более сложный звук и «запрограммировать» какие-то параметры. Но хоть демка от самого GameMaker у меня работала, но уж слишком много кода и телодвижений нужно было сделать для добавления всего лишь одного звука. Я решил, что это неоправданно и отказался от этой библиотеки.

Моё решение Скорчед принял и мы стали использовать обычные звуки в GameMaker. Я создал скрипт GameSFX() с кучей функций ffx_ (нет, это не final fantasy x!) — так обозначил всю группу звуко-эффектных функций, в которых Скорчед мог делать всё что захочет. А я вызывал эти ffx_ функции в коде игровой логики. ffx_ не называется sfx_ от того, чтобы не создавать путаницу. FFX (первая F это Feedback) я хотел расширить с просто звуковых эффектов, до более глобальных: vfx (спрайты дыма, например), тряска камеры, вибрация контроллера. Но это, наверно, уже только в будущих проектах.

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

Список todo когда ещё не было сильной конкретики. Как видно — завершил я не всё. А потом появился список с большими конкретными моментами (уровни, катсцены) и ОГРОМНЫЙ список правок и изменений от чего я сильно бухтел.

Как я писал ранее, мы сразу обозначили свои роли: я технический отдел, Кот рисует графику, сюжет, делает уровни, а Скорчед отвечает за звуки (в будущем он с Котом подбирали музыку, я в это не лез). Однако, ещё на этапе обдумывания думал, что катсцены, которые были прописаны в сюжете, будет делать Кот через мою удобную систему написания катсцен кодом, предполагая, что он с движком знаком. Моя система такая, что нужно писать последовательность действий в виде функций. Это не тоже самое, что и встроенные в GameMaker Timeline и Sequence, но думаю, что оба вида ресурсов можно использовать внутри моей системы. Это опять было небольшое отступление.

Но оказалось так, что и реализацию конкретных катсцен должен делать я. Ладно катсцены — система удобна мне и с ней относительно быстро сделал… или не сделал, потому что пошла зависимость от конкретики и проблемы. Вернее сказать, что этой конкретики не было в каких-то вещах. Я не могу сделать катсцену для сцены-1, которая на уровне-1, потому что этого уровня ещё нет в хоть каком-то виде. Конечно, те вещи что я мог реализовать я таки реализовал, где нет зависимости от уровня. Мне казалось, что я большую часть времени делал не конкретную игру, а какой-то эфемерный набор вещей, который мог пойти под нож и «ну надо переделать», хотя я и так много сил тратил на это. Почти весь этап разработки я провёл на тестовых уровнях под названием playground, без тестирования на конкретных игровых уровнях.

Поворот

Это не сюжетный поворот, а скорее точка слома-перелома. Мне кажется, что я перегорел. Постоянно добавляющиеся список фичей рос, а игры не было видно. Пункты из списка закрывались один за другим, и казалось уже вот всё готово, то тут и возникали некие новые детали и те самые «надо сделать», хотя вот же готовое, но нет. Именно тут, как мне кажется, я понял о чём писал Скорчед — почему он не хочет быть программистом в конкурсных участиях (хотя, может я не так его понял). Какие-то вещи добавлялись, чтобы быть переделаны т.к. изначально были не чётко обозначены. Вы можете сказать, что это нормальная практика и итеративный процесс в разработке. Может быть это так, может быть это я такой ворчун, но когда ты сделал систему и нужно снова вносить правки, которые изначально не предполагались, когда значительную часть разработки\конкурса провели в обсуждениях и вроде всё выяснили — это раздражало. Программировал игру из последних сил на тот момент. Я далеко не перфекционист и мне важнее закончить игру, а тут я видел, что с таким подходом закончить не успеем никак.

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

Подходил дедлайн и моя твёрдая уверенность, что не успеем и что время будет потрачено зря, отвердевает до состояния алмаза. Так и хотел написать в чат «я же говорил» (а может и написал!?).

Случайный скриншот со времён разработки игры

Случайный скриншот со времён разработки игры

Кто-то наверно скажет, что плохой тайм менеджмент, координатор и лидер проекта, надо было брать сеньёра с 40 летним стажем ради игры на локальном сайте для небольшой группы энтузиастов … и вы будете серьезны? Это же конкурс хоббистов, по сути. Вся проблема, как мне кажется, была в объеме самой игры. Изменилось бы что-то, если бы я был ведущим лидером проекта, который бы снижал хотелки? Не знаю, может быть мы бы успели в срок, а может и нет, а может получилась бы не игра, а какая-то пустышка.

Когда делаешь игру в одиночку (соло), то ты ответственен только перед собой. Не успел — виноват ты сам. Сделал плохой геймплей — виноват ты сам. Весь срок конкурса бегал по неотложным делам в IRL — виноват … ладно, тут может быть кто-то другой виноват!

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


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

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

Рисовал спрайты в Aseprite. Много кадров анимации.

Рисовал спрайты в Aseprite. Много кадров анимации.

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

Потом, продолжаю тематику злодеев, я нарисовал и всех трёх врагов с простейшими анимациями. Но врагов я рисовал уже во время так называемого багодня, где по идее можно было только исправлять баги, но организатор Anim86 разрешил «полировать игру». Поэтому были дорисованы некоторые спрайты (многие) Котом и враги мной.

Враги слева направо: лягушка, патрульный, турель

Враги слева направо: лягушка, патрульный, турель

Выводы

Многое я уже забыл спустя месяц разработки. Но мы сделали игру! Ура! Не 100% какую задумывали, но всё же дошли до конца.

И в качестве эксперимента решил выложить видео на Youtube и VKVideo продолжительностью в 30 минут, где я собрал короткие видео (и пару скриншотов) с этапов разработки в виде эдакой хроники:

Всегда предполагал и закрепил на опыте: разработка в команде это ДОЛГО и сложно! Очень много времени тратится на связь, обсуждения, разговоры, координацию и прочее. Проекту нужен тот, кто видит игру и поведёт других — тимлид, можно сказать.
Может от того, что я был программистом и бухтел, но мне кажется, что таким лидером должен быть именно программист — он будет знать все технические аспекты и возможности игры.

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

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

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

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

Так же можно скачать из моего ТГ канала.

Ещё скриншот из багодневной версии игры

Ещё скриншот из багодневной версии игры

Да, был момент, когда я очень сильно устал от проекта и наверно готов был бросить это дело, но не бросил — ответственность перед командой и игрой. Я рад, что у нас получилось сделать игру!

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

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

Всем спасибо за внимание!

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

Спроектировал и склеил трансформера из бумаги!

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

Вот такой вот получился.

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

Очень медленная видео демонстрация трансформации. Кривовато, но всё же!

Планирую, но не могу обещать, сделать пост или даже видео с более подробной информацией о процессе создания.

Вот несколько фотографий, не сказать, что поэтапных, так сказать, показывают закулисье:

Сначала концепт и проекцию с двух видов я нарисовал в тетради. Затем, я использовал программу Blender, чтобы создать дизайн этого творения и анимацию из одной формы в другую. Потом я решил нарисовать развёртки в тетради и использовал их как ориентир, потом я развёртки перерисовал в Inkscape. Я очень много ругался на Inkscape т.к. он часто вылетал и зависал. Всё же это не очень-то и оптимальный подход: из Blender можно через плагины получить чертеж или использовать Pepakura Designer. Но я выбрал сложный путь!

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

Такие вот развёртки и три листа для втулок (цветные). Тетрадный прототип развёртки. Это было в самом начале работ. Но уже с готовой головой.

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

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

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

Всем спасибо за внимание!

П.С.: не уверен верно ли я добавил тег "рукоделие с процессом", так как вроде и есть о нём, а вроде и не детально. Скажите верно ли я сделал?

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

Маркерное путешествие

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

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

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

Робот-строитель, робот-маскот и робот... ой, то есть определённо грузовик, который не превращается в робота!

Робот-строитель, робот-маскот и робот... ой, то есть определённо грузовик, который не превращается в робота!

Опасный панк и какой-то мутный тип

Опасный панк и какой-то мутный тип

Гоблин, предположительно, механик. И кактус, как видно из подписи.

Гоблин, предположительно, механик. И кактус, как видно из подписи.

Ещё один космолёт.

Ещё один космолёт.

Шлем пилота и какие-то абстрактные зарисовки.

Шлем пилота и какие-то абстрактные зарисовки.

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

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

Карт, мадама и глупого вида пёс. А кубок похоже идёт в наборе с картом.

Карт, мадама и глупого вида пёс. А кубок похоже идёт в наборе с картом.

Всем спасибо за внимание!

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

Сделал пиксельный пошаговый и научно-фантастический Dungeon Crawler от первого лица в 3D на GameMaker

Состряпал таковой на один джем, боёвка простая и скучная, но вы это и сами можете увидеть поиграв. Пиксель арт стиль, sci-fi, шаг по клеткам и бои тоже пошаговые кстати. Игра короткая, пробежать можно и за 7 минут, что ровно в 2 раза меньше прошлого моего данжен кроулера.


Наткнулся на джем по пошаговым данжен кроулерам на ныне заблокированном Itch.io. Ну, думаю, опять пора делать игру! Сроки уже тогда поджимали, а я хотел проверить свои новые лимиты: 4×4 т. е. 4 дня по 4 часа (1 час = 1 задача).

И сразу скажу: ничего с 4×4 не получилось — планировать задачи и время не умею + случился IRL.

Скачать и поиграть (если сможете пробиться): https://darkdes.itch.io/the-disk-heist

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

В последний момент придумал название: The Disk Hesit. И обложку быстро нарисовал. Ведь, когда я решил посмотреть на страницу джема, то оказалось, что времени осталось всего 3 часа! Хорошо, что я включил компьютер— обычно сначала днём дела и потом уже ПК включается, а тут так вышло. Было бы обидно не поучаствовать.

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

Скриншоты

Злющий враг-робот буйствует на станции

Злющий враг-робот буйствует на станции

Не очень сообразительные враги-мутанты. Стоят. И смотрят.

Не очень сообразительные враги-мутанты. Стоят. И смотрят.

Мини-игра по "взлому замка". Или исправления электрической цепи.

Мини-игра по "взлому замка". Или исправления электрической цепи.

Можно орудовать в инвентаре! ВНИМАНИЕ: может произойти ошибка и предмет застрянет в суперпозиции!

Можно орудовать в инвентаре! ВНИМАНИЕ: может произойти ошибка и предмет застрянет в суперпозиции!

Кто-то ломится через дверь

Кто-то ломится через дверь

Загадки в игре уровня "принеси предмет и вставь в слот"

Загадки в игре уровня "принеси предмет и вставь в слот"


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

А сам концепт пересекается с моей очень старой идеей и желанием сделать (пошаговый) данжен кроулер фантастический, который вдохновлён Систем Шоком 2. А ещё игра сюжетно напрямую связана с D-Scan (предыдущая моя выпущенная игра).


Напомню, что можно скачать ЕХЕ или поиграть в браузере тут: https://darkdes.itch.io/the-disk-heist

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

Известны уже некоторые баги — я не успел их исправить за время конкурса. Если поиграете, то буду признателен комментариями о игре!

Там пока нет русского языка — я планирую чуть доработать игру в будущем и выложить, например, в VK Play.

А если хотите, то можете глянуть полное прохождение, которое длится 7 минут:

Всем спасибо за внимание!

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

MOTO-LOOPER. Поучаствовал в GMTK Jam и сделал игру за 3 дня

Приветствую! Расскажу о разработке аркадной игры, где нужно ездить на мотоцикле и закручивать шары в петли своего светового хвоста! И конечно же дам поиграть. Но сначала что же такое GMTK Jam? Game Maker's Toolkit Jam основанный YouTuber-ом с канала Game Maker's Toolkit. Этот Jam (продолжаю называть "конкурсом") проходит раз в год, кажется. Я участвовал конкретно в этом конкурсе впервые: не люблю крупные, а тут было аж 9600+ заявок! И спойлер, я занял аж 330 место!

Ссылка на itch с игрой: https://darkdes.itch.io/moto-looper

Как всегда — сначала отнекивался, а потом пришла в голову идея и давай её релизовывать. Выделил себе 8 часов (сам джем идёт, кажется, дня 4). Разумеется, дедлайны были сбиты и в итоге делалась игра, наверно, часов 12−15. Т. е. опять в два раза больше.

Такой вот логотип нарисовал

Такой вот логотип нарисовал

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

Сначала идея была в том, что едешь и хватаешь в кольцо своего хвоста шары. Потом подумал добавить уровни (как прокачку) и враги. Но это явно усложнение — я хотел только гонять и делать кольца. Стараюсь такими участиями (играми за 2−3 дня) научиться делать нормальный геймплей, желательно не кашу.

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

С музыкой в последний момент помог romgerman.

И да, я действительно «вдохновился» Соником. Использовал как всегда GameMaker, который чуть было не подвёл меня т.к. я настолько слабоумие-и-отвага, что в этот раз не стал использовать git. Графика в Aseprite. Кстати, использовал свой скрипт, чтобы нарисовать Sprite stack мотоцикл.

По результатам GMTK Jam 2025 с игрой Moto-Looper (о которой писал) я занял 330 место! Ура!

Лично для меня это успех, в рамках такого крупного джема с 9000 играми (ну, допустим, даже если реально поиграли в 2000 игр).

Такое вот результаты

Такое вот результаты

Мои мысли по поводу итогов голосования (вариация со своего ТГ канала):

Enjoyment категория — 330 место. Не знаю что это, но подозреваю, что это основная. Т. е. игрокам реально понравилась играть в игру. Если это правда и голосующие не лукавят, то для меня это большой прогресс!

Audio оценено рядом — 424 место. Благодаря romgerman! Думаю, музыка значительно повлияла на ощущение игры. Поэтому, спасибо ему, что в последние моменты джема выдал мне два трека!

Artwork — 496. Мне даже интересно, изменилась бы оценка, если бы я сделал так, как задумал в первую наносекунду идеи — не пиксель арт, а, как я называю, HD-Digital? Ещё и зум ломал пиксели. А может всё дело в комбинации абстрактного (шары, поле) и конкретного (мотоцикл, канистра)? Этого уже не узнать — это надо идти в соседнюю Вселенную.

Creativity на самом деле странно что около 1500. Т. е. это наверно слишком высоко.

Narrative — Если я верно понял (Raw)Score, то не понимаю почему там ставили вообще 2 звезды, а не 1. В игре же нет нарратива!

И небольшой бонус - история разработки.

Так сказать, это постмортем, раньше я писал такие посты и называл их "Как это было" на других ресурсах.

Началось всё вот с этого скриншота 1 августа в 22:15 моего локального времени:

Нет, вру. Началось всё с вот этого описания в 21:42:

А, нет. Снова соврал — началось всё ещё под вечер 30 июля:

Было 2 идеи: 1) С мотоциклом (тогда ещё неведомо чем) и 2) Это типа ртс, где ходим буквально по кругу и строим.

Выбрал 1 т.к. это казалось проще, я это «видел» в голове, да и вообще ртс-подобие это сложно, но реально за 2 дня.

В голове был образ игры — воплотить его было было не сказать, что проблемно, но нужно было «ухватится» и поэтому я сел за Aseprite рисовать пиксели графики. Одновременно концепт и финальный результат. Для джемов я всегда рисую сразу финальную графику. За исключением совсем уж временной типа «прямоугольник с точкой».

Главный враг — время. Я думал, что джем длится 2 дня. Или я хотел успеть за 2 дня? Так или иначе — хорошо что 2 дня, потому что заняло всё в итоге дня 3.

Мне помогла новая штука про выписывание «задача по часу». Подумал, что 8 часов\задач хватит. Но кажется, делал игру в итоге 16 часов.

Да, звуки я выдал одной задачей. А вот в музыке сразу 2 трека, хотя по идее это было бы 2 задачи т.к. для меня музыка это сложное дело. Но тут помог Romgerman. И на самом деле я сначала вычеркнул задачу и уже не думал добавлять музыку. А потом Romgerman скидывает трек.

Разумеется были всякие баги и забавные моменты:

Из игры «вырезаны» враги и прогресса с набором опыта. Честно говоря, подумал, что они просто лишними будут для игры, где одна единственная цель «собирай шарики своим хвостом от мотоцикла».

Задача 0, где надо было собрать прототип заняла у меня в итоге часа 2 на самом деле, а не 1. Разумеется я всегда делал и продолжаю делать просроки.

Мой совет себе и другим: всегда добавляйте сок.

Напомню что тут скачать или играть: https://darkdes.itch.io/moto-looper

Всем спасибо за внимание!

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

Выпустил игру-головоломку про файлы - D-Scan

Привет! Надеюсь я оформляю пост пишу в правильное место и не нарушаю никакие правила. Рассказ пойдёт о моей новой игре, которая только-только вышла!

D-Scan - это игра-головоломка, где предстоит оперировать реальными файлами игры. Искать пароли от архивов, совмещать файлы, декодировать их. И всё это ради того, чтобы побыть в шкуре "IT-специалиста по восстановлению данных" в недалёком будущем. Предстоит ответить на вопросы по файлам, поэтому нужно ещё и запоминать или записать на какие-то вещи - словно в олдскульных играх. Экспериментальный уникальный опыт!


Немного истории проекта:

Игру делал на конкурс с сайта gamin.me. Посвящён конкурс интерактивной литературе, а я такое выдал! То есть вроде текст, иногда картинки, всё по правилам! Но мне показалось достаточно интересным обыграть тематику конкурса тем, что нужно будет читать именно файлы (там много текстовых).

Делал на движке GameMaker. Там нет какой-то базы для пользовательского интерфейса. Некое подобие разметки только сейчас добавляют. И поэтому пришлось делать всякие кнопочки и ползунки самостоятельно. Впрочем, для такой "статичной" игры это было просто. Однако, мне пришлось сделать крайне простой обозреватель файлов, скорее, жалкое подобие консольного обзорщика.

После конкурса (я, конечно же, не победил) у меня была мысль быстро закончить игру и выложить, например, в VKPlay. Да-да, я знаю, что там ни игр, ни игроков и вообще это VK, помойка и т.д. Но вы понимаете на что приходится идти инди-игроделам?! Сама игра экспериментальная, но и релиз в VK тоже эксперимент.

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

Новый вид

Новый вид

В игре имеется сюжет или скорее некий лор. Этот лор пересекается с моей другой старой (10 лет прошло) игрой на конкурс и, что интересно тоже интерактивной литературы, повествует о корабле флотилии человечества "Трезубец" и какой кошмар там случился. Игра так и называется: "КФЧ Трезубец" - можно найти её в интернете.

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

А вот это немного ещё старый вид. Виден текст, вместо иконок.

А вот это немного ещё старый вид. Виден текст, вместо иконок.

Когда я проходил модерацию в VKPlay, то они сказали, что нельзя Windows элементы и третьих контор. Тогда я сделал ещё один вариант трейлера, но так и не отправил им. Так сказать, посмеялся:

Начало сюжета такое:


Игра вышла буквально вчера, 9 августа 2025 года. Доступна в VKPlay:

https://vkplay.ru/play/game/dscan/

И на itch, с которого, правда, не вывести средства. Но, скажем так, выложил её там, чтобы те, кто не хочет пользоваться VKplay могли бы тоже каким-то образом попробовать игру.

https://darkdes.itch.io/d-scan

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

Всем спасибо за внимание!

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

От Pong до Portal. Сделать 10 игр на Godot. Что из этого получилось?

Введение

Кратко расскажу о себе (если вдруг кто забыл): имею около 10 лет опыта с GameMaker, выпустил пару игр в Steam. Делал пару-тройку конкурсных игр на Unity, один раз на Unreal Engine 4 (об этом даже детально рассказывал). У меня нет цели попробовать абсолютно все движки, однако, взглянуть на мейнстрим и что попали в руки — почему бы и нет? Таким движком оказался Godot. Много о нём слышал, решил попробовать в деле.

Очень давно попробовал взглянуть на Godot сделав на нём «ремейк» своей старой игры-шутки Zhulik.exe. В движке есть готовые вещи для работы с User Interface (UI). А этот интерфейс это важная основная часть Zhulik. Но я скажу честно: я открыл движок и закрыл его. Забыв на, боюсь сказать, годы. Это сложно назвать даже попыткой, честно говоря.

Настоящей «первой попыткой» знакомства с Godot было участие в конкурсе разработки игр Gamainator 25. Назвал проект очень странно и просто — «1». Это буквально её название. А выглядела она примерно так:

Конкурс не накладывал ограничений на движок игры. Поэтому решил поэкспериментировать и взять Годот. На моё удивление, но я смог собрать некий прототип за 2 дня! Игрой это было назвать сложно. Сделал прототип и написал статью о разработке где-то в мае 2023 года. (ссылки на сторонний ресурс)

Challenge (вызов-испытание)

Под конец апреля 2023 года было решено создать крохотный чат в ТГ по этому движку. Целью было совместное обучение и изучение небольшой группой знакомых. Похоже, мы все видели потенциал Godot. И мы подумали себе challenge — каждый делает свой рогалик. Печальный исход такой: за 5 месяцев никто не сделал игру. Это был провал. Я смог сделать только вот такое:

К началу марта 2024 года один из участников предложил взять уже состоявшийся 20 games challenge. Хоть в названии 20 игр, но на деле челлендж на создание 10 игр с нарастающей сложностью. Никаких временных рамок в оригинале не было, поэтому мной были предложены и приняты такие условия: до конца 2024 года сделать все 10 игр, получается по одной игре в месяц.

И так, поехали!


Игра 1. Понг | Pong

На выбор были Pong или Flappy Bird.

Достаточно простая игра, осилил за 7 дней. Вся сложность заключается в непонятном для меня движке. Не так просто принять идею Nodes, а именно что всё кругом Node. У Ноды может быть только один скрипт расширяющий функционал, а наследовать скрипт можно лишь от одного родителя. Приходилось выдумывать странные конструкции. Впрочем, иерархический подход понятен — примерно как в Unity, но такого не было в GameMaker, что может вызывать сложности с переходом с ГМ на Годот. Графикой я решил пренебречь и выглядела игра примерно вот так:

Сложно рассказать что-то интересное о Понге. Разве что я решил замахнуться дальше, чем просит челлендж и сделал: игру на двух игроков, на игрок против ИИ, ИИ против ИИ, а ещё зачем-то меню и паузу. Но главное что там было — это костыли, которые я городил даже в таком простом проекте.


Игра 2. Арканоид | Breakout

На выбор были Breakout или Jetpack Joyride.

Прогресс по этой игре пошёл куда лучше: взял за основу прошлый Понг, переименовывал и изменял какие-то моменты. И игра готова! Из особенностей: эта игра стала первой из нескольких, которые делал на стриме. Вот, можете глянуть даже запись на Twitch. Управился за 3 часа, если не считать основу в виде Понга. Результат такой:

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

Уже с этой игры появляется базовые знания сохранения hi score, что, конечно, не сильно отличается от такового из того же GameMaker. Однако, не все игры будут использовать это, особенно последние.


Игра 3. Космические Инвайдорзы | Space Invaders

На выбор Space Invaders или Frogger или River Raid.

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

Конечно у меня были различные баги, но здесь меня поджидали особо коварные: почему-то коллизия на дне не работает. Коллизия снаряда с врагом-клоном не работает. Под врагом-клонами я подразумеваю врагов, которые наследуются от сцены врага. Проблема оказалась в том, что почему-то слой коллизии у клонов был отличный от своего родоначальника. Было ли это связано с каким-то багом в наследовании сцен? Не знаю. Впрочем, я читал, что лучше не использовать наследование сцен в Годоте.


Игра 4. Астероиды | Asteroids

На выбор Asteroids или Spacewar! или Indy 500

Снова взял за основу прошлый проект. Т. е. ещё с Понга тянется эта «игровая династия». И вновь стримил это дело на 4 часа. Опять взял графику со своего старого прототипа-аркады, но теперь ещё и разбавил старой же графикой с совсем древнего проекта, который был написан ещё на Си++ и OpenGL, есть древнее видео.

С этого проекта я попробовал заливать на youtube короткие shorts.

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


Игра 5. ПАК МЭН | Pac Man

На выбор Pac Man или Tic-Tac-Toe или Conway’s Game of Life

Я начал этот проект скопировав Астероидс. Странное решение, но я решил пробовать именно продвигаться «от прошлой игры к следующей». Конечно, пришлось заменить практически всё.

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

Я прибегнул к статье-разбору (ссылку потерял), где описывается как работает оригинал, а главное, как работает ИИ призраков. Признаюсь, что всё было не так-то просто реализовать.

https://www.youtube.com/watch?v=5og2VNmDpm4 Или посмотреть прямо здесь:

В этой разработке я познакомился с тайловыми картами в Годот и авто-тайлингом (не совладал, ставил руками), что он предлагает. Честно сказать — я запутался в этих тайлах. Ещё одной особенностью этой игры стало то, что я решил использовать сторонние графические ассеты. Меня всегда тянет сделать новую уникальную графику, даже если это какой-то «технический» спрайт, который увидит только я сам. А вот тут решил попробовать побороть себя (у нас же всё же «вызов»!) и вот получался ПакМэн с волшебником и скелетами.

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

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


Игра 6. Супер Игарио Братаны | Super Mario Bros.

На выбор Super Mario Bros. или Pitfall или VVVVVV

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

Сначала всё казалось достаточно просто, потому что я смотрел на игру с опытом GameMaker.

После ПакМэна я начала «выгорать» или как назвать то, что я устал и не хотел больше копаться в Годоте? Но именно с проблемами и трудностями узнаёшь о движке (а может и себе? Ну это уже философия). Марио продолжал подкидывать дров. Я был готов уже бросить этот челлендж.

Простая с виду затея оборачивалась сложностью на сложности, проблемой на проблеме. Мой игрок стал походить на кучку квадратов, а не персонажа игры — весь в специальных коллайдерах Area2D для детекции столкновений, подбора предметов или разбивания ящиков головой. Я уже реализовывал всё как мог, а не прибегая к лучшим практикам.

Так выглядит персонаж игрока в редакторе. Весь в прямоугольных коллайдерах.

Так выглядит персонаж игрока в редакторе. Весь в прямоугольных коллайдерах.

Продолжаю учиться использовать чужие готовые ассеты — скачал из интернета, кажется, даже несколько ассет-паков, а потом намешал в игре. Было проблемой вырезать нужный спрайт из spritesheet. В Годот почему-то область текстуры\спрайта называется TextureAtlas, а не TextureRegion, например. Да и если такому региону поставить repeat в «как обрабатывать края», то он не повторяет их. Для этого, похоже, предлагается писать свой шейдер. Копилось множество мелких проблем, которые в совокупности выводили из себя.

Вот как мне пришлось делать флагшток. Спрайт на спрайте через спрайт.

Вот как мне пришлось делать флагшток. Спрайт на спрайте через спрайт.

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

https://www.youtube.com/watch?v=Am_pSK4jV94 Или смотреть на Пикабу:

Эту игру я успел сделать в срок. Нужно было в августе — в августе и сделал. Исправился с дедлайнами … так мне казалось.


Игра 7. Колотить-Копать | DigDug

На выбор Worms или Dig Dug

Хоть мне и нравятся Червячки (Worms), но мне показалась какой-то нереальной задачей сделать такую игру на Годот. И я имею ввиду скорее разрушаемость мира. О DigDug я не слышал ничего, но выбрал её посмотрев как она играется. Выглядело это проще — разрушаемость уровня можно было реализовать тайлами. Достаточно просто, несмотря на то, что до этого я кое-как совладал с тайлами.

Максимальный срыв дедлайнов. Эту игру было нужно сделать в сентябре, но я сдал её лишь в декабре! Но у меня уважительная причина связанная с делами в реальном мире. Тем не менее, сроки все под откос. У меня оставалось пара месяцев до окончания года и челленджа. Начал я этот проект в середине ноября. За основу взял предыдущего Марио. И началось всё так:

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

С этой игрой тоже всё было не так гладко. Хоть разрыв в разработке с прошлой игрой дал немного времени передохнуть и остудиться после перегрева, но всё же ситуация вновь быстро нагнеталась. Я очень долго мучился с ИИ, а конкретнее с поиском пути, который никак не хотел работать правильно! То игрок застревал в стенах, то враги вставали как вкопанные (ха!), то они уходили куда-то совершенно непонятно куда.

С мучениями, но я завершил и эту игру! Чем дальше, тем проекты всё сложнее, а нервов завершить их не хватает. Лично я начинал разочаровываться в Годот натыкаясь на различные, казалось бы, мелкие недочёты и нелогичности, но которые ломали общий поток разработки. Вот что вышло:

https://www.youtube.com/watch?v=qfxju4VeSRg Или смотреть здесь и сейчас:

Игра завершена 8 декабря 2024 года. Осталось меньше месяца, чтобы сделать ещё 3 игры. Это просто нереально.


Игра 8. Крэш Бэндикут | Crash Bandicoot

На выбор Super Monkey Ball или Star Fox или Crash Bandicoot

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

По понятным причинам я не стал брать за основу прошлые проекты, ведь они были 2D. Хотя по условиям нужно было сделать 2.5D платформер, если выбираешь Крэша. Однако, в Годот чёткое разделение 2д и 3д, от чего нет совместимости между этими измерениями. Ноды прописаны в своём родителе к какому пространству относятся, конечно, кроме более абстрактных нод вроде Анимационного проигрывателя.

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

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

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

12 декабря 2024 года началась разработка. Своим прогрессом я делился не только в ТГ группе, но и в своём BlueSky (на самом деле там и другие игры были). Например, анимацией походки Крэша, которую я сделал наспех.

Продолжая тематику использования готовых ассетов скачал текстуры и модели из игр про Крэша. Было несколько моделек, но я решил остановиться на классическом с Sony PlayStation 1. Я быстро сделал свои анимации в Blender, потому что выдернутые имелись только текстуры и модели. Уровни я тоже делал в Blender используя аддон ReSprytile. Не смог подобрать модельку для врага, поэтому взял свою старую. Звуки нашёл выкаченные из оригинальной игры, подобрал их. Фоновую музыку взял свою, которую делал для одного проекта-прототипа, который так и не увидел свет.

Могу сказать, что в эти моменты, несмотря на какие-то недочёты во время разработки, у меня аж проснулось второе дыхание, вдохновение! И даже желание поиграть в Крэша!

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

В качестве ориентира, чтобы хоть как-то разобраться как надо делать 3д в Годоте, скачал себе пример от GDQuest с их контроллером от третьего лица. Это был тоже платформер, но я взял скорее какие-то идейные вещи по организации, хотя, некоторые строчки кода таки скопировал.

Примерно так начиналась игра. Хоть это и 21 декабря

Примерно так начиналась игра. Хоть это и 21 декабря

Пытался заставить Годот открывать blend файлы от Блендера, такое возможно, однако, у меня сыпались какие-то ошибки и это заставило мне передумать подход к моделям — я их моделировал и экспортировал, хотя, всё как в нормальных движках. Но Годот как-то умеет загружать бленд-сцены, но мне это осилить не удалось.

Были некоторые недопонимания у меня. Мне казалось, что если Годот загрузил модель\сцену из файла 3д модели, то у него есть доступ к mesh. И я могу назначить этот mesh на любой нод класса MeshInstance3D, но как оказалось — ничего я не могу! Это сбивало с толку. Вот же Mesh! Установи его как Mesh для этого Instance! Но нет, Годот так не хочет. И разные такие вещи не помешали мне дойти до завершённой игры.

Крэша я разрабатывал с 12 по 26 декабря 2024 года, ровно две недели у меня ушло на этот проект.

В итоге вот так выглядит игра:

https://www.youtube.com/watch?v=zl1sFd5ITqQ или смотреть:

Особо сил придало то, что когда я выложил игру и видео на Reddit в ветку по Godot, то оно набрало целых 1000+ upvotes, не знаю как для вас, но для меня это значительное достижение! Получив воодушевление я выложил помимо самого исполняемого файла ещё и исходники!

Ещё две игры. До нового года осталось 4 дня. Это невозможно. Невозможно сделать даже одну игру…


Игра 9. DrOOwN | DooM

На выбор Wolfenstein/Doom или Mario Kart

Уже было 28 декабря. Хоть я и понимал, что челлендж невозможно завершить к нужному сроку, но я продолжал идти упорно. Под вдохновением от Крэша.

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

Всё как в тумане. Я просто брал и делал. Но я и снова использовал хитрости-читы так как время поджимало, а успеть хотелось. Взял со своего старого челленджа по рогалику, о котором я писал в самом начале статьи, контроллер игрока от первого лица, который основан на контроллере из игры «1»! Вот такие моменты в разработке мне кажутся очень показательными — помимо опыта в дело идёт и то, что остаётся от прошлых проектов, нарабатывается база, которую можно пере-использовать. А вот лифты для этого проекта я сделал из платформ из Крэша.

Скриншот с начала разработки. На тестовой локации.

Скриншот с начала разработки. На тестовой локации.

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

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

Для уровня использовал аддон Cyclops Level Builder для Годота. И когда я уже был он практически готов, вся игра более-менее работала, как вдруг …

Одни ошибки и пропажа всей геометрии уровня. Это было сокрушительно!

Одни ошибки и пропажа всей геометрии уровня. Это было сокрушительно!

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

Уровень до того, как случился казус

Уровень до того, как случился казус

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

https://www.youtube.com/watch?v=wpvl1qZL9yI или на Пикабу:

Как и с Крэшем я пошёл показывать своё достижение на Реддит. Да и в своём ТГ канале упомянул. Однако, на Реддите оно не получило столь же ажиотажа, как Крэш. Звучит ожидаемо, ведь где Крэш и где нарисованный от руки шутер.

С этой игрой вышла забавная ситуация: по совету я отправил в Discord оригинального челленджа 20 игр Крэша и Дум. По ошибке держатель сайта указал, что у Дума есть веб-билд, чего на деле не было. Но тогда я подумал и решил попробовать сделать это! Оказалось всё достаточно просто и действительно можно сыграть в неё онлайн теперь!

Это тоже очень крутой момент, как по мне. Теперь как минимум мои Крэш и Дум увековечены на сайте оригинального 20 games challege!

Я успел сделать игру к 31 декабря 2024! За 3 дня! Ура! 9 из 10 игр! Успех! Хотя, я так не считал, но мне писали, что 90% челленджа можно считать успехом однозначно. Путь действительно был непростой и есть результаты.

На этом можно было бы и заканчивать …


Игра 10. Godortal | Portal

На выбор Minecraft или Portal

… если бы не моё упорство!

Не удалось воплотить челлендж как я задумывал (в оригинале не было сроков). Мне пару раз писали, что «челлендж ведь на год, а год не прошёл» намекая, что ещё не конец. Я подумал, что это может быть интересным проведением январских каникул, ещё одного «ленивого месяца». Да что там, сделаю за недельку. Как же я ошибался…

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

Начал 3 января. Очень давно на GameMaker я уже частично реализовывал технологию порталов — попытался найти бумажные заметки и адаптировать их, но ничего не вышло. Пришлось начать с самого начала. Вновь начал исписывать бумагу различными идеями и вычислениями. Спустя всю реализацию понимаю, что решение было достаточно простое и делится на две части: визуальная и математическая.

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

Как же я намучился с этим! Всё было экспериментально. По логике выстраиваю вычисления — не работают! Пробую ещё, работает, но не так! Это немного начало напоминать мне ситуацию с ПакМэном или Марио! Но раз уж я взялся за это дело, то должен довести до конца! Мне потребовалось достаточно много времени, чтобы верно сообразить какие надо проделать трансформации. И это с учётом того, что есть куча статей и видео на эту тему. Но я словно специально старался пере-придумать всё сам, хотя потом и сдался и подглядывал в одну статью по порталам, но на движке Unity.

Для быстрого наброска уровней я использовал ноды CSG объектов, мне хватило лишь кубов. Из них я строил базовую форму уровня. А по началу тестировал всё на playgound-локации. Сами локации я решил делать как в проекте Крэша — в Blender через аддон ReSpryTile. Текстуры рисовал в программе Aseprite. Совмещал Blender и Aseprite через аддон-мост под названием Pribambas.

Графику я решил делать специально для этого проекта. Мне показалось, что хорошо будет смотреться pixel art 3D. Такой стиль и сделал, хотя изначально я думал взять наработки старого проекта из 2011 года, который не ушёл дальше идеи. От проекта этого в наследство достался разве что дизайн портальной пушки и частично дизайн дверей.

Моделирование портальной пушки в Blender 3.6

Моделирование портальной пушки в Blender 3.6

Показывал в BlueSky как верчу эту портальную пушку.

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

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

Сцена (префаб, класс) персонажа игрока стал настоящим «нодовым монстром». В нём столько нод, столько скриптов, столько логики, что пара игр вместе взятых из начала челленджа целиком сравнится по объёмам!

Телепортация объектов на скорости не работала должным образом. Мне помогли решением в ТГ чате, где организовали наш челлендж. Правда, работает это не на все 100% как надо. А игрок по-прежнему не может преодолевать порталы на высоких скоростях — бьётся ногами в пол, а иногда застревает в потолке.

Периодически я отдыхал от проблем с логикой и математикой отвлекаясь на создание текстур и\или 3д моделей. Например, я решил сделать модель персонажа на основе болванки-капсулы, а вышел персонаж Амонгус (популярный в некоторых кругах персонаж игры Among Us)!

Попробовал сделать модель не в Blender, а Blockbench, который ориентирован на низко-полигональное моделирование и использование текстур низкого разрешения. Казалось, что это то, что надо! Но на практике мне это не особо понравилось. Блендер оказался лучше, что логично.

Придумав уровни и создав их graybox, решил сделать их модель в Блендере. В том же чате ТГ мне сказали, что это не правильный подход, когда делаешь модель уровня целиком — лучше бы я делал модульные уровни. Третий уровень моей игры — копия первого уровня из Portal. А вот четвертый уровень я даже попытался сначала сделать в редакторе Portal 2!

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

Все недочёты и баги начали раздражать и создавать хаос, что я завёл список багов, которые нужно пофиксить. В список записал и то, что нужно сделать, например, модельки. И я медленно, но верно двигался к цели. Но признаться, на какие-то баги я просто закрывал глаза и убирал их из списка подальше как «не очень важные», хотя они были критическими (вроде застревания в потолке). Ближе к концу у меня словно уже не выдерживали нервы и я хотел просто отделаться от этой игры!

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

А вот музыку написал сам, пытаясь подрожать оригинальному Portal. Вышло ли у меня это? Не знаю. Учитывая, что на это ушло не так много времени из всего срока разработки, то хорошо, если люди не будут выключать звук в 0% услышав то, что я там насочинял. Кстати, я добавил в игру подобие музыкального плеера — во время паузы игрок может выбрать трек. Или выключить музыку (если это работает).

Заключительной вещью стало перетаскивание кубе через портал. Сам по себе куб телепортировался хорошо. Игрок проходил тоже приемлемо. Но переход персонажа с кубом был кошмаром, в первую очередь для куба — его кидало по всем возможным вселенным и уровням, возможно, он даже видел зарождение Вселенной! Мне такой расклад не нравился и я решил потратить время если не на решение проблемы, то на её маскировку — сделал так, что когда игрок берёт куб, то он визуально подменяется ложным кубом! Настоящий всё ещё существует, сталкивается, но игрок не видит как его носит из стороны в сторону во время прохода через портал. Пара трюков и костылей позволяет снизить риск потери куба в меж-пространстве. Обманная, но победа!

И вот. 31 января 2025 года. Я доделал этот проект как смог. Что было в моих силах. Я сделал Портал. На это ушёл целый месяц! УРА! Я очень рад, что смог завершить не столько челлендж, сколько эту игру!

Получился такой магнум опус этого челленджа:

https://www.youtube.com/watch?v=Mz53WqnUyl8 Или смотреть 3 из 5 минуты прохождения:

Написал о своих результатах на Реддит, задали несколько вопросов, а я ответил на них. Вновь набрал 1к местных плюсов. Игру можно скачать с itch, я не осилил Web-билд.


Итог

Это было грандиозное путешествие в изучение движка Godot длиною почти в год! От простого Понга до сложного Портал! Честно говоря, жаль, что из нашего небольшого сообщества в Телеграмм канале до финала (пусть и с опозданием в 1 месяц) дошёл только я. Последние три игры вышли, на мой взгляд, особо хороши и даже потенциальны! Можно сделать свой 3д платформер по типу Крэша, бумажный шутер или некую портальную игру. Или совместить всё это в одном проекте!

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

Пользователи движка, пожалуйста, не обижайтесь, но Годот штука крайне нестабильна. Мне кажется, что брать этот движок это очень огромный риск того, что какой-то элемент внутри движка окажется с багом, фикс которого вы будете ждать несколько лет! Если дождётесь. Он очень страдает от банальных UX болячек, куча казалось бы крохотных недочётов делает инструмент сложно используемым. Я бы не рекомендовал делать коммерческие или длительные в разработке проекты. У движка есть потенциал и если исправить огрехи, то это будет весьма крутая штука. Но пока Годот сгодится для небольших конкурсов, где и проекты не столь объёмны.

Буду ли я использовать этот движок? Не в ближайшее время. У меня есть некоторые планы по возвращению в GameMaker, возможно, на контрастах я осознаю что был неправ и Годот идеален, а может наоборот это лишь закрепит моё ощущение сомнительности движка. Но использую ли я его когда-нибудь в будущем? Определённо. Как вы понимаете, мои вкусы весьма специфичны.

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

мой странный Телеграмм-канал;

Boosty, где вы можете меня поддержать;

Группа в ВК;

Itch страница автора;

Всем спасибо за внимание! Прочитавшим до конца — медаль!

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

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества