DrumHero: Ako som vytvoril prvú hru v živote

Sociálno-vzdelávací program IT ŠKOLA SAMSUNG oslavuje tento rok 5 rokov (prečítajte si o IT ŠKOLA tu), a pri tejto príležitosti sme pozvali našich absolventov, aby porozprávali o sebe a svojich skúsenostiach s tvorbou svojich mobilných aplikácií. Veríme, že s veľkou túžbou môže každý dosiahnuť úspech!

Prvým takýmto hosťom v tejto sekcii bol Shamil Magomedov, absolvent SAMSUNG IT SCHOOL 2017, teraz študent MIEM NRU HSE. Shamil, veľmi pekne ďakujem, že si si našiel čas na napísanie tohto článku aj napriek tvojej zaneprázdnenosti!

Ahoj všetci!
Dnes by som rád porozprával o tom, ako som sa z „podmienečného prijatia“ na SAMSUNG IT SCHOOL stal vďaka hre finalistom celoruskej mobilnej vývojárskej súťaže DrumHero.

DrumHero: Ako som vytvoril prvú hru v živote

pravek

Na IT ŠKOLU som nastúpil v 10. ročníku. Hneď od prvých dní tréningu som za ostatnými chalanmi zaostával a to sa dalo predvídať už pred začiatkom kurzu (svedčilo o tom aj moje strašne nízke skóre na prijímacích skúškach). Všetky tieto princípy programovania, štruktúra platformy Android a jazyk Java, ako tomu všetkému rozumieť?

Našťastie som mal všetko, čo som potreboval na úspešné zvládnutie rozvojových zručností: bezhraničnú túžbu posunúť sa vpred a nezastaviť sa.

Venoval som veľa času domácim úlohám, neustále som zostával neskoro po vyučovaní s učiteľom Vladimírom Vladimirovičom Ilyinom (mal som na neho neuveriteľné šťastie), začal som sa prispôsobovať rýchlemu tempu učenia a premýšľať o svojom absolventskom projekte.

DrumHero: Ako som vytvoril prvú hru v živote

S učiteľom - V.V. Ilyinom

Hľadajte nápad

Mnoho ľudí si myslí, že pri vytváraní projektu, či už ide o startup alebo niečo malé na získanie skúseností, všetky ťažkosti spočívajú vo vývoji: písať veľa kódu, učiť sa nové knižnice, neustále testovať - ​​hrôza! Verte mi, nie je to vôbec pravda. Uvažoval som úplne rovnako, až kým som sám nečelil potrebe vybrať a zrealizovať nápad, čo sa ukázalo ako jedna z najťažších etáp.

Najťažšia vec pri výbere nápadu v počiatočnej fáze učenia je určiť zložitosť implementácie: dlho som nemohol prísť s aplikáciou, ktorú by som mohol robiť a zároveň sa mi páčila.

Zo všetkého najviac som chcel napísať hudobnú hru, ale pochybnosti o mojich schopnostiach mi naozaj bránili. Zdalo sa, že prácu nebude možné dokončiť a z tohto dôvodu som viackrát zmenil svoj výber: mobilný biliard, bowling, bežec atď. Nakoniec som sa z toho poučil: ťažkosti budú vždy, bez ohľadu na nápad aplikácie, a preto najdôležitejšie je vybrať si, čo sa vám páči a ísť až do konca.

DrumHero: Ako som vytvoril prvú hru v živote

Vždy sa mi páčila hra Guitar Hero

Implementácia hernej logiky

Základnou myšlienkou aplikácií ako Guitar Hero je klepať na obrazovku v rytme hudby.
Najprv som začal implementovať logiku hry:

  1. Vytvorené triedy nôt, tlačidiel a pruhov, pozdĺž ktorých sa budú noty pohybovať.
  2. Plátno som umiestnil na celú obrazovku aplikácie a na ňom som už popísal umiestnenie objektov vytvorených tried.
  3. Implementované súčasné spustenie súboru mp3 skladby a radu poznámok získaných z databázy a voila! Prvé návrhy hry sú už na mojom smartfóne :)

DrumHero: Ako som vytvoril prvú hru v živote

Prvá verzia hry

Áno, vyzerá to „pôsobivo“, ale na otestovanie hry to takmer stačilo! Posledným nevyhnutným krokom bol zoznam nôt ku skladbe a pri jeho realizácii som musel stráviť veľa času.
Princíp je pomerne jednoduchý: pomocou hodnôt databázovej tabuľky program vytvorí objekty triedy „Note“ a výsledné poznámky pridá do poľa. Tabuľka pozostáva z dvoch stĺpcov:

  • číslo riadku od 1 do 4, na ktorý má ísť poznámka a
  • čas, kedy sa má objaviť na obrazovke.

Prečo som trávil veľa času, keď je všetko také jednoduché? Na naplnenie tejto databázy!
Žiaľ, v tom čase som nevedel prísť na to, ako zautomatizovať proces získavania notového záznamu vo formáte, ktorý som potreboval z mp3 súboru skladby, a tak som musel tieto stĺpce vyplniť ručne podľa sluchu.

DrumHero: Ako som vytvoril prvú hru v živote

Proces naplnenia databázy poznámkami

