Баннер записи 'Как два не самых музыкальных человека ритм игру делали'

Как два не самых музыкальных человека ритм игру делали

Как мы вообще решили делать ритм игру для джема?

Ни у одного участника нашей прекрасной команды из двух человек нет музыкального образования, но ритм игры и музыку мы любим. Накануне мы оба слушали все возможные виды метала. Так, к слову, мы решили назвать команду "Metal Babes". Этот вариант - первое что пришло в голову, но в итоге обоих он устроил :). А ещё всю неделю до джема мы играли в Dead as Disco и соревновались кто наберёт больший счёт на Дексе и Пророке.

Да и вдобавок, когда была озвучена тема уже начавшегося джема, почти сразу мы решили что хотим именно ритм игру. Была ещё идея, где игроку нужно ходит по комнате и искать подсказки для нужной кнопки, а их должно было быть несколько и не правильная кнопка взрывала бы весь мир. И таких итераций игроку бы предстояло пройти несколько подряд на манер игры Exit 8. Но от такой идеи отказались в силу большого желания сделать именно ритм игру, да и во второй идее не клавиши, а кнопки.
Теперь, дорогой Читатель, надеюсь, всё встало на свои места.

Что мы собирались реализовать в игре...

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

Но до редактора уровней далеко, у нас ещё нет идеи самого геймплея. Понятно, что нужно нажимать клавиши, за ошибки наказывать, а за хороший тайминг поощрять игрока. А что связано с правильными и неправильными клавишами? Мы решили что клавиатурные тренажёры вроде "Соло на клавиатуре". Там даже можно включать метроном чтобы печатать под ритм. Супер! 

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

А что по геймплею в итоге?

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

битва с Андайн из Undertale, но про печать.
Вот это, но игра про печать

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

Сомнительно...
Сомнительно...

Ну и ладно, ничего они не понимают, подумал я. И так, абстрактная идея игры у нас имеется. Нужно придумать какой-то минимальный сюжет, например, игрок устраивается на работу печатать текст для нового начальника. Класс! Даже стандартные для ритм игр оценки можно сюжетно обосновать, игроку будет так только интереснее. Ну допустим, игроку нужно проработать неделю (даже без выходных, такой вот жёсткий начальник), и возможно добавим концовки, которые базируются на оценках. Только если успеем (спойлер: не успели).

Непосредственно разработка

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

Аудио

  • Мы хотели полностью отказаться от нейрослопа в нашем проекте, но без композитора сделать это сложно. Но в итоге, мы (преимущественно Алёна) нашли 8 подходящих ритмичных треков, по одному на уровень.
  • Чтобы нейрослопа не было в остальных аспектах игры, использовалась нейронка лишь для поиска забавных для печатания фраз, для написания простых скриптов вроде анимации выдвижения бумажных листов интерфейса из-под экрана, а так же для анализа уже написанного кода, когда обнаруживались баги.
  • SFX нажатия на клавишу печатной машинки во время игрового процесса было сложно обрезать до миллисекунд, то, что было нарезано из стоковых звуков всё равно содержало пустоту в начале или в конце аудиоклипа. Чтобы программно обрезать эти звуки, был навайбкожен скрипт на python и скрипт на c#, чтобы удалять пустоту прямо в редакторе Unity. Это очень помогло!
  • В главном меню две вариации шума офиса. Если вслушаетесь, то можете обнаружить, что случайным образом каждый раз проигрываются разные аудиоклипы, один с русскими голосами, другой с английскими.
  • Долгое время тестовой песней была "Never gonna give you up" Рика Эстли. В день, когда от неё было решено избавиться, в беседу в телеграме ежедневный девлог мы записали прямо в игре. В этом видео мы прощались с этой чудесной, но изрядно надоевшей песней. Там же мы продемонстрировали систему простого диалога (монолога Начальника) в нашей игре.

