DrumHero: Jak jsem vytvořil první hru v životě

Sociálně vzdělávací program IT ŠKOLA SAMSUNG oslaví letos 5 let (čtěte o IT ŠKOLA zde), a při této příležitosti jsme pozvali naše absolventy, aby pohovořili o sobě a svých zkušenostech s tvorbou svých mobilních aplikací. Věříme, že s velkou touhou může každý dosáhnout úspěchu!

Prvním takovým hostem v této sekci byl Shamil Magomedov, absolvent SAMSUNG IT SCHOOL 2017, nyní student MIEM NRU HSE. Shamile, moc vám děkuji, že jste si i přes svůj nabitý program udělal čas na napsání tohoto článku!

Ahoj všichni!
Dnes bych rád pohovořil o tom, jak jsem se z „podmíněného přijetí“ do SAMSUNG IT SCHOOL stal díky hře finalistou celoruské mobilní vývojářské soutěže DrumHero.

DrumHero: Jak jsem vytvořil první hru v životě

pravěk

Na IT ŠKOLU jsem nastoupil, když jsem byl v 10. třídě. Hned od prvních dnů tréninku jsem za ostatními kluky zaostával a to se dalo předvídat už před začátkem kurzu (o čemž svědčilo i moje příšerně nízké skóre přijímacích zkoušek). Všechny tyto principy programování, struktura platformy Android a jazyk Java, jak tomu všemu porozumět?

Naštěstí jsem měl vše, co jsem potřeboval k úspěšnému zvládnutí rozvojových dovedností: bezmeznou touhu jít vpřed a nezastavit se.

Věnoval jsem hodně času domácím úkolům, neustále jsem zůstával pozdě po vyučování u učitele Vladimira Vladimiroviče Iljina (měl jsem na něj neuvěřitelné štěstí), začal jsem se přizpůsobovat rychlému tempu učení a přemýšlet o svém absolventském projektu.

DrumHero: Jak jsem vytvořil první hru v životě

S učitelem - V.V. Ilyinem

Hledejte nápad

Mnoho lidí si myslí, že při vytváření projektu, ať už jde o startup nebo něco malého pro získání zkušeností, všechny potíže spočívají ve vývoji: napsat hromadu kódu, učit se nové knihovny, neustále testovat - hrůza! Věřte, že to vůbec není pravda. Úplně stejně jsem uvažoval, dokud jsem sám nestál před nutností vybrat a zrealizovat nápad, což se ukázalo jako jedna z nejtěžších fází.

Nejtěžší věcí při výběru nápadu v počáteční fázi učení je určit složitost implementace: dlouho jsem nemohl přijít s aplikací, kterou bych uměl a zároveň se mi líbil.

Ze všeho nejvíc jsem chtěl napsat hudební hru, ale do cesty se mi postavily pochybnosti o mých schopnostech. Zdálo se, že práci nebude možné dokončit, a z tohoto důvodu jsem několikrát změnil svou volbu: mobilní kulečník, bowling, běžec atd. Nakonec jsem se z toho poučil: potíže budou vždy nastat, bez ohledu na myšlenku aplikace, a proto nejdůležitější je vybrat si, co se vám líbí, a jít až do konce.

DrumHero: Jak jsem vytvořil první hru v životě

Vždy se mi líbila hra Guitar Hero

Implementace herní logiky

Základní myšlenkou aplikací jako Guitar Hero je klepat na obrazovku v rytmu hudby.
Nejprve jsem začal implementovat logiku hry:

  1. Vytvořené třídy poznámek, tlačítek a pruhů, po kterých se budou poznámky pohybovat.
  2. Plátno jsem umístil na celou obrazovku aplikace a na něm jsem již popsal umístění objektů vytvořených tříd.
  3. Implementováno současné spuštění mp3 souboru písně a řady poznámek získaných z databáze a voila! První návrhy hry už jsou na mém smartphonu :)

DrumHero: Jak jsem vytvořil první hru v životě

První verze hry

Ano, vypadá to „působivě“, ale na otestování hry to téměř stačilo! Posledním nezbytným krokem byl seznam not k písni a hodně času jsem musel strávit prací na jeho realizaci.
Princip je poměrně jednoduchý: pomocí hodnot databázové tabulky program vytvoří objekty třídy „Note“ a výsledné poznámky přidá do pole. Tabulka se skládá ze dvou sloupců:

  • číslo řádku od 1 do 4, na který má poznámka jít a
  • čas, kdy se má objevit na obrazovce.

Proč jsem trávil spoustu času, když je všechno tak jednoduché? K naplnění této databáze!
Bohužel jsem v té době nemohl přijít na to, jak zautomatizovat proces získávání not ve formátu, který jsem potřeboval z mp3 souboru písně, a tak jsem musel tyto sloupce vyplnit ručně podle sluchu.

DrumHero: Jak jsem vytvořil první hru v životě

