DrumHero: Kako sam napravio prvu igricu u životu

Ove godine društveno-edukativni program IT ŠKOLA SAMSUNG puni 5 godina (pročitajte o IT ŠKOLI здесь), te smo ovom prilikom pozvali naše maturante da govore o sebi i svojim iskustvima u izradi svojih mobilnih aplikacija. Vjerujemo da uz puno želje svatko može postići uspjeh!

Prvi takav gost u ovoj sekciji bio je Shamil Magomedov, diplomant SAMSUNG IT SCHOOL 2017., sada student na MIEM NRU HSE. Shamile, puno ti hvala što si odvojio vrijeme da napišeš ovaj članak, unatoč zauzetosti!

Pozdrav!
Danas bih želio razgovarati o tome kako sam od "uvjetno primljenog" u SAMSUNG IT SCHOOL postao finalist Sveruskog natjecanja u mobilnom razvoju zahvaljujući igri DrumHero.

DrumHero: Kako sam napravio prvu igricu u životu

prapovijest

Upisao sam se u IT ŠKOLU kada sam bio 10. razred. Već od prvih dana treninga zaostajao sam za ostalim dečkima, a to se moglo predvidjeti i prije početka tečaja (tome su svjedočile moje užasno niske ocjene na prijemnom ispitu). Svi ti programski principi, struktura Android platforme i Java jezik, kako to sve razumjeti?

Srećom, imala sam sve što mi je bilo potrebno za uspješno svladavanje razvojnih vještina: bezgraničnu želju da idem naprijed i da ne stanem.

Posvećujući puno vremena domaćim zadaćama, stalno ostajući do kasno nakon nastave kod učitelja Vladimira Vladimiroviča Iljina (imao sam nevjerojatnu sreću s njim), počeo sam se prilagođavati brzom tempu učenja i razmišljati o svom diplomskom projektu.

DrumHero: Kako sam napravio prvu igricu u životu

S učiteljem - V.V. Ilyin

Potražite ideju

Mnogi ljudi misle da pri stvaranju projekta, bio to startup ili nešto malo za stjecanje iskustva, sva poteškoća leži u razvoju: pisanje hrpe koda, učenje novih biblioteka, stalno testiranje - užas! Vjerujte, to uopće nije istina. Na potpuno isti način razmišljao sam sve dok se i sam nisam suočio s potrebom odabira i realizacije ideje; pokazalo se da je to jedna od najtežih faza.

Najteža stvar u odabiru ideje u početnoj fazi učenja je određivanje složenosti implementacije: dugo nisam mogao smisliti aplikaciju koju bih mogao raditi i koja mi se u isto vrijeme sviđa.

Najviše od svega sam želio napisati glazbenu igru, ali sumnje u moje sposobnosti stvarno su me ispriječile. Činilo se da neće biti moguće završiti posao i iz tog razloga sam više puta mijenjao svoj izbor: mobilni bilijar, kuglanje, trkač itd. Na kraju sam iz ovoga izvukao jednu lekciju: poteškoće će se uvijek pojaviti, bez obzira na ideju primjene, i stoga najvažnije je izabrati ono što voliš i ići do kraja.

DrumHero: Kako sam napravio prvu igricu u životu

Uvijek mi se sviđala igra Guitar Hero

Implementacija logike igre

Osnovna ideja iza aplikacija kao što je Guitar Hero je tapkanje po ekranu u ritmu glazbe.
Prije svega, počeo sam implementirati logiku igre:

  1. Kreirane klase bilješki, gumbi i pruge duž kojih će se bilješke kretati.
  2. Postavio sam platno na cijeli zaslon aplikacije i na njemu sam već opisao lokaciju objekata kreiranih klasa.
  3. Implementirano je istovremeno pokretanje mp3 datoteke pjesme i niza nota dobivenih iz baze podataka i voila! Prvi nacrti igrice su već na mom pametnom telefonu :)

DrumHero: Kako sam napravio prvu igricu u životu

Prva verzija igrice

Da, izgleda “impresivno”, ali bilo je gotovo dovoljno za testiranje igre! Posljednji neophodan korak bila je lista nota za pjesmu, na čiju sam realizaciju morala potrošiti dosta vremena radeći.
Princip je prilično jednostavan: koristeći vrijednosti tablice baze podataka, program stvara objekte klase "Note" i dodaje rezultirajuće bilješke u niz. Tablica se sastoji od dva stupca:

  • broj retka od 1 do 4 na koji treba ići bilješka i
  • vrijeme u kojem bi se trebao pojaviti na ekranu.

Zašto sam potrošio puno vremena ako je sve tako jednostavno? Za popunjavanje ove baze podataka!
Nažalost, u to vrijeme nisam mogao smisliti kako automatizirati proces dobivanja notnog zapisa u formatu koji mi je trebao iz mp3 datoteke pjesme, pa sam morao ručno ispunjavati te stupce na sluh.

DrumHero: Kako sam napravio prvu igricu u životu

Proces popunjavanja baze podataka bilješkama

