Не так страшен CHORT, как его малюют

Добро пожаловать! Katata
Добро пожаловать! Katata

Действующие лица

Мы команда из суровой Сибири, если быть точнее, то из ее столицы - Новосибирска. Зовут нас Дима, Андрей и Катя. Знакомы мы еще с университета, а с Андреем 3-4 года работали вместе в различных не игровых IT-компаниях. Сейчас я работаю техническим продактом, Андрей лидом-разработчиком, а Катя фрилансит в качестве дизайнера и иллюстратора, а также ведет свой канал на ютубе.

Соответственно роли мы распределили следующим образом:

  • Дима - геймдизайнер
  • Андрей - разработчик
  • Катя - художник

Мы раньше никогда не делали игры, но очень любим этот вид развлечений и искусства. Как и многие, когда поступали в университет на техническую специальность мы думали: “хочу быть программистом, чтобы делать игры”. Да, были попытки что-то запилить, но все либо времени нет, либо работа делалась в стол и ни один проект не был доведен даже до стадии прототипа (хотя у Андрея они есть, но он это скрывает).

Когда я увидел новость на DTF про хакатон, то загорелся, потому что:

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

Выбор технологий

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

Так как у Кати нет ноута, все рабочие проекты она фигачит на десктопе, необходимо было обустроить ей рабочее место. Моя душа была довольна, что Катя умеет работать с Krita, и мне не пришлось заморачиваться с поиском хакнутых Photoshop’ов, CorelPainter’ов и прочего платного ПО. Потому что желание пиратить с возрастом у меня отвалилось в принципе, да еще и под макось найти что-то крякнутое и рабочее - тот еще квест, а кроме мака ничего дома не держу.

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

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

День 1

13:00

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

14:06

Первое, что пришло на ум, это наши любимые The Binding of Isaac, Enter The Gungeon и Darkest Dungeon. Лично я любитель мрачной тематики, к тому же мы сейчас все проходим Death Stranding, поэтому мы придумали, что есть человек, у которого тяжелая травма головы, он идет на помощь своей дочери, на пути ему встречаются люди, с которыми нужно обмениваться предметами для того, чтобы пройти дальше, обмен происходит в виде словестной баталии, и игрок должен выйти из нее победителем, чтобы получить нужный предмет и пройти дальше. Когда игрок доходит до места, где должна быть его дочь оказывается, что ее не существует и игра начинается сначала с новой вариативностью пути, предметов и т.д.

Идея всех зацепила, но мы поняли, что за 39 часов просто не успеем все продумать. Поэтому стали накидывать мысли дальше.

15:32

Мы подумали, а что если у нас будут персонажи, каждый со своей историей и они приходят в кафе, заказывают еду и нужно приготовить ему что-то из определенного набора ингредиентов, основываясь на его истории, внешнем виде, чтобы ему понравилось, эдакий Paper’s Please, только более позитивный. К тому же название Рамен Судьбы нас очень вдохновило на дальнейшее фонтанирование идеями. И тут мы тоже поняли, что столько контента за ограниченное время придумать и отрисовать будет слишком рискованной затеей. Время поджимало, а идея так и не родилась…

16:45

Что делает игру реиграбельной? В рогаликах - это permadeath и куча контента, а тут еще жанр battle chess недавно взорвал аудиторию, что тоже вполне себе вписывается в тему хакатона. Что если нам объединить эти два жанра? Придумано-запилено. Так появилась идея игры Chort.

18:07

Время покушать! Закинулись салатами, воками, работаем дальше:)

19:41

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

Всего есть 4 типа душ:

  • Красные - наносят большой урон
  • Синие - снижают урон по персонажу, наносят небольшой урон
  • Зеленые - восстанавливают здоровье персонажу, наносят небольшой урон
  • Белые - увеличивают показатели урона/защиты/хила других душ

3 одинаковые души можно объединить в одну, тем самым создав более мощную душу этого цвета, для объединения душ нужно использовать Хранилище, которое ограничено 6 слотами, поэтому набирайте души с умом!

Игроку необходимо подобрать комбинацию из 4х душ, чтобы побеждать CHORT’a из раунда в раунд (всего их 10), а с каждым новым раундом сила врага увеличивается.

Бой проходит в автоматическом режиме, души задействуются друг за другом, а CHORT как-то реагирует на них (атакует, защищается, творит магию).

20:01

Старт активной разработки: продумывание механик, отрисовка персонажей, элементов интерфейса, создание меню, накидывание кодовой базы…

03:00

Мозг начинает выключаться. На этот момент имеем:

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

Легли поспать на пару часиков…

Души​ Katata
Души​ Katata

День 2

06:00

Ребята еще спят, делать пока нечего я снова отключился.

08:01

Позавтракали, кое-как вернулись в рабочий режим. Вспомнили, что нужно было еще накидать интерфейсы в случае победы/поражения, а также продумать onboarding для обучения, Андрей продолжил фигачить код, столкнулись с проблемой downscaling’а интерфейса - вылезли пиксели, пытались избавиться от них с помощью Photoshop’а (пришлось поставить пробную версию), Krita, стандартных маковских инструментов, ничего не помогло, а перерисовывать не хотелось. На помощь пришла утилита imagemagick, с ней изображения пусть и немного страдали по качеству, но не становились вырвиглазными, как от стандартного downscaling’а Godot’а. К обеду у нас уже был полностью готов интерфейс и стали реализовываться механики.

13:04

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

16:44

Я пишу статью, иногда обсуждаю с ребятами реализацию механик и согласовываем арты. Слышно как кипит мозг Андрея от придуманного мной, иногда спорим, рожаем истину. Катя начала рисовать нашего CHORT’а в разных стадиях и с различными бафами.

19:13

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

В гостях у CHORT'а Katata
В гостях у CHORT'а Katata

23:22

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

Пачка багов​
Пачка багов​

00:12

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

02:04

CHORTов onboarding не хочет прикручиваться.

02:57

Last minute fixes, добавление анимаций и билдаемся на MacOS и Windows.

03:52

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

Итог

Мы работали около 30 часов, остальное время ушло на сон, перерывы и еду. Мы съели 2 ролла, 2 рамена (уж если не игра, то заказали на дом, кстати, приготовили хорошо), 2 вока с курицей, 2 шаурмы. Выпили 1,5 литра кофе, 3 банки энергетика и 2 литра чая.

Что осталось?

  • Реализовать дополнительные механики:
  • Способности персонажей
  • Баффы CHORT’а
  • Добавить еще CHORT’ов
  • Добавить звуки, с sound-дизайном у нас все плохо, точнее его нет:)
  • Добавить еще анимаций
  • ???
  • Сделать совершенно другую игру на базе этих механик

Напутствия хакатонщикам

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

Чего нам не хватило

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

От всей команды хочется сказать спасибо ребятам из DTF и Playgendary за полученный опыт. Надеемся, что кому-нибудь наша игра придется по душе, всем участникам удачи и побед!

1717
1 комментарий

У меня ограничение по оценкам, спасибо за интересную историю)

Ответить