DrumHero: Kuidas ma oma elu esimese mängu tegin

Sel aastal saab 5-aastaseks sotsiaal- ja haridusprogramm IT KOOL SAMSUNG (loe IT-KOOLI siin) ning sel puhul kutsusime oma lõpetajaid rääkima endast ja oma kogemusest oma mobiilirakenduste loomisel. Usume, et suure sooviga võib igaüks edu saavutada!

Esimene selline külaline selles sektsioonis oli Shamil Magomedov, 2017. aastal SAMSUNGI IT-KOOLI lõpetanud, praegu MIEM NRU HSE üliõpilane. Shamil, tänan teid väga, et leidsite aega selle artikli kirjutamiseks, hoolimata teie hõivatud ajakavast!

Tere kõigile!
Täna tahaksin rääkida sellest, kuidas jõudsin tänu mängule SAMSUNGI IT-KOOLI “tingimisi vastuvõtmisest” ülevenemaalise mobiiliarenduse konkursi finalistiks. DrumHero.

DrumHero: Kuidas ma oma elu esimese mängu tegin

eelajalugu

ITKOOLI astusin 10. klassis. Juba esimestest koolituspäevadest alates jäin teistest kuttidest maha ja seda oli etteaimatav juba enne kursuse algust (sellest andsid tunnistust minu jube madalad sisseastumiseksamite hinded). Kõik need programmeerimispõhimõtted, Androidi platvormi ülesehitus ja Java keel, kuidas sellest kõigest aru saada?

Õnneks oli mul olemas kõik vajalik arendusoskuste edukaks omandamiseks: piiritu soov edasi liikuda ja mitte peatuda.

Pühendades palju aega kodutöödele, jäädes pidevalt pärast tundi hiljaks õpetaja Vladimir Vladimirovitš Iljiniga (mul vedas temaga uskumatult), hakkasin kohanema kiire õppimistempoga ja mõtlema oma lõputööle.

DrumHero: Kuidas ma oma elu esimese mängu tegin

Koos õpetajaga - V.V. Iljin

Otsige ideed

Paljud arvavad, et projekti loomisel, olgu selleks siis startup või midagi väikest kogemuste omandamiseks, peitub kogu raskus arenduses: hunniku koodi kirjutamine, uute teekide õppimine, pidev testimine – õudus! Uskuge mind, see pole üldse tõsi. Täpselt samamoodi arutlesin, kuni seisin ise silmitsi vajadusega idee valida ja ellu viia, see osutus üheks keerulisemaks etapiks.

Kõige keerulisem idee valikul õppimise algfaasis on teostuse keerukuse kindlaksmääramine: pikka aega ei suutnud ma välja mõelda rakendust, mida saaksin teha ja samal ajal meeldida.

Üle kõige tahtsin kirjutada muusikalist mängu, kuid kahtlused mu võimetes jäid tõesti vahele. Tundus, et tööd ei saagi lõpetada ja sel põhjusel muutsin oma valikut rohkem kui korra: mobiilne piljard, bowling, jooksja jne. Lõpuks õppisin sellest ühe õppetunni: raskusi tuleb alati ette, olenemata rakenduse ideest ja seetõttu kõige tähtsam on valida, mis sulle meeldib, ja minna lõpuni.

DrumHero: Kuidas ma oma elu esimese mängu tegin

Mulle on alati meeldinud mäng Guitar Hero

Mänguloogika rakendamine

Selliste rakenduste nagu Guitar Hero põhiidee on puudutada ekraani muusika rütmis.
Kõigepealt alustasin mänguloogika juurutamisega:

  1. Loodud nootide klassid, nupud ja triibud, mida mööda märkmed liiguvad.
  2. Panin lõuendi kogu rakenduse ekraanile ja sellel kirjeldasin juba loodud klasside objektide asukohti.
  3. Rakendati üheaegselt loo mp3-faili ja andmebaasist saadud nootide massiivi käivitamine ja voila! Mängu esimesed mustandid on juba minu nutitelefonis :)

DrumHero: Kuidas ma oma elu esimese mängu tegin

Mängu esimene versioon

Jah, see näeb muljetavaldav välja, kuid mängu testimiseks piisas sellest peaaegu! Viimane vajalik samm oli loo nootide nimekiri ja selle teostuse kallal pidin palju aega kulutama.
Põhimõte on üsna lihtne: andmebaasi tabeli väärtusi kasutades loob programm klassi “Märkus” objektid ja lisab saadud märkmed massiivi. Tabel koosneb kahest veerust:

  • rea number 1 kuni 4, millele noot peaks minema ja
  • kellaaeg, millal see peaks ekraanile ilmuma.

Miks ma kulutasin palju aega, kui kõik on nii lihtne? Selle andmebaasi täitmiseks!
Kahjuks ei saanud ma tol ajal aru, kuidas automatiseerida noodide hankimist vajalikus vormingus loo mp3-failist ja seetõttu pidin need veerud käsitsi kõrva järgi täitma.

DrumHero: Kuidas ma oma elu esimese mängu tegin

Andmebaasi märkmetega täitmise protsess

