9

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

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


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

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

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


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

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

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

  • Бесконечно генерируемую трассу.

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

  • Разные уровни высоты трассы.

  • Возможность прокачки персонажа и добавление достижений.

Препятствия генерируются в ритм музыки

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

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

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

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

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

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

  • Плохой архитектуры.

  • Неотзывчивого управления.

  • Проблем с рендерингом, которые в будущем могли привести к долгим переделкам.

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

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

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

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


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

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

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

Первая версия раннера

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


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

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

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

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

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

  • Сделали первый играбельный билд.

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

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

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

  • Игра лагала, так как загружала всю сцену сразу, со всеми ресурсами и не освобождала память.

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

  • Несмотря на небольшое количество 3D-моделей, игра работала нестабильно.

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

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


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

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

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

  • Взять месячный перерыв.

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

  1. Не беритесь за проект, который вам не нравится. Работать без удовольствия тяжело.

  2. Используйте готовые ассеты. В сети много бесплатных ресурсов, которые экономят время и силы.

  3. Не усложняйте механику. Чем больше механик, тем выше вероятность, что игра окажется неиграбельной.

  4. Если проект мертв с самого начала, не пытайтесь его оживить. Лучше сделать что-то другое, а позже вернуться к идее с новым опытом.

  5. Лучше несколько маленьких проектов, чем один огромный, который так и не выйдет.

  6. Для веб площадок лучше начать с 2d игр.

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

ЗАПРЕЩЕНО:

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

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

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


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

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

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

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

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