DrumHero: Як я робив першу в житті гру

Цього року соціально-освітній програмі IT ШКОЛА SAMSUNG виповнюється 5 років (читайте про IT ШКОЛУ тут), і з цієї нагоди ми запропонували нашим випускникам розповісти про себе та досвід створення своїх мобільних додатків. Ми віримо, що за великого бажання кожен може досягти успіху!

Першим таким гостем у цій рубриці став Шаміль Магомедов, випускник ІТ ШКОЛИ SAMSUNG 2017 року, нині студент МІЕМ НІУ ВШЕ. Шаміль, дякую, що, незважаючи на завантаженість, ти знайшов час написати цю статтю!

Всім привіт!
Сьогодні я хотів би розповісти про те, як я перетворився з "умовно зарахованого" в IT-ШКОЛУ SAMSUNG на фіналіста всеросійського конкурсу з мобільної розробки завдяки грі DrumHero.

DrumHero: Як я робив першу в житті гру

Передісторія

Я вступив до IT ШКОЛИ, коли навчався у 10-му класі. З перших днів навчання я відставав від інших хлопців, і це було передбачувано ще до початку курсу (про це говорили мої дуже низькі бали вступного іспиту). Всі ці принципи програмування, пристрій платформи Android та мови Java, як це все зрозуміти?

На щастя, я мав усе, що потрібно для успішного освоєння навичок розробки: безмежне бажання йти вперед і не зупинятися.

Приділяючи багато часу домашнім завданням, постійно затримуючись після пар із учителем Володимиром Володимировичем Ілліним (з ним мені шалено пощастило), я почав підлаштовуватися під швидкі темпи навчання і замислюватися про випускний проект.

DrumHero: Як я робив першу в житті гру

З учителем - В.В.Ільїним

Пошук ідеї

Багато хто думає, що при створенні проекту, чи то стартап, чи щось невелике для здобуття досвіду, вся складність полягає саме в розробці: писати купу коду, вивчати нові бібліотеки, постійно тестувати — жах! Повірте, це зовсім негаразд. Я міркував так само, поки сам не зіткнувся з необхідністю вибрати і реалізувати ідею, виявилося, це один з найпростіших етапів.

Найскладніше у виборі ідеї на початковій стадії навчання — це визначення складності реалізації: я довго не міг придумати додаток, який мав би під силу і в той же час подобався мені.

Найбільше хотілося написати саме музичну гру, але сумніви у своїх силах дуже заважали. Здавалося, що не вдасться довести справу до кінця, і з цієї причини я неодноразово змінював свій вибір: мобільний більярд, боулінг, раннер тощо. Зрештою я виніс із цього один урок: складнощі виникатимуть завжди, незалежно від ідеї програми, і тому найголовніше - вибрати те, що подобається і йти до кінця.

DrumHero: Як я робив першу в житті гру

Мені завжди подобалася гра Guitar Hero

Реалізація ігрової логіки

Основна ідея програм типу Guitar Hero - це натискання на екран в ритм музики.
Насамперед я приступив до реалізації ігрової логіки:

  1. Створив класи нот, кнопок та смуг, якими рухатимуться ноти.
  2. Розмістив полотно на весь екран програми та на ньому вже розписував розташування об'єктів створених класів.
  3. Реалізував одночасний запуск mp3 файлу пісні та отриманих з бази даних масиву нот та вуалю! Перші нариси гри вже на моєму смартфоні 🙂

DrumHero: Як я робив першу в житті гру

Перша версія гри

Так, виглядає "вражаюче", але цього було майже достатньо для тестування гри! Останнім необхідним кроком був список нот для пісні і над його реалізацією мені довелося посидіти чимало часу.
Принцип досить простий: за значеннями таблиці бази даних програма створює об'єкти класу “Нота” і додає отримані ноти масив. Таблиця складається з двох колонок:

  • номер лінії від 1 до 4, по якій повинна піти нота та
  • час, коли вона повинна з'явитися на екрані.

На що я витратив багато часу, якщо все так просто? Заповнення цієї бази даних!
На жаль, на той момент я не міг придумати, як автоматизувати процес отримання нот у потрібному форматі з mp3-файлу пісні, і тому мені довелося вручну заповнювати ці колонки на слух.

DrumHero: Як я робив першу в житті гру

Процес заповнення бази даних нотами

