DrumHero: Hur jag gjorde det första spelet i mitt liv

I år fyller det sociala och pedagogiska programmet IT SCHOOL SAMSUNG 5 år (läs om IT SCHOOL här), och vid det här tillfället bjöd vi in ​​våra studenter att prata om sig själva och sin erfarenhet av att skapa sina mobilapplikationer. Vi tror att med mycket lust kan alla nå framgång!

Den första gästen i det här avsnittet var Shamil Magomedov, en examen från SAMSUNG IT SCHOOL 2017, nu student vid MIEM NRU HSE. Shamil, tack så mycket för att du tog dig tid att skriva den här artikeln, trots ditt fullspäckade schema!

Hej alla!
Idag skulle jag vilja prata om hur jag gick från att bli "villkorligt antagen" till SAMSUNG IT SCHOOL till en finalist i den allryska mobilutvecklingstävlingen tack vare spelet DrumHero.

DrumHero: Hur jag gjorde det första spelet i mitt liv

förhistoria

Jag gick in på IT-SKOLAN när jag gick i 10:e klass. Redan från de första dagarna av träningen släpade jag efter de andra killarna, och detta var förutsägbart redan innan kursstarten (detta bevisades av mina fruktansvärt låga poäng för antagningsprov). Alla dessa programmeringsprinciper, strukturen på Android-plattformen och Java-språket, hur ska man förstå det hela?

Lyckligtvis hade jag allt jag behövde för att framgångsrikt bemästra utvecklingsförmåga: en gränslös önskan att gå framåt och inte sluta.

Genom att ägna mycket tid åt läxor, ständigt stanna sent efter klasserna med läraren Vladimir Vladimirovich Ilyin (jag hade otroligt tur med honom), började jag anpassa mig till den snabba inlärningstakten och tänka på mitt examensprojekt.

DrumHero: Hur jag gjorde det första spelet i mitt liv

Med lärare - V.V. Ilyin

Sök efter en idé

Många tror att när man skapar ett projekt, vare sig det är en startup eller något litet för att få erfarenhet, ligger all svårighet i utvecklingen: att skriva en massa kod, lära sig nya bibliotek, ständigt testa - skräck! Tro mig, detta stämmer inte alls. Jag resonerade på exakt samma sätt tills jag själv stod inför behovet av att välja och genomföra en idé, det visade sig vara ett av de svåraste stadierna.

Det svåraste med att välja en idé i inlärningsstadiet är att bestämma komplexiteten i implementeringen: under lång tid kunde jag inte komma på en applikation som jag kunde göra och samtidigt gilla.

Mest av allt ville jag skriva ett musikaliskt spel, men tvivel om mina förmågor kom verkligen i vägen. Det verkade som att det inte skulle gå att avsluta jobbet, och av denna anledning ändrade jag mitt val mer än en gång: mobil biljard, bowling, löpare, etc. Till slut lärde jag mig en läxa av detta: svårigheter kommer alltid att uppstå, oavsett applikationsidé, och därför det viktigaste är att välja vad du gillar och gå till slutet.

DrumHero: Hur jag gjorde det första spelet i mitt liv

Jag har alltid gillat spelet Guitar Hero

Implementering av spellogik

Grundidén bakom appar som Guitar Hero är att trycka på skärmen till musikens rytm.
Först och främst började jag implementera spellogiken:

  1. Skapat klasser av anteckningar, knappar och ränder längs vilka anteckningarna kommer att röra sig.
  2. Jag placerade duken på hela skärmen i applikationen och på den beskrev jag redan platsen för objekten i de skapade klasserna.
  3. Implementerade den samtidiga lanseringen av en mp3-fil av en låt och en rad noter som erhållits från databasen och voila! De första utkasten av spelet finns redan på min smartphone :)

DrumHero: Hur jag gjorde det första spelet i mitt liv

Första versionen av spelet

Ja, det ser "imponerande ut", men det räckte nästan för att testa spelet! Det sista nödvändiga steget var notlistan för låten, och jag var tvungen att ägna mycket tid åt att arbeta med dess implementering.
Principen är ganska enkel: med hjälp av värdena i databastabellen skapar programmet objekt i klassen "Note" och lägger till de resulterande anteckningarna till arrayen. Tabellen består av två kolumner:

  • radnummer från 1 till 4 som lappen ska gå på och
  • den tidpunkt då den ska visas på skärmen.

Varför spenderade jag mycket tid om allt är så enkelt? För att fylla denna databas!
Tyvärr kunde jag vid den tiden inte räkna ut hur jag skulle automatisera processen för att få noterna i det format jag behövde från en mp3-fil av låten, så jag var tvungen att manuellt fylla i dessa kolumner efter gehör.

DrumHero: Hur jag gjorde det första spelet i mitt liv

