Всем привет! Уже больше двух недель в студии кипит работа над новым проектом — 2d шутер с видом сверху и немного необычной перспективой для персонажей (о чем мы поговорим более обстоятельно). Пришло время рассказать о нем во всех подробностях. Это первая часть из серии статей про процесс разработки двухмерной игры на Android.
Все части дневника
- Часть 1: Идея (читаете сейчас)
- Часть 2: Художник найден
- Часть 3: Техно-демо
- Часть 4: Релиз
Команда
Для начала давайте познакомимся с командой, в которой сейчас 4 человека:
- Олег Антонюк — управляющий проектом, геймдизайнер, художник. Я же буду вести этот дневник.
- Михаил Гасюк — сценарист, геймдизайнер, тестировщик.
- Антон Бевза — ведущий Android-разработчик.
- Сергей Катрыч — Android-разработчик.
В перспективе к нам присоединится художник/аниматор, а пока его функции выполняю я. Мне как инди разработчику в прошлом (успешно продал 2 флеш-игры) очень интересно руководить и наблюдать за развитием мобильной игры в команде. Отличий масса, есть как недостатки, так и весомые достоинства.
Идея
Изначально была задача сделать Crimsonland для мобилок. Первый прототип выглядел очень похоже: мелкие спрайты (как для экрана смартфонов), медлительный игрок, похожие монстры. Оригинал:
Еще одно важное условие — игру нужно выпустить достаточно быстро, это небольшой проект на несколько месяцев. Мы решили, что лучше разработать несколько игр в разных жанрах, чтобы «прощупать» рынок, чем один большой проект.
Просмотрев самые успешные игры этого жанра в Google Play — серию Monster Shooter и Age of Zombies — мы заметили, что все они используют изометрию. Объекты моделируются в 3d, рендрятся покадрово. В случае с Age of Zombies есть еще и постобработка аля пиксель-арт (сколько работы!). При этом каждую анимацию нужно рендрить с разными углами поворота (обычно от 4-х и больше), которая выводится в зависимости от направления движения персонажа, чтобы имитировать 3d-эффект.
Учитывая, что изометрия — это очень дорого и долго, а закончить все мы хотим быстро и не разорившись, пришлось искать альтернативы. Самый простой вариант — вид сверху. Такие игры успешно существуют, например, игра Mutant от росийских разработчиков из Alawar Entertainment.
Но при таком типе камеры у героев даже не видно лиц. О каких эмоциях может идти речь? Как оценить мощь и красоту только что купленной пушки, если в бою мы можем видеть лишь ее жалкую проекцию сверху? С таким типом камеры программистам и художникам работы на порядок меньше, но и результат в 10 раз беднее. Имеем две крайности, обе не подходят...
Выбирая стиль графики, по наводке Миши я набрел на игру Droid Assault. Обратите внимание на подачу персонажей:
А что если сделать вид сверху и персонажей отрисовать спереди? Пушку крутим, чтобы игрок понимал куда целится. Выглядит не очень реалистично, но вполне достаточно для нашего мультяшного стиля. В Rayman-e руки точно также оторваны от тела и все нормально.
Если присмотреться, то видно, что при прицеливании влево пушка оказывается в правой руке и наоборот. При этом также происходит небольшое смещение в соответствующую сторону. Что бы это реализовать достаточно отразить спрайт с оружием по горизонтали. Идея всем понравилась и мы принялись за ее реализацию. На мобильном рынке я ничего подобного не нашел, укажите если есть.
Планирование
Самое большое отличие одиночной инди-разработки от командной заключается в том, что есть другие участники и им нужно очень подробно объяснить, что делать. Если раньше художник, программист, геймдизайнер были одним человеком и «их» взаимодействие было максимально эффективным, то сейчас на связывание всех процессов и синхронизацию задач (например, программисту спрайты могут понадобиться на самых ранних этапах разработки) затрачивается много времени. С другой стороны создание игры ускоряется в разы, новые фичи появляются каждый день.
Для планирования мы используем методологию управления проектами 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.
Звуки обрабатываются в Adobe Audition. Для обмена файлами пользуемся сервисами Dropbox и Google Drive.
Поиск художника
20 февраля мы разместили вакансию художника/аниматора на различных биржах фриланса и форумах. Откликнулось достаточно много людей самого широкого профиля. От художников по концепт-арту до 3d аниматоров из разных уголков Украины и России. Некоторые любезно согласились выполнить тестовое задание. Предлагаем взглянуть на работу одного молодого художника из Тернополя, которая нам понравилась:
Возможно графику в его исполнении мы увидим в рабочей версии по итогам следующего спринта.
Звуковые эффекты и музыка
Звуковые эффекты и музыка сейчас берутся из бесплатных источников, например freesound.org. Если требуется звуки чистятся, обрабатываются и сводятся, чтобы получить нормальное качество:
В будущем мы планируем заказывать музыку или покупать готовую на таких сайтах, как audiojungle.net. Там же можно найти качественные эффекты.
Продолжение следует
На сегодня все. В следующий раз я детально расскажу про дальнейшие этапы разработки, технические нюансы и другие интересные моменты, с которыми нам пришлось столкнуться. Если есть вопросы, задавайте, постараюсь всем ответить.
UPD: игра Galaxy Recon уже доступна на Google Play — присоединяйтесь!