Наша команда сразу понимала, что не стоит замахиваться на что-то большое. Поэтому решили начать с простого проекта, который позволил бы расти и набираться опыта. Так как у нас не было практики разработки игр, мы выбрали путь обучения через создание проекта. Первым жанром стал раннер — и это оказалось ошибкой.
Выбор платформы
С самого начала решили, что первые проекты будут выкладываться на веб-площадки. Продвижение игр — сложный процесс, сравнимый с их созданием, а у начинающей команды мало шансов выпустить что-то, что сразу получит внимание. Площадки вроде Steam отпали, учитывая сложность выхода на них и дополнительные ограничения для российских разработчиков.
Выход на мобильный рынок (Google Play) тоже показался плохой идеей. Конкуренция в жанре раннеров огромная, а без серьезных вложений выделиться практически невозможно. Веб-площадки, обещающие трафик без дополнительных затрат, казались идеальным вариантом.
Начало разработки
Цель поставлена — работа закипела. Первоначальная концепция включала:
Прототип с "белыми ящиками", позволяющий управлять персонажем и проигрывать.
Бесконечно генерируемую трассу.
Основную механику, завязанную на ритм: движение персонажа должно соответствовать музыке для получения бонусов.
Разные уровни высоты трассы.
Возможность прокачки персонажа и добавление достижений.
Препятствия генерируются в ритм музыки
Выбрали сеттинг: киберпанковский ниндзя, преследующий похитителя артефакта по оживленным улицам города. Планировались сюжетные заставки. Казалось, что такой концепции еще не было.
Пока разбирались с управлением и генерацией трассы, наткнулись на Neon Drive — игру, которая делала примерно то же, что и мы планировали. Тем не менее, разработку продолжили.
Хардкорное, сочетание ритм игры и раннера!
На создание первой итерации ушло несколько месяцев. Проект трижды переделывался с нуля из-за:
Плохой архитектуры.
Неотзывчивого управления.
Проблем с рендерингом, которые в будущем могли привести к долгим переделкам.
Но главным препятствием стала ритм-механика. Генерация препятствий под музыку оказалась невероятно сложной:
Пробовали вручную задавать препятствия под каждый трек — требовало слишком много времени, и хорошего слуха.
Пытались программно анализировать ритм и биты — результат был хаотичным. Препятствия появлялись на тихих участках и отсутствовали на мощных битах.
Стало очевидно: без музыкального образования или слуха эту механику сделать качественно не получится. Первоначальная концепция CyberBitRunner отправилась на переработку.
Переосмысление проекта
Сюжетные заставки решили убрать — они только тормозили игровой процесс. Киберпанк оказался неподъемным для команды без опыта: без хорошей проработки он превращался в "светящиеся кубы".
За время разработки проект несколько раз менял название: Runner → CyberBitRunner → BitRunner → NinjaRunner → Runcher. Последняя итерация стала классическим 3D-раннером: фермер бежит за вором, укравшим курицу, несущую золотые яйца.
NinjaRunner всё ещё без рандомной генерации уровней, и уже без музыки
Финальный кризис
Казалось, что осталось сделать последний рывок:
Добавили локации, препятствия, собираемые предметы, счет, меню, доску лидеров, задания, магазин и анимацию в меню.
Сделали первый играбельный билд.
И тут пришло главное осознание: все это было ошибкой.
Кажется что в это уже можно игрть, но нет...
Игра лагала, так как загружала всю сцену сразу, со всеми ресурсами и не освобождала память.
Финальный билд весил почти 100 МБ, что критично для веб игр. Из-за этого загрузка длилась целую вечность.
Несмотря на небольшое количество 3D-моделей, игра работала нестабильно.
Чем больше исправляли баги, тем больше их становилось. Оценка оставшихся задач показала, что завершение проекта займет минимум четыре месяца, а с учетом новых проблем — полгода.
Самая главная ошибка: никто в команде не любил этот жанр. Раннеры не нравились никому, а единственное, что увлекало еще меньше, — "три в ряд". Разработка не приносила удовольствия, а превращалась в мучение.
Из этого опыта извлекли несколько важных уроков, которые могут быть полезны другим начинающим разработчикам:
Не беритесь за проект, который вам не нравится. Работать без удовольствия тяжело.
Используйте готовые ассеты. В сети много бесплатных ресурсов, которые экономят время и силы.
Не усложняйте механику. Чем больше механик, тем выше вероятность, что игра окажется неиграбельной.
Если проект мертв с самого начала, не пытайтесь его оживить. Лучше сделать что-то другое, а позже вернуться к идее с новым опытом.
Лучше несколько маленьких проектов, чем один огромный, который так и не выйдет.
Для веб площадок лучше начать с 2d игр.
Этот путь оказался сложнее, чем ожидалось, но дал ценные знания. И мы были готовы к новым экспериментам!