Táto metóda mi umožnila začať hru vyvíjať a testovať skoro, no bolo jasné, že musím prísť s niečím iným. Tu mi veľmi pomohol môj učiteľ Iljin Vladimir Vladimirovič, ktorý hovoril o existencii formátu MIDI, vysvetlil mi jeho štruktúru a pomohol mi zistiť knižnicu, ktorú som našiel na prácu s MIDI súbormi.

Krása tohto formátu je v tom, že v ňom je každý nástroj už samostatnou stopou, na ktorej sú umiestnené určité „noty“. Týmto spôsobom môžete jednoducho prechádzať všetkými poznámkami a v závislosti od skladby a času ich automaticky pridať do databázy. Je to veľmi dôležitá vlastnosť, pretože práve vďaka nej som mohol vyriešiť problém hier tohto žánru: nemožnosť pridávať vlastné pesničky. Pravda, MIDI formát má veľkú nevýhodu – zvuk (všetci si pamätáme melódie v retro hrách, však?).

Postupným vylepšovaním hry som program priviedol do plne funkčného stavu, pridal mnoho „funkcií“: možnosť pridať vlastnú skladbu z pamäte zariadenia alebo z cloudového katalógu, výber úrovne obtiažnosti, režim pre začiatočníkov a oveľa viac.
A nakoniec som sa dostala k „čerešničke na torte“...

Design

Tu sa začalo stelesnenie mojej „vízie“ hry. V prvom rade som si začal vyberať kresliaci program. Nemal som žiadne skúsenosti s grafickým dizajnom, takže som potreboval program, ktorý sa dá ľahko naučiť (mimochodom Photoshop), ale zároveň flexibilný a pohodlný (Paint, prepáčte). Voľba padla na Inkscape – dobrý nástroj na úpravu vektorových obrázkov hlavne vo formáte svg.

Po oboznámení sa s týmto programom som začal kresliť každý prvok hry a ukladať ho v rôznych rozlíšeniach vhodných pre rôzne veľkosti obrazovky zariadenia. Objavili sa aj pokusy o implementáciu animácie výbuchu nôt a napriek nevhodnosti výsledného dizajnu ma to potešilo. Samozrejme, súbežne s finalizáciou projektu som pokračoval v práci na dizajne a pridával nové farby (prechody sú láska „na prvý pohľad“).

DrumHero: Ako som vytvoril prvú hru v živote

Prvá verzia dizajnu (dve obrazovky, žiadna animácia, starý názov)

DrumHero: Ako som vytvoril prvú hru v živote

Druhá verzia dizajnu (4 obrazovky, úvodná obrazovka plynulo pulzuje rôznymi farbami, prechody všade)

Obhájil som svoj záverečný projekt a bol som veľmi rád, keď som zistil, že som prešiel kvalifikačným kolom a bol som pozvaný do finále súťaže o prihlášku IT ŠKOLA. Do súťaže mi zostával asi mesiac a vážne som uvažoval nad tým, že by som zamestnal profesionálnejšieho človeka v oblasti dizajnu. Hľadanie nebolo zbytočné: ako sa ukázalo, blízky priateľ môjho brata je vynikajúci dizajnér! Okamžite súhlasila, že mi pomôže, a súčasný herný dizajn je jej zásluha.

DrumHero: Ako som vytvoril prvú hru v živote

Finálny dizajn

Publikácia

Po dokončení práce na verzii vydania som okamžite začal pripravovať aplikáciu na zverejnenie na trhu Google Play. Štandardný postup: získanie vývojárskeho účtu, vytvorenie stránky aplikácie atď. Ale o tom táto časť nie je.

Najprekvapujúcejšou vecou v tomto príbehu sú štatistiky sťahovania. Najprv sa počet stiahnutí DrumHero postupne a takmer rovnomerne zvyšoval v niektorých európskych krajinách, USA a krajinách SNŠ, ale prešiel mesiac a počet stiahnutí dosiahol 100 000 stiahnutí! Zaujímavosťou je, že väčšina stiahnutí pochádzala z Indonézie.

Záver

DrumHero je môj prvý seriózny projekt, kde som sa naučil programovať. Priviedol ma nielen do celoruského finále súťaže projektu SAMSUNG IT SCHOOL, ale dal mi veľa skúseností v oblasti grafického dizajnu, GameDev, interakcie so službou Play Market a mnoho ďalšieho.

DrumHero: Ako som vytvoril prvú hru v živote

Samozrejme, teraz vidím v hre veľa nedostatkov, hoci dnes počet stiahnutí dosiahol takmer 200 000. Moje plány sú vydať novú verziu, sú nápady ako zvýšiť stabilitu, zlepšiť hrateľnosť a zvýšiť počet stiahnutí.

FAQ:
SAMSUNG IT SCHOOL je bezplatný denný doplnkový vzdelávací program pre študentov stredných škôl, ktorý pôsobí v 25 mestách Ruska.
Absolventský projekt študentov je mobilná aplikácia. Môže to byť hra, sociálna aplikácia, plánovač, čokoľvek chcú.
Na školenie sa môžete prihlásiť od septembra 2019 o Online Program.


Zdroj: hab.com

Pridať komentár