Найти в Дзене
DeosPhix

Как мы делали раннер (и пожалели об этом)

Наша команда сразу понимала, что не стоит замахиваться на что-то большое. Поэтому решили начать с простого проекта, который позволил бы расти и набираться опыта. Так как у нас не было практики разработки игр, мы выбрали путь обучения через создание проекта. Первым жанром стал раннер — и это оказалось ошибкой. С самого начала решили, что первые проекты будут выкладываться на веб-площадки. Продвижение игр — сложный процесс, сравнимый с их созданием, а у начинающей команды мало шансов выпустить что-то, что сразу получит внимание. Площадки вроде Steam сразу отпали, учитывая сложность выхода на них и дополнительные ограничения для российских разработчиков. Выход на мобильный рынок (Google Play) тоже показался плохой идеей. Конкуренция в жанре раннеров огромная, а без серьезных вложений выделиться практически невозможно. Веб-площадки, обещающие трафик без дополнительных затрат, казались идеальным вариантом. Цель поставлена — работа закипела. Первоначальная концепция включала: Выбрали сеттинг
Оглавление

Наша команда сразу понимала, что не стоит замахиваться на что-то большое. Поэтому решили начать с простого проекта, который позволил бы расти и набираться опыта. Так как у нас не было практики разработки игр, мы выбрали путь обучения через создание проекта. Первым жанром стал раннер — и это оказалось ошибкой.

Выбор платформы

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

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

Начало разработки

Цель поставлена — работа закипела. Первоначальная концепция включала:

  • Прототип с "белыми ящиками", позволяющий управлять персонажем и проигрывать.
  • Бесконечно генерируемую трассу.
  • Основную механику, завязанную на ритм: движение персонажа должно соответствовать музыке для получения бонусов.
  • Разные уровни высоты трассы.
  • Возможность прокачки персонажа и добавление достижений.
Препятствия генерируются в ритм музыки
Препятствия генерируются в ритм музыки

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

Пока разбирались с управлением и генерацией трассы, наткнулись на Neon Drive — игру, которая делала примерно то же, что и мы планировали. Тем не менее, разработку продолжили.

Хардкорное, сочетание ритм игры и раннера!
Хардкорное, сочетание ритм игры и раннера!

Первые проблемы

На создание первой итерации ушло несколько месяцев. Проект трижды переделывался с нуля из-за:

  • Плохой архитектуры.
  • Неотзывчивого управления.
  • Проблем с рендерингом, которые в будущем могли привести к долгим переделкам.

Но главным препятствием стала ритм-механика. Генерация препятствий под музыку оказалась невероятно сложной:

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

Стало очевидно: без музыкального образования или слуха эту механику сделать качественно не получится. Первоначальная концепция CyberBitRunner отправилась на переработку.

Переосмысление проекта

Сюжетные заставки решили убрать — они только тормозили игровой процесс. Киберпанк оказался неподъемным для команды без опыта: без хорошей проработки он превращался в "светящиеся кубы".

За время разработки проект несколько раз менял название: Runner → CyberBitRunner → BitRunner → NinjaRunner → Runcher. Последняя итерация стала классическим 3D-раннером: фермер бежит за вором, укравшим курицу, несущую золотые яйца.

Первая версия раннера
Первая версия раннера
NinjaRunner всё ещё без рандомной генерации, и уже без музыки
NinjaRunner всё ещё без рандомной генерации, и уже без музыки

Финальный кризис

Стартовая сцена Runcher
Стартовая сцена Runcher

Казалось, что осталось сделать последний рывок:

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

И тут пришло главное осознание: все это было ошибкой.

Кажется что в это уже можно игрть, но нет...
Кажется что в это уже можно игрть, но нет...

Технические проблемы :

  • Игра лагала, так как загружала всю сцену сразу, со всеми ресурсами и не освобождала память.
  • Финальный билд весил почти 100 МБ, что критично для веб игр. Из-за этого загрузка длилась целую вечность.
  • Несмотря на небольшое количество 3D-моделей, игра работала нестабильно.

Чем больше исправляли баги, тем больше их становилось. Оценка оставшихся задач показала, что завершение проекта займет минимум четыре месяца, а с учетом новых проблем — полгода.

Самая главная ошибка: никто в команде не любил этот жанр. Раннеры не нравились никому, а единственное, что увлекало еще меньше, — "три в ряд". Разработка не приносила удовольствия, а превращалась в мучение.

Итоговые выводы

После обсуждения решили:

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

Из этого опыта извлекли несколько важных уроков, которые могут быть полезны другим начинающим разработчикам:

  1. Не беритесь за проект, который вам не нравится. Работать без удовольствия тяжело.
  2. Используйте готовые ассеты. В сети много бесплатных ресурсов, которые экономят время и силы.
  3. Не усложняйте механику. Чем больше механик, тем выше вероятность, что игра окажется неиграбельной.
  4. Если проект мертв с самого начала, не пытайтесь его оживить. Лучше сделать что-то другое, а позже вернуться к идее с новым опытом.
  5. Лучше несколько маленьких проектов, чем один огромный, который так и не выйдет.
  6. Для веб площадок лучше начать с 2d игр.

Этот путь оказался сложнее, чем ожидалось, но дал ценные знания. И мы были готовы к новым экспериментам!