Процесс разработки 2d игры на Android: поиск идей, настройка

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Всем привет! Уже больше двух недель в студии кипит работа над новым проектом — 2d шутер с видом сверху и немного необычной перспективой для персонажей (о чем мы поговорим более обстоятельно). Пришло время рассказать о нем во всех подробностях. Это первая часть из серии статей про процесс разработки двухмерной игры на Android.

Все части дневника

Команда

Для начала давайте познакомимся с командой, в которой сейчас 4 человека:

  • Олег Антонюк — управляющий проектом, геймдизайнер, художник. Я же буду вести этот дневник.
  • Михаил Гасюк — сценарист, геймдизайнер, тестировщик.
  • Антон Бевза — ведущий Android-разработчик.
  • Сергей Катрыч — Android-разработчик.

В перспективе к нам присоединится художник/аниматор, а пока его функции выполняю я. Мне как инди разработчику в прошлом (успешно продал 2 флеш-игры) очень интересно руководить и наблюдать за развитием мобильной игры в команде. Отличий масса, есть как недостатки, так и весомые достоинства.

Идея

Изначально была задача сделать Crimsonland для мобилок. Первый прототип выглядел очень похоже: мелкие спрайты (как для экрана смартфонов), медлительный игрок, похожие монстры. Оригинал:

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Еще одно важное условие — игру нужно выпустить достаточно быстро, это небольшой проект на несколько месяцев. Мы решили, что лучше разработать несколько игр в разных жанрах, чтобы «прощупать» рынок, чем один большой проект.

Просмотрев самые успешные игры этого жанра в Google Play — серию Monster Shooter и Age of Zombies — мы заметили, что все они используют изометрию. Объекты моделируются в 3d, рендрятся покадрово. В случае с Age of Zombies есть еще и постобработка аля пиксель-арт (сколько работы!). При этом каждую анимацию нужно рендрить с разными углами поворота (обычно от 4-х и больше), которая выводится в зависимости от направления движения персонажа, чтобы имитировать 3d-эффект.

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Учитывая, что изометрия — это очень дорого и долго, а закончить все мы хотим быстро и не разорившись, пришлось искать альтернативы. Самый простой вариант — вид сверху. Такие игры успешно существуют, например, игра Mutant от росийских разработчиков из Alawar Entertainment.

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Но при таком типе камеры у героев даже не видно лиц. О каких эмоциях может идти речь? Как оценить мощь и красоту только что купленной пушки, если в бою мы можем видеть лишь ее жалкую проекцию сверху? С таким типом камеры программистам и художникам работы на порядок меньше, но и результат в 10 раз беднее. Имеем две крайности, обе не подходят...

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

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

А что если сделать вид сверху и персонажей отрисовать спереди? Пушку крутим, чтобы игрок понимал куда целится. Выглядит не очень реалистично, но вполне достаточно для нашего мультяшного стиля. В Rayman-e руки точно также оторваны от тела и все нормально.

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

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

Планирование

Самое большое отличие одиночной инди-разработки от командной заключается в том, что есть другие участники и им нужно очень подробно объяснить, что делать. Если раньше художник, программист, геймдизайнер были одним человеком и «их» взаимодействие было максимально эффективным, то сейчас на связывание всех процессов и синхронизацию задач (например, программисту спрайты могут понадобиться на самых ранних этапах разработки) затрачивается много времени. С другой стороны создание игры ускоряется в разы, новые фичи появляются каждый день.

Для планирования мы используем методологию управления проектами Scrum (схватка). Если коротко, то мы разбиваем разработку на этапы, которые длятся 7-8 дней и называются спринтами. Каждый спринт добавляет ключевые функции в проект и позволяет оценить в правильном ли направлении мы двигаемся. После завершения очередного этапа команда собирается вместе и планирует следующий. Каждый спринт состоит из списка задач, который формируется из резерва проекта (product backlog).

Сейчас мы в процессе завершения третьего спринта. Короткая сводка по предыдущим этапам:

  • Спринт 1 (6 дней). У нас был прототип, но дальнейшая разработка усложнялась из-за непродуманной структуры классов и сложного кода. Написали все с нуля с возможностью изменять некоторые параметры игры без перекомпиляции. Это нужно для удобной балансировки. Например, можно изменить скорость передвижения главного героя, монстров, их урон, разброс пуль и другие ключевые параметры.
  • Спринт 2 (8 дней). Проверка выбранной перспективы для показа персонажей и графического стиля. Заменили все спрайты. Новая музыка и звуки из бесплатных источников. По ходу разработки пришлось добавить имитацию изометрии. Идея оказалась рабочей, результат спринта понравился, продолжаем.
  • Спринт 3 (8 дней). По количеству новых фич самый масштабный: тайловые уровни (создаются в бесплатном редакторе Tiled), 3 вида оружия, магазин, карта прогресса прохождения, 3 вида врагов, бонусы, новые звуки, поиск художника. Закончить должны завтра.

В работе используем Redmine — открытое веб-приложение для планирования и управления проектами. Его функций достаточно для реализации методологии Scrum. Backlog и спринты создаются с помощью версий. С помощью подзадач и чеклистов удобно расписывать сложные задания и оценивать их по времени.

Инструменты и технологии разработки

Разработка 2d игры на Android происходит в среде IntelliJ IDEA на языке Java c использованием движка AndEngine. Из используемых технологий еще можно упомянуть XML, в котором хранятся уровни.

Вcя графика рисуется в Adobe Flash и Adobe Photoshop. Для создания листов спрайтов (sprite sheets) используется TexturePacker.

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Звуки обрабатываются в Adobe Audition. Для обмена файлами пользуемся сервисами Dropbox и Google Drive.

Поиск художника

20 февраля мы разместили вакансию художника/аниматора на различных биржах фриланса и форумах. Откликнулось достаточно много людей самого широкого профиля. От художников по концепт-арту до 3d аниматоров из разных уголков Украины и России. Некоторые любезно согласились выполнить тестовое задание. Предлагаем взглянуть на работу одного молодого художника из Тернополя, которая нам понравилась:

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

Возможно графику в его исполнении мы увидим в рабочей версии по итогам следующего спринта.

Звуковые эффекты и музыка

Звуковые эффекты и музыка сейчас берутся из бесплатных источников, например freesound.org. Если требуется звуки чистятся, обрабатываются и сводятся, чтобы получить нормальное качество:

Дневник разработки 2d шутера для платформы Android. Часть 1: Идея

В будущем мы планируем заказывать музыку или покупать готовую на таких сайтах, как audiojungle.net. Там же можно найти качественные эффекты.

Продолжение следует

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

Часть 2: Художник найден

UPD: игра Galaxy Recon уже доступна на Google Play — присоединяйтесь!