О разработке танцевальной онлайн игры

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

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

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

О разработке танцевальной онлайн игры Игры, Gamedev, Unreal Engine 4, Инди игра, Инди, Unreal Engine, Разработка, Видео, YouTube, Длиннопост
О разработке танцевальной онлайн игры Игры, Gamedev, Unreal Engine 4, Инди игра, Инди, Unreal Engine, Разработка, Видео, YouTube, Длиннопост
О разработке танцевальной онлайн игры Игры, Gamedev, Unreal Engine 4, Инди игра, Инди, Unreal Engine, Разработка, Видео, YouTube, Длиннопост
О разработке танцевальной онлайн игры Игры, Gamedev, Unreal Engine 4, Инди игра, Инди, Unreal Engine, Разработка, Видео, YouTube, Длиннопост

Время шло, игроки требовали обновлений, контента и самое главное - больше разной музыки. Я задумался, а что если сделать систему наподобие того, как в одной музыкальной игре под названием Osu!...
Продумал как следует задачу, составил план, дал задание художникам чтобы подготовили дизайн экрана для редактора музыки. Пока художники думали и рисовали, программировал серверную часть и набросал в самой игре минимум. Потом задумался о том, а как быть с теми песнями что были. Новая концепция подразумевает, что игра сможет работать с mp3 файлами, а по старинке музыка добавлялась как ассеты через редактор Unreal. В итоге я себе написал небольшую внутреннюю утилиту, которой я скормил расположение исходных mp3 файлов с музыкой, которая уже была в игре а также все их настройки (BPM, смещение в миллисекундах чтобы игровой режим попадал в такт музыке) и всякие метаданные. По итогу я не прогадал, игроки очень тепло восприняли данную функцию и сейчас в игру загружено больше 10 тысяч композиций буквально на любой вкус и цвет.

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

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

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

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

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

В последнее время я добавлял в игру побочный контент, например есть мини-игра "Бинго" на 9 игроков. Появились специальные инструменты для проведения всяких конкурсов и внутриигровых событий, условия по которым обрабатываются автоматически и победители также определяются автоматически. Параллельно этому чинил множество разных багов, оптимизировал игру в тех местах, где было критичнее всего. Оптимизация по большей части из себя представляет переписывание фрагментов кода с тяжелыми вычислениями на C++, иногда достаточно было вычисления просто вынести в отдельные потоки (использовать другие ядра процессора).

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

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

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

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

6.7K постов22.1K подписчика

Добавить пост

Правила сообщества

ОБЩИЕ ПРАВИЛА:

- Уважайте чужой труд и используйте конструктивную критику

- Не занимайтесь саморекламой, пишите качественные и интересные посты

- Никакой политики


СТОИТ ПУБЛИКОВАТЬ:

- Посты о Вашей игре с историей её разработки и описанием полученного опыта

- Обучающие материалы, туториалы

- Интервью с опытными разработчиками

- Анонсы бесплатных мероприятий для разработчиков и истории их посещения;
- Ваши работы, если Вы художник/композитор и хотите поделиться ими на безвозмездной основе

НЕ СТОИТ ПУБЛИКОВАТЬ:

- Посты, содержащие только вопрос или просьбу помочь
- Посты, содержащие только идею игры

- Посты, единственная цель которых - набор команды для разработки игры

- Посты, не относящиеся к тематике сообщества

Подобные посты по решению администрации могут быть перемещены из сообщества в общую ленту.

ЗАПРЕЩЕНО:

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

- Выдавать чужой труд за свой

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


О РАЗМЕЩЕНИИ ССЫЛОК:

Ссылка на сторонний ресурс, связанный с игрой, допускается только при следующих условиях:

- Пост должен быть содержательным и интересным для пользователей, нести пользу для сообщества

- Ссылка должна размещаться непосредственно в начале или конце поста и только один раз

- Cсылка размещается в формате: "Страница игры в Steam: URL"