DrumHero: Kako sam napravio prvu igru ​​u životu

Ove godine društveno-obrazovni program IT ŠKOLA SAMSUNG puni 5 godina (čitajte o IT ŠKOLI ovdje), te smo ovom prilikom pozvali naše maturante da pričaju o sebi i svom iskustvu u kreiranju svojih mobilnih aplikacija. Vjerujemo da uz veliku želju svako može postići uspjeh!

Prvi takav gost u ovoj rubrici bio je Šamil Magomedov, diplomac SAMSUNG IT ŠKOLE 2017. godine, sada student MIEM NRU HSE. Shamil, puno ti hvala što si odvojio vrijeme da napišeš ovaj članak, uprkos zauzetosti!

Pozdrav svima!
Danas bih želeo da pričam o tome kako sam od „uslovnog primljenog“ u SAMSUNG IT ŠKOLU do finalistu sveruskog takmičenja za razvoj mobilnih uređaja zahvaljujući igrici DrumHero.

DrumHero: Kako sam napravio prvu igru ​​u životu

prapovijest

Upisao sam IT ŠKOLU kada sam bio 10. razred. Od prvih dana treninga zaostajao sam za ostalim momcima, a to je bilo predvidljivo i prije početka kursa (o tome su svjedočili i moji užasno niski rezultati na prijemnim ispitima). Svi ovi principi programiranja, struktura Android platforme i Java jezik, kako sve to razumjeti?

Na sreću, imao sam sve što mi je bilo potrebno za uspješno savladavanje razvojnih vještina: bezgraničnu želju da idem naprijed i ne stanem.

