DrumHero: Як я рабіў першую ў жыцці гульню

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

Першым такім госцем у гэтай рубрыцы стаў Шаміль Магамедаў, выпускнік 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

Дадаць каментар