See meetod võimaldas mul mängu varakult arendama ja testima hakata, kuid oli selge, et pean välja mõtlema midagi muud. Siin aitas mind palju õpetaja Iljin Vladimir Vladimirovitš, kes rääkis MIDI-vormingu olemasolust, selgitas selle ülesehitust ja aitas välja mõelda raamatukogu, mille ma MIDI-failidega töötamiseks leidsin.

Selle formaadi ilu seisneb selles, et selles on iga instrument juba eraldi lugu, millel asuvad teatud "noodid". Nii saate hõlpsalt kõik noodid läbi sirvida ning olenevalt rajast ja ajast need automaatselt andmebaasi lisada. See on väga oluline omadus, sest just tänu sellele sain lahendada selle žanri mängude probleemi: võimetus lisada oma laule. Tõsi, MIDI formaadil on suur miinus – heli (retromängudes me ju kõik mäletame meloodiaid, eks?).

Mängu järk-järgult täiustades viisin programmi täielikult töötavasse olekusse, lisasin palju "funktsioone": võimalus lisada oma lugu seadme mälust või pilvekataloogist, raskusastme valik, algaja režiim ja palju muud.
Ja lõpuks jõudsin "kirss tordil" juurde...

Disain

Siit sai alguse minu mängu "nägemuse" kehastus. Kõigepealt hakkasin valima joonistusprogrammi. Mul puudus graafilise disaini alal kogemus, seega vajasin programmi, mida oleks lihtne õppida (Photoshop, muide), aga ka paindlik ja mugav (Paint, vabandust). Valik langes Inkscape’ile – hea tööriist peamiselt svg formaadis vektorpiltide redigeerimiseks.

Olles selle programmiga veidi lähemalt tuttavaks saanud, hakkasin iga mängu elementi joonistama ja salvestama erinevate eraldusvõimetega, mis sobivad erinevatele seadme ekraanisuurustele. Üritati rakendada ka nootide plahvatuse animatsiooni ja vaatamata saadud kujunduse ebasobivusele jäin rahule. Loomulikult jätkasin paralleelselt projekti viimistlemisega tööd disaini kallal, lisades uusi värve (gradiendid on armastus "esimesest silmapilgust").

DrumHero: Kuidas ma oma elu esimese mängu tegin

Kujunduse esimene versioon (kaks ekraani, ilma animatsioonita, vana nimi)

DrumHero: Kuidas ma oma elu esimese mängu tegin

Disaini teine ​​versioon (4 ekraani, esialgne ekraan pulseerib sujuvalt erinevate värvidega, kalded kõikjal)

Kaitsesin lõputööd ja olin väga õnnelik, kui sain teada, et olen läbinud kvalifikatsioonivooru ja kutsutud IT KOOLI taotlusvõistluse finaali. Mul oli konkursini jäänud umbes kuu ja mõtlesin tõsiselt professionaalsema inimese palkamisele disainivaldkonnas. Otsing polnud asjata: nagu selgus, on mu venna lähedane sõber suurepärane disainer! Ta oli kohe nõus mind aitama ja praegune mängukujundus on tema tunnustus.

DrumHero: Kuidas ma oma elu esimese mängu tegin

Lõplik disain

Avaldamine

Pärast väljalaskeversiooni kallal töötamist alustasin kohe rakenduse ettevalmistamist avaldamiseks Google Play turul. Tavaprotseduur: arendajakonto hankimine, rakenduse lehe loomine jne. Kuid see osa ei räägi sellest.

Kõige üllatavam selles loos on allalaadimise statistika. Algul kasvas DrumHero allalaadimiste arv järk-järgult ja peaaegu ühtlaselt mõnes Euroopa riigis, USA-s ja SRÜ riikides, kuid möödus kuu ja allalaadimiste arv ulatus 100 000 allalaadimiseni! Huvitav fakt on see, et suurem osa allalaadimistest pärines Indoneesiast.

Järeldus

DrumHero on minu esimene tõsine projekt, kus õppisin programmeerima. Ta ei toonud mind mitte ainult SAMSUNGI IT KOOLI projektikonkursi ülevenemaalisesse finaali, vaid andis mulle ka palju kogemusi graafilise disaini, GameDevi, Play Marketi teenusega suhtlemise ja palju muu vallas.

DrumHero: Kuidas ma oma elu esimese mängu tegin

Muidugi näen nüüd mängul palju puudujääke, kuigi tänaseks on allalaadimiste arv jõudnud ligi 200 000. Plaanid on välja anda uus versioon, on ideid, kuidas stabiilsust tõsta, mängulisust parandada ja allalaadimiste arvu suurendada.

FAQ:
SAMSUNG IT-KOOL on tasuta täiskoormusega täiendõppeprogramm keskkooliõpilastele, mis tegutseb 25 Venemaa linnas.
Õpilaste lõputöö on mobiilirakendus. See võib olla mäng, sotsiaalne rakendus, planeerija, mis iganes nad tahavad.
Koolitusele saab kandideerida alates septembrist 2019 kl veebisait programmid.


Allikas: www.habr.com

Lisa kommentaar