Processen att fylla databasen med anteckningar

Den här metoden gjorde att jag kunde börja utveckla och testa spelet tidigt, men det var klart att jag behövde hitta på något annat. Här hjälpte min lärare, Ilyin Vladimir Vladimirovich, mig mycket, som pratade om MIDI-formatets existens, förklarade dess struktur och hjälpte mig att ta reda på biblioteket jag hade hittat för att arbeta med MIDI-filer.

Det fina med detta format är att varje instrument i det redan är ett separat spår där vissa "noter" finns. På så sätt kan du enkelt gå igenom alla anteckningar och, beroende på spår och tid, automatiskt lägga till dem i databasen. Detta är en mycket viktig egenskap, eftersom det var tack vare det som jag kunde lösa problemet med spel av denna genre: oförmågan att lägga till mina egna låtar. Det är sant att MIDI-formatet har en stor nackdel - ljud (vi minns alla melodier i retrospel, eller hur?).

För att gradvis förbättra spelet, tog jag programmet till ett fullt fungerande tillstånd, la till många "funktioner": möjligheten att lägga till din egen låt från enhetens minne eller från en molnkatalog, val av svårighetsnivå, nybörjarläge och mycket mer.
Och äntligen kom jag till "körsbäret på kakan"...

Design

Det var här förkroppsligandet av min "vision" av spelet började. Först och främst började jag välja ett ritprogram. Jag hade ingen erfarenhet av grafisk design, så jag behövde ett program som var lätt att lära sig (Photoshop, förresten), men också flexibelt och bekvämt (Paint, sorry). Valet föll på Inkscape – ett bra verktyg för att redigera vektorbilder, främst i svg-formatet.

Efter att ha blivit lite mer bekant med det här programmet började jag rita varje element i spelet och spara det i olika upplösningar, lämpliga för olika enhetsskärmstorlekar. Det gjordes också försök att implementera en animering av explosionen av noter, och trots olämpligheten i den resulterande designen var jag nöjd. Naturligtvis, parallellt med att slutföra projektet, fortsatte jag att arbeta med designen, lägga till nya färger (gradienter är kärlek "vid första ögonkastet").

DrumHero: Hur jag gjorde det första spelet i mitt liv

Första versionen av designen (två skärmar, ingen animation, gammalt namn)

DrumHero: Hur jag gjorde det första spelet i mitt liv

Andra versionen av designen (4 skärmar, den initiala skärmen pulserar smidigt med olika färger, gradienter överallt)

Jag försvarade mitt slutprojekt och blev väldigt glad när jag fick reda på att jag klarat kvalomgången och blev inbjuden till finalen i IT-SKOLAN-ansökningstävlingen. Jag hade ungefär en månad kvar innan tävlingen, och jag funderade seriöst på att anställa en mer professionell person inom designområdet. Sökandet var inte förgäves: som det visade sig är min brors nära vän en utmärkt designer! Hon gick genast med på att hjälpa mig, och den nuvarande speldesignen är hennes kredit.

DrumHero: Hur jag gjorde det första spelet i mitt liv

Slutlig design

publikation

Efter att ha slutfört arbetet med releaseversionen började jag omedelbart förbereda applikationen för publicering på Google Play Market. Standardprocedur: skaffa ett utvecklarkonto, skapa en applikationssida, etc. Men det här avsnittet handlar inte om det.

Det mest överraskande i den här historien är nedladdningsstatistiken. Till en början ökade antalet DrumHero-nedladdningar gradvis och nästan jämnt i vissa europeiska länder, USA och OSS-länderna, men en månad gick och antalet nedladdningar nådde 100 000 nedladdningar! Ett intressant faktum är att de flesta nedladdningarna kom från Indonesien.

Slutsats

DrumHero är mitt första seriösa projekt där jag lärde mig att programmera. Han tog mig inte bara till den allryska finalen i projekttävlingen SAMSUNG IT SCHOOL, utan gav mig också mycket erfarenhet av grafisk design, GameDev, interaktion med tjänsten Play Market och mycket mer.

DrumHero: Hur jag gjorde det första spelet i mitt liv

Nu ser jag förstås många brister i spelet, även om antalet nedladdningar idag har nått nästan 200 000. Mina planer är att släppa en ny version, det finns idéer om hur man kan öka stabiliteten, förbättra spelandet och öka antalet nedladdningar.

Hjälp:
SAMSUNG IT SCHOOL är ett gratis heltidsutbildningsprogram för gymnasieelever, verksamt i 25 städer i Ryssland.
Studenternas examensarbete är en mobilapplikation. Det kan vara ett spel, en social app, en planerare, vad de vill.
Du kan söka utbildning från september 2019 kl Online program.


Källa: will.com

Lägg en kommentar