Начальник

  • Настраивая анимации Начальника, мы долго пытались подобрать анимацию кивания в такт, остановились на варианте, когда голова находится внизу в момент, когда игрок должен нажать в идеальный тайминг и поднимается ближе к началу следующего такта.
  • Если игрок попал в идеальный тайминг или не попал / нажал не ту клавишу (т.н. Title drop!), Начальник реагирует на это следующий такт.
  • У Начальника есть секретная анимация, которую вам не суждено увидеть, она не прошла бы цензуру ;)
  • Во время создания референсов экранов, наша незаменимая художница Алёна настолько привыкла к тому, что начальник - это силуэт, что мы решили слегка его доработать, но оставить [почти] белым силуэтом.
  • Не смотря на то, что Начальник нарисован в 2D, он был анимирован в Blender, и при экспорте он стал 3D моделькой с материалами.

Последние дни разработки

  • Почти всё время я (Саша) делал больше движок для создания уровней для нашей игры на нём, чем саму игру. Редактор уровней был готов раньше чем уровни кампании.
  • Текст для ВСЕХ уровней и диалог (монолог) Начальника были написаны и имплементированы в игру в ночь на воскресенье 27 сентября, то есть в последнюю ночь процесса разработки геймджема.
  • В последний момент были обнаружены несколько критических багов, буквально за пару часов до конца загрузки игр на этот сайт. Починив эти баги костылями, появились новые, обидные, но не такие страшные баги. Например, теперь не сохраняется список пользовательских уровней. Уровень можно создать, поиграть в него со своей песней, результат сохранится, но уровень не появится в списке при выходе в меню и при перезаходе в игру
  • Когда основное время закончилось, то есть после 17:00 по МСК 27 сентября 2026 года, мы обнаружили, что залили не тот архив... Если бы мы не заметили это раньше или если бы сроки чуть не сдвинули, у нас бы не оказалось времени на исправление ситуации и было бы крайне обидно остаться с невыложеной, но готовой игрой, вот так вот....

Прочее

  • Для пустых битов используется знак #, я считаю такое решение гениальным, так как нейросеть помогла разбить итоговый текст пропусками, основываясь на аудиозаписи. Так же это позволило нам не заниматься расставлением нот на уровне вручную.
  • Каждая сложность действительно играется по-разному: на легкой сложности ноты летят только с двух сторон, при этом половина текста печатается автоматически. На нормальной сложности ноты летят с четырёх сторон, весь текст печатает игрок. На высокой же сложности текст летит ещё и по диагоналям, а так же на каждом уровне на высокой сложности текст заметно отличается, но это мало кто заметит :). А ещё на каждой сложности разное время полета нот: 4, 2 и 1 секунда соответственно. И всё это мы продумали в первый же день! Сложности так гибко настраиваются, что мы можем добавить ещё несколько сложностей и все они будут отличаться. Об этом чуть позже.
  • Изначально мы хотели добавить ещё супер простую сложность "игровой журналист" и супер сложную "эксперт" на манер Beat Saber, но решили отказаться.

Занимательная статистика!

А теперь, дорогой читатель, я (Саша) хочу привести свою статистику. За этот джем:

  1. Было выпито 12 кружек кофе и один энергетик (чрезмерное употребление вредит вашему здоровью).
  2. Каждый день спалось по 8-10 часов.
  3. Было записано 48 часов 59 минут 25 секунд футажа моего основного экрана в OBS, при этом часто ставил на паузу.
  4. Было написано 24 скрипта без учета скриптов для редактора Unity.
  5. Суммарно в этих скриптах 3134 строчки кода (примерно половину я навайбкодил).
  6. Это мой первый геймджем! Поздравьте!
  7. Для моей уважаемой коллеги Алёны Мазур это пятый геймджем! Поздравьте с первым юбилеем!
  8. Наши впечатления от геймджема

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

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

    Будущее проекта Type in Rhythm

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

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

Комментарии (0)

Войдите, чтобы написать комментарий

Войти
Large Spinner
Type in Rhythm
Версия 1.0.0
98
11
5
1
Жанр
Rhythm
Движок
Unity
Платформа
Windows
Язык
RU
Время игровой сессии
до 17 мин.
Дата публикации игры
27.09.2026
Дата обновления игры
27.09.2026