Процес розробки 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 днів і називаються спринтами. Під час кожного спринту до проекту додаються ключові функції, які дозволяють нам зрозуміти, чи рухаємося ми в правильному напрямку. Після завершення кожного етапу команда збирається разом і починає планувати наступний етап. Кожен спринт складається зі списку завдань, взятих з беклогу продукту.

Зараз ми наближаємося до фінішної точки третього спринту. Ось короткий підсумок попередніх етапів:

  • Спринт 1 (6 днів). У нас був прототип, але подальша розробка ускладнилася через погану структуру класів і складний код. Ми написали все з нуля з можливістю змінювати деякі параметри гри без необхідності перекомпіляції. Це зручно, коли потрібно збалансувати гру. Наприклад, можна змінювати швидкість пересування головного героя, монстрів і завдану їм шкоду, розкид куль та інші ключові параметри.
  • Спринт 2 (8 днів). Перевірка обраного ракурсу відображення персонажів та графічного стилю. Замінили всі спрайти. Додано нову музику та звуки з вільних джерел. В процесі розробки довелося додати симуляцію ізометричного вигляду. Ідея виявилася робочою, нам сподобався результат спринту і ми продовжили розробку.
  • Спринт 3 (8 днів). Найскладніший за кількістю нових функцій: плиткові рівні (створені у безкоштовному редакторі Tiled), 3 види зброї, магазин, карта проходження рівня, 3 види ворогів, бонуси, нові звуки; пошук художника. Закінчити плануємо завтра.

У своїй роботі ми використовуємо Redmine — Redmine - безкоштовний веб-додаток з відкритим вихідним кодом для планування та управління проектами. Його функцій достатньо для реалізації методології Scrum. Беклог і спринти створюються за допомогою версій. Це допомагає нам вирішувати складні завдання та оцінювати час, витрачений на них, за допомогою підзадач та чек-листа.

Інструменти та технології розробки

Розробка 2d гри на Android виконується в середовищі IntelliJ IDEA на мові Java з використанням AndEngine. Ми також використовуємо XML для зберігання рівнів.

Вся графіка намальована в Adobe Flash та Adobe Photoshop. Для створення листів спрайтів використовувався 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 - приєднуйтесь!