Tänä vuonna sosiaali- ja koulutusohjelma IT-KOULU SAMSUNG täyttää 5 vuotta (lue IT-KOULU
Ensimmäinen tällainen vieras tässä osiossa oli Shamil Magomedov, vuonna 2017 valmistunut SAMSUNG IT SCHOOL, nyt opiskelija MIEM NRU HSE:ssä. Shamil, paljon kiitoksia, että käytit aikaa tämän artikkelin kirjoittamiseen kiireisestä aikataulustasi huolimatta!
Hei kaikille!
Tänään haluan puhua siitä, kuinka päädyin "ehdollisesti hyväksytyistä" SAMSUNG IT SCHOOL -kouluun pelin ansiosta finalistiksi All-Russian mobiilikehityskilpailussa.
esihistoria
Menin IT-KOULUUN kun olin 10. luokalla. Jo ensimmäisistä koulutuspäivistä lähtien jäin muista tyypeistä jälkeen, ja tämä oli ennakoitavissa jo ennen kurssin alkua (tämän osoittivat hirvittävän alhaiset pääsykoepisteet). Kaikki nämä ohjelmointiperiaatteet, Android-alustan rakenne ja Java-kieli, kuinka ymmärtää kaikki?
Onneksi minulla oli kaikki mitä tarvitsin menestyäkseni kehitystaitojen hallitsemiseen: rajaton halu mennä eteenpäin eikä pysähtyä.
Viettäen paljon aikaa läksyihin, pysyen jatkuvasti myöhässä oppituntien jälkeen opettaja Vladimir Vladimirovich Iljinin kanssa (minulla oli uskomattoman onnekas hänen kanssaan), aloin sopeutua nopeaan oppimistahtiin ja miettiä valmistumisprojektiani.
Opettajan kanssa - V.V. Ilyin
Etsi idea
Monet ihmiset ajattelevat, että projektia luotaessa, olipa kyseessä startup tai jotain pientä kokemuksen hankkimiseksi, kaikki vaikeudet piilevät kehityksessä: koodinipun kirjoittaminen, uusien kirjastojen oppiminen, jatkuva testaus - kauhua! Usko minua, tämä ei ole ollenkaan totta. Päättelin täsmälleen samalla tavalla, kunnes itse kohtasin tarpeen valita ja toteuttaa idea; se osoittautui yhdeksi vaikeimmista vaiheista.
Vaikeinta idean valinnassa oppimisen alkuvaiheessa on toteuttamisen monimutkaisuuden määrittäminen: pitkään aikaan en voinut keksiä sovellusta, jota voisin tehdä ja samalla pitää.
Ennen kaikkea halusin kirjoittaa musiikkipelin, mutta epäilykset kyvyistäni todella häiritsivät. Näytti siltä, että työtä ei olisi mahdollista suorittaa loppuun, ja tästä syystä muutin valintaani useammin kuin kerran: mobiilibiljardi, keilailu, juoksija jne. Lopulta opin tästä yhden läksyn: vaikeuksia tulee aina eteen, riippumatta sovellusideasta, ja siksi tärkeintä on valita mistä pidät ja mennä loppuun.
Olen aina pitänyt Guitar Hero -pelistä
Pelilogiikan toteutus
Guitar Heron kaltaisten sovellusten perusideana on napauttaa näyttöä musiikin rytmiin.
Ensinnäkin aloin toteuttaa pelilogiikkaa:
- Luotiin nuottiluokkia, painikkeita ja raitoja, joita pitkin nuotit liikkuvat.
- Laitoin kankaan koko sovelluksen näytölle ja kuvasin siinä jo luotujen luokkien objektien sijainnit.
- Toteutettu samanaikainen käynnistäminen mp3-tiedoston kappaleen ja joukko muistiinpanoja, jotka saatiin tietokannasta ja voila! Pelin ensimmäiset luonnokset ovat jo älypuhelimessani :)
Ensimmäinen versio pelistä
Kyllä, se näyttää "vaikuttavalta", mutta se riitti melkein pelin testaamiseen! Viimeinen välttämätön askel oli kappaleen nuottien luettelo, ja jouduin käyttämään paljon aikaa sen toteuttamiseen.
Periaate on melko yksinkertainen: tietokantataulukon arvojen avulla ohjelma luo "Note"-luokan objektit ja lisää tuloksena olevat huomautukset taulukkoon. Taulukko koostuu kahdesta sarakkeesta:
- rivinumero 1-4, johon nuotin tulee mennä ja
- aika, jolloin sen pitäisi ilmestyä näytölle.
Miksi vietin paljon aikaa, jos kaikki on niin yksinkertaista? Täyttääksesi tämän tietokannan!
Valitettavasti en tuolloin kyennyt automatisoimaan kappaleen mp3-tiedostosta nuottien saamista haluamaani muotoon, joten minun piti täyttää nämä sarakkeet manuaalisesti korvalla.
Tietokannan täyttäminen muistiinpanoilla
Tällä menetelmällä pystyin aloittamaan pelin kehittämisen ja testaamisen varhaisessa vaiheessa, mutta oli selvää, että minun piti keksiä jotain muuta. Tässä minua auttoi paljon opettajani Iljin Vladimir Vladimirovitš, joka puhui MIDI-formaatin olemassaolosta, selitti sen rakennetta ja auttoi minua selvittämään löytämäni kirjaston MIDI-tiedostojen kanssa työskentelemiseen.
Tämän muodon kauneus on, että siinä jokainen instrumentti on jo erillinen raita, jolla tietyt "nuotit" sijaitsevat. Näin voit helposti selata kaikki muistiinpanot ja raidasta ja ajasta riippuen lisätä ne automaattisesti tietokantaan. Tämä on erittäin tärkeä ominaisuus, koska sen ansiosta pystyin ratkaisemaan tämän tyylilajin pelien ongelman: kyvyttömyys lisätä omia kappaleitani. Totta, MIDI-formaatilla on suuri haitta - ääni (me kaikki muistamme melodiat retropeleissä, eikö niin?).
Vähitellen parantaen pelin kulkua, toin ohjelman täysin toimivaan tilaan, lisäsin monia "ominaisuuksia": mahdollisuus lisätä oman kappaleen laitteen muistista tai pilviluettelosta, vaikeustason valinta, aloittelijatila ja paljon muuta.
Ja lopuksi pääsin "kirsikka kakun päälle"...
Suunnittelu
Tästä alkoi pelin "visioni" ruumiillistuma. Ensinnäkin aloin valita piirustusohjelman. Minulla ei ollut kokemusta graafisesta suunnittelusta, joten tarvitsin ohjelman, joka oli helppo oppia (Photoshop, muuten), mutta myös joustava ja kätevä (Paint, anteeksi). Valinta osui Inkscapelle - hyvä työkalu vektorikuvien muokkaamiseen, pääasiassa svg-muodossa.
Tutustuttuani tähän ohjelmaan hieman, aloin piirtää pelin jokaista elementtiä ja tallentaa sen eri resoluutioilla, jotka sopivat eri laitteille. Myös nuottien räjähdysmäistä animaatiota yritettiin toteuttaa, ja tuloksena olevan suunnittelun sopimattomuudesta huolimatta olin tyytyväinen. Tietenkin samaan aikaan projektin viimeistelyn kanssa jatkoin suunnittelutyötä lisäämällä uusia värejä (gradientit ovat rakkautta "ensi silmäyksellä").
Ensimmäinen versio suunnittelusta (kaksi näyttöä, ei animaatiota, vanha nimi)
Suunnittelun toinen versio (4 näyttöä, ensimmäinen näyttö sykkii sujuvasti eri väreillä, kaltevuudet kaikkialla)
Puolustin opinnäytetyötäni ja olin erittäin iloinen, kun sain selville, että olin läpäissyt karsintakierroksen ja minut kutsuttiin IT SCHOOL -hakukilpailun finaaliin. Minulla oli noin kuukausi aikaa kilpailuun ja ajattelin vakavasti palkata ammattimaisempaa henkilöä suunnittelun alalle. Haku ei ollut turha: kuten kävi ilmi, veljeni läheinen ystävä on erinomainen suunnittelija! Hän suostui heti auttamaan minua, ja nykyinen pelisuunnittelu on hänen ansiotaan.
Lopullinen suunnittelu
Julkaisu
Valmistuttuani julkaisuversion parissa aloin heti valmistelemaan hakemusta julkaistavaksi Google Play Marketissa. Vakiomenettely: kehittäjätilin hankkiminen, sovellussivun luominen jne. Mutta tämä jakso ei koske sitä.
Yllättävin asia tässä tarinassa on lataustilastot. Aluksi DrumHero-latausten määrä kasvoi vähitellen ja lähes tasaisesti joissakin Euroopan maissa, USA:ssa ja IVY-maissa, mutta kului kuukausi ja latausten määrä oli 100 000 latausta! Mielenkiintoinen tosiasia on, että suurin osa latauksista tuli Indonesiasta.
Johtopäätös
DrumHero on ensimmäinen vakava projektini, jossa opin ohjelmoimaan. Hän ei vain tuonut minut SAMSUNG IT SCHOOL -projektikilpailun koko venäläiseen finaaliin, vaan antoi minulle myös paljon kokemusta graafisesta suunnittelusta, GameDevistä, vuorovaikutuksesta Play Market -palvelun kanssa ja paljon muuta.
Tietenkin nyt näen pelissä monia puutteita, vaikka tänään latausten määrä on saavuttanut lähes 200 000. Suunnitelmissani on julkaista uusi versio, on ideoita vakauden lisäämiseksi, pelattavuuden parantamiseksi ja latausten määrän lisäämiseksi.
Ohje:
SAMSUNG IT SCHOOL on ilmainen kokopäiväinen lisäkoulutusohjelma lukiolaisille, ja se toimii 25 kaupungissa Venäjällä.
Opiskelijoiden valmistumisprojekti on mobiilisovellus. Se voi olla peli, sosiaalinen sovellus, suunnittelija, mitä tahansa he haluavat.
Koulutukseen voi hakea syyskuusta 2019 alkaen osoitteessa
Lähde: will.com