Цей спосіб дозволив мені зайнятися розробкою та тестуванням гри вже спочатку, але було ясно, що потрібно придумати щось інше. Тут мені дуже допоміг мій вчитель, Ільїн Володимир Володимирович, який розповів про існування MIDI-формату, пояснив його пристрій та допоміг розібратися зі знайденою бібліотекою для роботи із MIDI файлами.

Принадність цього формату полягає в тому, що в ньому кожен інструмент - це вже окрема доріжка, на якій розміщуються певні ноти. Таким чином, можна циклом легко обробляти всі ноти та залежно від доріжки та часу автоматично додавати їх до бази даних. Це дуже важлива властивість, адже саме завдяки йому мені вдалося вирішити проблему ігор такого жанру: відсутність можливості додавання своїх пісень. Щоправда, MIDI-формат має великий мінус — звук (всі ми пам'ятаємо мелодії в ретро-іграх, так?).

Поступово покращуючи ігровий процес, я довів програму до цілком робочого стану, додав багато "фіч": можливість додавання своєї пісні з пам'яті пристрою або з хмарного каталогу, вибір рівня складності, режим новачка та багато іншого.
І нарешті я дійшов до вишеньки на торті.

Дизайн

Ось і почалося втілення мого “бачення” гри. Насамперед я почав вибирати програму для малювання. Досвіду в графічному дизайні у мене не було ніякого, тому мені потрібна була проста в освоєнні (Photoshop - повз), але при цьому гнучка та зручна програма (Paint, пробач). Вибір упав на Inkscape — добрий інструмент для редагування векторних зображень, переважно формату svg.

Трохи освоївшись у цій програмі, я став промальовувати кожен елемент гри і зберігати його в різних роздільних здатності, що підходять для різних розмірів екрана пристроїв. Також були спроби реалізувати анімацію вибуху нот, і, незважаючи на непридатність отриманого дизайну, я був задоволений. Безумовно, паралельно з доопрацюванням проекту я продовжував працювати над дизайном, додаючи нові фарби (градієнти – це кохання “з першого погляду”).

DrumHero: Як я робив першу в житті гру

Перша версія дизайну (два екрани, без анімації, стара назва)

DrumHero: Як я робив першу в житті гру

Друга версія дизайну (4 екрани, початковий екран плавно пульсує різними кольорами, скрізь градієнти)

Я захистив випускний проект і був дуже радий, коли дізнався, що відбувся відбірковий тур і був запрошений до фіналу конкурсу додатків IT ШКОЛИ. У мене залишалося близько місяця до конкурсу, і я серйозно задумався про залучення професійнішої у сфері дизайну людини. Пошуки не пройшли даремно: як виявилося, близька подруга мого брата — чудовий дизайнер! Вона відразу ж погодилася допомогти мені, а поточний дизайн гри її заслуга.

DrumHero: Як я робив першу в житті гру

Фінальна версія дизайну

Публікація

Після завершення роботи над реліз-версією я одразу почав готувати додаток до публікації в Google Play Market. Стандартна процедура: придбання облікового запису розробника, складання сторінки програми і т.д. Але цей розділ не про це.

Найдивовижніше у цій історії — статистика завантажень. Перший час кількість завантажень DrumHero збільшувалася поступово і майже рівномірно за деякими країнами Європи, США і країнами СНД, але пройшов місяць і кількість завантажень досягла позначки в 100 000 завантажень! Цікавий той факт, що більшість скачувань припала на Індонезію.

Висновок

DrumHero – мій перший серйозний проект, на якому я навчався програмувати. Він не просто вивів мене у всеросійський фінал конкурсу проектів IT ШКОЛИ SAMSUNG, але й подарував великий досвід у графічному дизайні, у GameDev, у взаємодії із сервісом Play Market та багато в чому іншому.

DrumHero: Як я робив першу в житті гру

Звичайно, зараз я бачу в грі чимало недоліків, хоча на сьогодні кількість скачувань досягла майже 200 000. У моїх планах випустити нову версію, є ідеї, як підвищити стабільність, покращити ігровий процес та збільшити кількість скачувань.

Довідка:
IT ШКОЛА SAMSUNG - це безкоштовна програма додаткової освіти для старшокласників, працює в 25 містах Росії.
Випускний проект учнів – це мобільний додаток. Це може бути гра, соціальна програма, планувальник — все, що їм заманеться.
Подати заявку на навчання з вересня 2019 року можна на сайті програми.


Джерело: habr.com

Додати коментар або відгук