February 4

Чуть больше деталей о текущем этапе разработки игры и о девлоге

Что я делаю

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


Что в плане цифр

На данный момент в игре

  • 3 играбельных персонажа + по ~20 перков на каждого
  • 6 деревьев перков по ~20 перков в каждом
  • Около 10 видов мобов
  • 2 незаконченных стейджа
  • 0 боссов

Что в плане готовности

  • Персонажи: в плане гейм-дизайна в +-отличном состоянии, радикально их менять не планирую, но персональную их прокачку буду дорабатывать. Также хочу сделать больше самих персов, но это уже потом - пока хочу подтянуть остальные аспекты
  • Деревья перков: значительно улучшил в предстоящем патче. Уже приближается к тому, что я хочу, но нужно ещё
  • Боёвка: пока на уровне диаблоидов - "чё-то собралось и дальше повторяешь", но с рядом прикольных фишек и потихоньку вырисовываются разные стили игры. Мне, скорее всего, не удастся реализовать какую-то суперпродуманную боёвку с учётом остальных задач. Поэтому, скорее всего, ограничусь неким менеджментом мяса с развлекающими активностями для разнообразия
  • Враги: очень базовая реализация. По сути болванчики с слабо выделяющимися чертами и кривоватым ИИ. Буду работать ещё
  • QoL: в текущем патче значительно улучшил интерфейс в плане информации итд, завожу пробный туториал по персам, добавил кучу недостающих ранее подсказок. Но overall крайне далеко от того, чтобы дать рандомному человеку и он во всём без проблем разобрался
  • Графика и эффекты: много незаконченных/отсутствующих ассетов и анимаций, vfx практически отсутствуют - особо не упарываемся, чтобы в случае разработки не приходилось сносить всё и заново переделывать
  • Музыка/звуки: отсутствуют
  • Сюжет/лор: отсутствуют
  • Ачивки, возвышения и прочие "лейт" активности: отсутствуют

Какая задача стоит глобально?

Основные силы сейчас направлены на то, чтобы проработать "good enough" (по моим меркам) билдостроение. Затем это нужно будет завернуть в полноценный забег, и в конце уже заняться "прихорашиванием" вроде перфоманса, эффектов, QoL, звуков, в дальнейшем мб даже сюжета и так далее. Все эти штуки я тоже параллельно делаю, но по чуть-чуть и лишь те, что не замедлят выполнение основной задачи. Не хочу лишить себя возможности быстро итерироваться между идеями и перерабатывать штуки находу

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

Сейчас я также пытаюсь обосновать концепцию деревьев перков - то есть, чтобы это было не просто "я выбрал вот эту ветку и просто макшу её". А чтобы хотя бы местами были какие-то разные маршруты с разным смыслом; чтобы были штуки типа "в этой ветке возьму это, а вот из той ветки вот тот перк, он сюда отлично вписывается" итд. Это гораздо сложнее, чем типичные деревья в большинстве игр, когда номинально дерево есть, а нахрена оно дерево - неизвестно. Но это гораздо интереснее, чем типичное "выбери 1 из 3 подкрученных под твой текущий билд бонусов"

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

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


Состояние игры? Как играется? Почему не пощу на тот же itch?

Текущее состояние можно расценивать разве что как "кривую песочницу для деревьев перков"

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

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

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

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


Не думал ли взяться сначала за что-то попроще?

Это на самом деле извечный спор среди людей. Причём не только в игровой индустрии, но и в бизнесе в целом, в подходах к обучению итд - мол как нужно создавать проекты. Быстренько "go to market" или же засесть за что-то большое. Учиться на todo-листах или сразу начинать с каких-то реальных проектов

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

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

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

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

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

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

В этом плане мне куда ближе подход разработчиков Revita, Nova Drift, Maiden&Spell итд. Каждый из озвученных примеров - тоже инди в соляного. Но они инвестировали приличное время в то, чтобы всё продумать и получить хороший, целостный, играбельный продукт со своими идеями итд. Каждый из них по итогу был тепло принят аудиторией