Ova mi je metoda omogućila da rano počnem razvijati i testirati igru, ali bilo je jasno da moram smisliti nešto drugačije. Ovdje mi je puno pomogao moj učitelj, Ilyin Vladimir Vladimirovich, koji je govorio o postojanju MIDI formata, objasnio njegovu strukturu i pomogao mi shvatiti biblioteku koju sam pronašao za rad s MIDI datotekama.

Ljepota ovog formata je u tome što je u njemu svaki instrument već zasebna staza na kojoj se nalaze određene "note". Na ovaj način možete jednostavno pregledavati sve bilješke i, ovisno o pjesmi i vremenu, automatski ih dodati u bazu podataka. Ovo je vrlo važno svojstvo, jer sam zahvaljujući njemu uspio riješiti problem igara ovog žanra: nemogućnost dodavanja vlastitih pjesama. Istina, MIDI format ima veliki nedostatak - zvuk (svi se sjećamo melodija u retro igrama, zar ne?).

Postupno poboljšavajući igrivost, doveo sam program u potpuno radno stanje, dodao sam mnoge "značajke": mogućnost dodavanja vlastite pjesme iz memorije uređaja ili iz kataloga u oblaku, odabir razine težine, način rada za početnike i još mnogo toga.
I konačno sam došla do “trešnje na torti”...

Dizajn

Tu je počelo utjelovljenje moje “vizije” igre. Prije svega, počeo sam birati program za crtanje. Nisam imao nikakvog iskustva u grafičkom dizajnu, pa mi je trebao program koji je jednostavan za naučiti (Photoshop, usput), ali i fleksibilan i praktičan (Paint, oprostite). Izbor je pao na Inkscape - dobar alat za uređivanje vektorskih slika, uglavnom u svg formatu.

Nakon što sam se malo bolje upoznao s ovim programom, počeo sam crtati svaki element igre i spremati ga u različitim rezolucijama, prikladnim za različite veličine zaslona uređaja. Bilo je i pokušaja implementacije animacije eksplozije nota, i unatoč neprikladnosti dobivenog dizajna, bio sam zadovoljan. Naravno, paralelno s finalizacijom projekta, nastavio sam raditi na dizajnu, dodajući nove boje (gradijenti su ljubav „na prvi pogled“).

DrumHero: Kako sam napravio prvu igricu u životu

Prva verzija dizajna (dva ekrana, bez animacije, stari naziv)

DrumHero: Kako sam napravio prvu igricu u životu

Druga verzija dizajna (4 zaslona, ​​početni zaslon glatko pulsira različitim bojama, gradijenti posvuda)

Obranila sam završni rad i bila sam jako sretna kada sam saznala da sam prošla kvalifikacijski krug i pozvana u finale natječaja za prijavu IT ŠKOLE. Ostalo mi je oko mjesec dana do natječaja i ozbiljno sam razmišljao o tome da zaposlim neku stručniju osobu u području dizajna. Potraga nije bila uzaludna: kako se ispostavilo, bliski prijatelj mog brata izvrstan je dizajner! Odmah mi je pristala pomoći, a trenutni dizajn igre je njezina zasluga.

DrumHero: Kako sam napravio prvu igricu u životu

Konačni dizajn

objavljivanje

Nakon završetka rada na izdanju verzije, odmah sam počeo pripremati aplikaciju za objavu na Google Play Marketu. Standardni postupak: dobivanje računa razvojnog programera, izrada stranice aplikacije itd. Ali ovaj odjeljak nije o tome.

Ono što najviše iznenađuje u ovoj priči je statistika preuzimanja. U početku je broj preuzimanja DrumHeroa postupno i gotovo ravnomjerno rastao u nekim europskim zemljama, SAD-u i zemljama ZND-a, no prošlo je mjesec dana i broj preuzimanja dosegao je 100 preuzimanja! Zanimljiva je činjenica da većina preuzimanja dolazi iz Indonezije.

Zaključak

DrumHero je moj prvi ozbiljniji projekt na kojem sam naučio programirati. Ne samo da me doveo do sveruskog finala natječaja za projekte SAMSUNG IT SCHOOL, već mi je dao i puno iskustva u grafičkom dizajnu, GameDev-u, interakciji s uslugom Play Market i još mnogo toga.

DrumHero: Kako sam napravio prvu igricu u životu

Naravno, sada vidim mnoge nedostatke u igri, iako je danas broj preuzimanja dosegao gotovo 200 000. Moji planovi su izdati novu verziju, postoje ideje kako povećati stabilnost, poboljšati igranje i povećati broj preuzimanja.

Pomoć:
SAMSUNG IT SCHOOL besplatni je program dodatnog obrazovanja s punim radnim vremenom za srednjoškolce koji djeluje u 25 gradova Rusije.
Diplomski rad učenika je mobilna aplikacija. To može biti igra, društvena aplikacija, planer, što god žele.
Za obuku se možete prijaviti od rujna 2019. na Online Program.


Izvor: www.habr.com

Dodajte komentar