Posvetivši puno vremena domaćim zadaćama, stalno ostajajući do kasno nakon nastave kod učitelja Vladimira Vladimiroviča Iljina (imao sam nevjerovatnu 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 igru ​​u životu

Sa učiteljem - V.V. Ilyin

Potražite ideju

Mnogi ljudi misle da prilikom kreiranja projekta, bilo da se radi o startupu ili nečemu malom za stjecanje iskustva, sva poteškoća leži u razvoju: pisanje hrpe koda, učenje novih biblioteka, stalno testiranje - horor! Vjerujte mi, ovo uopće nije istina. Na potpuno isti način razmišljao sam sve dok se i sam nisam suočio sa potrebom da izaberem i implementiram ideju, ispostavilo 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 želeo da napišem muzičku igru, ali sumnje u moje sposobnosti su me zaista isprečile. Činilo se da posao neće biti moguće završiti i iz tog razloga sam više puta mijenjao izbor: mobilni bilijar, kuglanje, trkač itd. Na kraju, naučio sam jednu lekciju iz ovoga: poteškoće će se uvek pojaviti, bez obzira na ideju aplikacije, i stoga najvažnije je da izaberete šta volite i idite do kraja.

DrumHero: Kako sam napravio prvu igru ​​u životu

Uvijek mi se sviđala igra Guitar Hero

Implementacija logike igre

Osnovna ideja koja stoji iza aplikacija kao što je Guitar Hero je da dodirnete ekran u ritmu muzike.
Prije svega, počeo sam implementirati logiku igre:

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

DrumHero: Kako sam napravio prvu igru ​​u životu

Prva verzija igre

Da, izgleda “impresivno”, ali bilo je skoro dovoljno za testiranje igre! Poslednji neophodan korak bila je lista nota za pesmu i morao sam da provedem dosta vremena radeći na njenoj implementaciji.
Princip je prilično jednostavan: koristeći vrijednosti tablice baze podataka, program kreira objekte klase "Note" i dodaje rezultirajuće bilješke u niz. Tabela se sastoji od dvije kolone:

  • broj reda od 1 do 4 na koji treba da ide napomena 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, tada nisam mogao da smislim kako da automatizujem proces dobijanja notnog zapisa u formatu koji mi je bio potreban iz mp3 fajla pesme, pa sam morao ručno da popunjavam ove kolone po sluhu.

DrumHero: Kako sam napravio prvu igru ​​u životu

Proces popunjavanja baze podataka bilješkama

Ova metoda mi je omogućila da rano počnem da razvijam i testiram igru, ali je bilo jasno da moram smisliti nešto drugačije. Tu mi je puno pomogao moj učitelj Iljin Vladimir Vladimirovič, koji je pričao o postojanju MIDI formata, objasnio njegovu strukturu i pomogao mi da shvatim biblioteku koju sam pronašao za rad sa MIDI datotekama.

Ljepota ovog formata je u tome što je u njemu svaki instrument već zasebna numera na kojoj se nalaze određene "note". Na ovaj način možete lako proći kroz sve bilješke i, ovisno o stazi i vremenu, automatski ih dodati u bazu podataka. Ovo je veoma važno svojstvo, jer sam zahvaljujući njemu uspeo da rešim problem igara ovog žanra: nemogućnost dodavanja sopstvenih pesama. Istina, MIDI format ima veliki nedostatak - zvuk (svi se sjećamo melodija u retro igricama, zar ne?).

Postepeno poboljšavajući igru, doveo sam program u potpuno radno stanje, dodao mnoge "karakteristike": mogućnost dodavanja vlastite pjesme iz memorije uređaja ili iz kataloga u oblaku, izbor nivoa težine, početni način rada i još mnogo toga.
I konačno sam došla do “trešnje na torti”...

Dizajn

Tu je počelo otelotvorenje 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 bio lak za učenje (Photoshop, inače), ali i fleksibilan i praktičan (Paint, izvini). 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, pogodnim za različite veličine ekrana uređaja. Bilo je i pokušaja implementacije animacije eksplozije nota, i uprkos neprikladnosti rezultirajućeg dizajna, bio sam zadovoljan. Naravno, paralelno sa finalizacijom projekta, nastavio sam da radim na dizajnu, dodajući nove boje (gradijenti su ljubav „na prvi pogled“).

DrumHero: Kako sam napravio prvu igru ​​u životu

Prva verzija dizajna (dva ekrana, bez animacije, staro ime)

DrumHero: Kako sam napravio prvu igru ​​u životu

Druga verzija dizajna (4 ekrana, početni ekran glatko pulsira različitim bojama, gradijenti posvuda)

Odbranio sam svoj završni projekat i bio sam veoma sretan kada sam saznao da sam prošao kvalifikacionu rundu i pozvan u finale konkursa IT ŠKOLE. Ostalo mi je oko mesec dana do konkursa i ozbiljno sam razmišljao da zaposlim profesionalniju osobu iz oblasti dizajna. Potraga nije bila uzaludna: kako se ispostavilo, bliski prijatelj mog brata je odličan dizajner! Odmah je pristala da mi pomogne, a trenutni dizajn igre je njena zasluga.

DrumHero: Kako sam napravio prvu igru ​​u životu

Finalni dizajn

Publikacija

Nakon što sam završio rad na izdanju verzije, odmah sam počeo pripremati aplikaciju za objavljivanje na Google Play Marketu. Standardna procedura: preuzimanje naloga programera, kreiranje stranice aplikacije itd. Ali ovaj dio nije o tome.

Ono što najviše iznenađuje u ovoj priči je statistika preuzimanja. U početku se broj preuzimanja DrumHero-a postepeno i gotovo ravnomjerno povećavao u nekim evropskim zemljama, SAD-u i zemljama ZND-a, ali je prošao mjesec dana i broj preuzimanja je dostigao 100 preuzimanja! Zanimljiva činjenica je da je većina preuzimanja došla iz Indonezije.

zaključak

DrumHero je moj prvi ozbiljan projekat u kojem sam naučio programirati. Ne samo da me je doveo do sveruskog finala projekta SAMSUNG IT SCHOOL, već mi je dao i puno iskustva u grafičkom dizajnu, GameDev-u, interakciji sa uslugom Play Market i još mnogo toga.

DrumHero: Kako sam napravio prvu igru ​​u životu

Naravno, sada vidim mnoge nedostatke u igrici, iako je danas broj preuzimanja dostigao skoro 200 000. Moji planovi su da objavim novu verziju, postoje ideje kako da povećam stabilnost, poboljšam gameplay i povećam broj preuzimanja.

Pomoć:
SAMSUNG IT SCHOOL je besplatni program dodatnog obrazovanja za srednjoškolce sa punim radnim vremenom koji djeluje u 25 gradova Rusije.
Diplomski projekat studenata je mobilna aplikacija. To može biti igra, društvena aplikacija, planer, šta god žele.
Za obuku se možete prijaviti od septembra 2019. godine na adresi site programi.


izvor: www.habr.com

Dodajte komentar