Proces plnění databáze poznámkami

Tato metoda mi umožnila začít hru vyvíjet a testovat brzy, ale bylo jasné, že musím přijít s něčím jiným. Zde mi hodně pomohl můj učitel Iljin Vladimir Vladimirovič, který mluvil o existenci formátu MIDI, vysvětlil jeho strukturu a pomohl mi zjistit knihovnu, kterou jsem pro práci s MIDI soubory našel.

Krása tohoto formátu spočívá v tom, že v něm je každý nástroj již samostatnou stopou, na které jsou umístěny určité „noty“. Tímto způsobem můžete snadno procházet všechny poznámky a v závislosti na skladbě a čase je automaticky přidávat do databáze. To je velmi důležitá vlastnost, protože právě díky ní jsem mohl vyřešit problém her tohoto žánru: nemožnost přidávat vlastní písničky. Pravda, formát MIDI má velkou nevýhodu – zvuk (v retro hrách si všichni pamatujeme melodie, že?).

Postupným zlepšováním hry jsem program uvedl do plně funkčního stavu, přidal mnoho „funkcí“: možnost přidat vlastní skladbu z paměti zařízení nebo z cloudového katalogu, výběr úrovně obtížnosti, režim pro začátečníky a mnoho dalšího.
A nakonec jsem se dostal k „třešničce na dortu“...

Design

Zde začalo ztělesnění mé „vize“ hry. V první řadě jsem si začal vybírat kreslící program. Neměl jsem žádné zkušenosti s grafickým designem, takže jsem potřeboval program, který se dá snadno naučit (mimochodem Photoshop), ale zároveň flexibilní a pohodlný (Paint, omlouvám se). Volba padla na Inkscape - dobrý nástroj pro úpravu vektorových obrázků hlavně ve formátu svg.

Poté, co jsem se s tímto programem trochu seznámil, začal jsem kreslit každý prvek hry a ukládat jej v různých rozlišeních, vhodných pro různé velikosti obrazovky zařízení. Objevily se i pokusy o implementaci animace exploze not a i přes nevhodnost výsledného návrhu mě to potěšilo. Paralelně s finalizací projektu jsem samozřejmě pokračoval v práci na designu a přidávání nových barev (přechody jsou láska „na první pohled“).

DrumHero: Jak jsem vytvořil první hru v životě

První verze návrhu (dvě obrazovky, žádná animace, starý název)

DrumHero: Jak jsem vytvořil první hru v životě

Druhá verze designu (4 obrazovky, počáteční obrazovka plynule pulzuje různými barvami, přechody všude)

Obhájil jsem svůj závěrečný projekt a byl jsem velmi šťastný, když jsem zjistil, že jsem prošel kvalifikačním kolem a byl pozván do finále soutěže o přihlášku IT ŠKOLA. Do soutěže mi zbýval asi měsíc a vážně jsem přemýšlel o angažování povolanějšího člověka v oblasti designu. Hledání nebylo marné: jak se ukázalo, blízký přítel mého bratra je vynikající návrhář! Okamžitě souhlasila, že mi pomůže, a aktuální herní design je její zásluha.

DrumHero: Jak jsem vytvořil první hru v životě

Konečný design

Uveřejnění

Po dokončení práce na verzi vydání jsem okamžitě začal připravovat aplikaci k publikaci na Google Play Market. Standardní postup: získání vývojářského účtu, vytvoření stránky aplikace atd. Ale o tom tato sekce není.

Nejpřekvapivější věcí na tomto příběhu jsou statistiky stahování. Zpočátku se počet stažení DrumHero postupně a téměř rovnoměrně zvyšoval v některých evropských zemích, USA a zemích SNS, ale uběhl měsíc a počet stažení dosáhl 100 000 stažení! Zajímavostí je, že většina stahování pochází z Indonésie.

Závěr

DrumHero je můj první seriózní projekt, kde jsem se naučil programovat. Přivedl mě nejen do celoruského finále soutěže projektu SAMSUNG IT SCHOOL, ale také mi dal spoustu zkušeností v grafickém designu, GameDev, interakci se službou Play Market a mnoho dalšího.

DrumHero: Jak jsem vytvořil první hru v životě

Samozřejmě nyní ve hře vidím mnoho nedostatků, i když dnes počet stažení dosáhl téměř 200 000. Moje plány jsou vydání nové verze, jsou nápady, jak zvýšit stabilitu, zlepšit hratelnost a zvýšit počet stažení.

FAQ:
SAMSUNG IT SCHOOL je bezplatný denní doplňkový vzdělávací program pro studenty středních škol, který funguje ve 25 městech Ruska.
Absolventský projekt studentů je mobilní aplikace. Může to být hra, sociální aplikace, plánovač, cokoliv chtějí.
Na školení se můžete hlásit od září 2019 na webové stránky programy.


Zdroj: www.habr.com

Přidat komentář