Стоит отметить, что разраб Revita до этого всё-таки разработал пачку мини-проектов на itch. Но на сегодняшний день проекты такого уровня генерируются через ChatGPT (не считая ассетов, которые энивей для таких игр берутся из бесплатных источников или рисуются в пейнте одной левой). Браться за такое в моём случае - бесполезное занятие. Я могу сесть и наштамповать подобных штук, чтобы закрыть для кого-то галочку "начал с простого" и лишить повода об этом писать. Но это никак не поможет мне сделать более серьёзный проект, где трудности заключаются совершенно в другом - например, в "заставить все игровые системы с учётом их объёма и многогранности работать в тандеме"

Единственный неприятный момент в этом всём - это то, что я не работаю над игрой фуллтайм. И даже не парттайм. Т.е. как уже говорил в подкасте, "2 года с момента анонса" на самом деле делим на 4 и получаем 6 месяцев. Для 6 месяцев результат отличный, но для 2 лет - долго. Разработка из-за этого действительно может затянуться. Но только лишь из-за этого свитчиться на скучные поделки под itch - я не хочу, между этим и "заняться чем-нибудь другим" я лучше бы занялся чем-нибудь другим

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


Что делаю сейчас?

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

По ряду технических причин патч задерживается

  • После перехода в 3D и ухода от "выбери 1 из 3" к деревьям появились проблемы с перфомансом - подгрузка ассетов, нещадно лагающий интерфейс итд. Посему пришлось потратить время на то, чтобы поотключать всякие лишние приколы + реализовать настройки
    • Перешёл я в 3D, к слову, не для картинки в первую очередь, как некоторым показалось. А чтобы не мудохаться с перспективой, хитбоксами и прочими прелестями топдаун/изометрии в 2D
  • В процессе пиления я отказался от нативного UI Godot и перешёл на WebView. Соответственно, мне пришлось перепилить весь имеющийся интерфейс, параллельно кооперируясь с разработчиком плагина в фиксинге багов и добавлении недостающих фич. Из плюсов - весь последующий UI будет крайне легко разрабатывать, и я уже сделал гораздо больше и лучше, чем до этого с нативным
  • Игра стала регулярно вылетать по причинам, которые мне пока не до конца понятны. Я пофиксил кучу багов, что существенно уменьшило количество вылетов, но они всё ещё есть

Со всеми возникшими техническими завтыками стараюсь разобраться, но времени уходит больше, чем хотел бы. Пока весь фокус на этом


Доволен ли я Godot?

После многолетнего опыта в веб-разработке, где инструментарий давно работает как часы и позволяет очень быстро разрабатывать, при этом всё ок с отладкой итд, Godot и GDScript - это тихий ужас

  • Язык прост в изучении и годится для чего-то простого, но абсолютно не готов к использованию в серьёзных проектах
    • Типизацию объектов завезли только в последней бете
    • Стак трейсы ошибок неинформативны
    • "We believe games should not crash", но при этом отсутствует try/catch, чтобы при каком-то небольшом упущении не грохать игру целиком; при этом собранная игра в случае багов до талого пытается продолжать существование со сломанным состоянием, из-за чего разбираться, что же именно сломало - you can do it all day
    • итд итд - в девлоге я подробно расписывал кучу претензий к языку
  • Встроенная UI-система работает отвратительно. Я убил кучу времени на то, чтобы отобразить банально дерево перков, по итогу получил
    • Монструозный код для банальных вещей
    • Баги вроде "кнопка, перекрытая карточкой перка, прокликивается сквозь карточку", которые хер нормально пофиксишь
    • Адские лаги даже после того, как я закостылил асинхронный рендер и статично сохранил все деревья в сцены
  • Многочисленные краши и вылеты, зачастую с нулём информации о том, где это произошло и почему - даже в самом вербозном отладочном режиме
  • Подгрузка ресурсов работает через жопу. Вы уже, возможно, видели ролик с демками от Gamebox, где я показывал, как ассеты подгружаются в момент использования, что вызывает пролаги. Мем в том, что нормальная, асинхронная загрузка заранее работает криво и иногда приводит к крашам

В то же время, как уже говорил в подкасте - мне очень импонирует концепция GDExtension, которая позволяет воткнуть в Godot что угодно стороннее, и сделать это может любой желающий в опен сорсе комьюнити. Это даёт Godot'у большое преимущество над проприетарными движками. И переезжать на какой-то другой движок (где будут столь же душные, но свои, проблемы) я пока не планирую

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


Стоит ли брать сабку на девлог, если я просто хочу поиграть в игру?

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

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

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


Как-то так!