DrumHero: Hvordan jeg laget det første spillet i livet mitt

I år fyller det sosiale og pedagogiske programmet IT SKOLE SAMSUNG 5 år (les om IT SKOLE her), og ved denne anledningen inviterte vi nyutdannede til å snakke om seg selv og deres erfaring med å lage sine mobilapplikasjoner. Vi tror at med mye lyst kan alle oppnå suksess!

Den første slike gjest i denne delen var Shamil Magomedov, en 2017-utdannet ved SAMSUNG IT SCHOOL, nå student ved MIEM NRU HSE. Shamil, tusen takk for at du tok deg tid til å skrive denne artikkelen, til tross for din travle timeplan!

Hei!
I dag vil jeg gjerne snakke om hvordan jeg gikk fra å bli "betinget tatt opp" til SAMSUNG IT SCHOOL til en finalist i den all-russiske mobilutviklingskonkurransen takket være spillet DrumHero.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

forhistorie

Jeg gikk inn på IT-SKOLEN da jeg gikk i 10. klasse. Helt fra de første treningsdagene lå jeg bak de andre gutta, og dette var forutsigbart allerede før kursstart (dette ble bevist av mine fryktelig lave opptaksprøver). Alle disse programmeringsprinsippene, strukturen til Android-plattformen og Java-språket, hvordan forstå det hele?

Heldigvis hadde jeg alt jeg trengte for å lykkes med å mestre utviklingsferdigheter: et grenseløst ønske om å gå videre og ikke stoppe.

Vi brukte mye tid på lekser, og ble konstant sent etter timene med lærer Vladimir Vladimirovich Ilyin (jeg var utrolig heldig med ham), begynte jeg å tilpasse meg det raske læringstakten og tenke på avgangsprosjektet mitt.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Med lærer - V.V. Ilyin

Søk etter en idé

Mange tror at når man lager et prosjekt, enten det er en oppstart eller noe lite for å få erfaring, ligger alle vanskelighetene i utviklingen: å skrive en haug med kode, lære nye biblioteker, hele tiden teste - skrekk! Tro meg, dette er ikke sant i det hele tatt. Jeg resonnerte på nøyaktig samme måte helt til jeg selv ble møtt med behovet for å velge og gjennomføre en idé, det viste seg å være en av de vanskeligste stadiene.

Det vanskeligste med å velge en idé i det innledende læringsstadiet er å bestemme kompleksiteten til implementeringen: i lang tid kunne jeg ikke komme opp med en applikasjon jeg kunne gjøre og samtidig like.

Mest av alt ønsket jeg å skrive et musikalsk spill, men tvil om mine evner kom virkelig i veien. Det så ut til at det ikke ville være mulig å fullføre jobben, og av denne grunn endret jeg valget mitt mer enn én gang: mobil biljard, bowling, løper, etc. Til slutt lærte jeg en lekse av dette: vanskeligheter vil alltid oppstå, uavhengig av applikasjonsideen, og derfor det viktigste er å velge hva du liker og gå til slutten.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Jeg har alltid likt spillet Guitar Hero

Implementering av spilllogikk

Den grunnleggende ideen bak apper som Guitar Hero er å trykke på skjermen til musikkens rytme.
Først av alt begynte jeg å implementere spilllogikken:

  1. Laget klasser av notater, knapper og striper som notatene vil bevege seg langs.
  2. Jeg plasserte lerretet på hele skjermen til applikasjonen, og på den beskrev jeg allerede plasseringen av objektene til de opprettede klassene.
  3. Implementerte den samtidige lanseringen av en mp3-fil av en sang og en rekke notater hentet fra databasen og voila! De første utkastene til spillet er allerede på smarttelefonen min :)

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Første versjon av spillet

Ja, det ser "imponerende ut", men det var nesten nok til å teste spillet! Det siste nødvendige trinnet var notelisten til sangen, og jeg måtte bruke mye tid på å jobbe med implementeringen.
Prinsippet er ganske enkelt: ved å bruke verdiene til databasetabellen, oppretter programmet objekter i klassen "Note" og legger de resulterende notatene til matrisen. Tabellen består av to kolonner:

  • linjenummer fra 1 til 4 som lappen skal gå på og
  • tidspunktet det skal vises på skjermen.

Hvorfor brukte jeg mye tid hvis alt er så enkelt? For å fylle denne databasen!
Dessverre kunne jeg på det tidspunktet ikke finne ut hvordan jeg skulle automatisere prosessen med å få notene i formatet jeg trengte fra en mp3-fil av sangen, og derfor måtte jeg manuelt fylle ut disse kolonnene etter gehør.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Prosessen med å fylle databasen med notater

Denne metoden gjorde at jeg kunne begynne å utvikle og teste spillet tidlig, men det var tydelig at jeg måtte finne på noe annet. Her hjalp læreren min, Ilyin Vladimir Vladimirovich, meg mye, som snakket om eksistensen av MIDI-formatet, forklarte strukturen og hjalp meg med å finne ut biblioteket jeg hadde funnet for å jobbe med MIDI-filer.

Det fine med dette formatet er at hvert instrument allerede er et eget spor der visse "noter" er plassert. På denne måten kan du enkelt gå gjennom alle notatene og, avhengig av spor og tidspunkt, automatisk legge dem til databasen. Dette er en veldig viktig egenskap, fordi det var takket være det at jeg klarte å løse problemet med spill av denne sjangeren: manglende evne til å legge til mine egne sanger. Riktignok har MIDI-formatet en stor ulempe - lyd (vi husker alle melodier i retrospill, ikke sant?).

Gradvis forbedret spillingen, brakte jeg programmet til en fullt fungerende tilstand, la til mange "funksjoner": muligheten til å legge til din egen sang fra enhetens minne eller fra en skykatalog, valg av vanskelighetsgrad, nybegynnermodus og mye mer.
Og til slutt kom jeg til "kirsebær på kaken"...

Design

Det var her legemliggjørelsen av min "visjon" av spillet begynte. Først og fremst begynte jeg å velge et tegneprogram. Jeg hadde ingen erfaring med grafisk design, så jeg trengte et program som var enkelt å lære (forresten Photoshop), men også fleksibelt og praktisk (Paint, sorry). Valget falt på Inkscape – et godt verktøy for redigering av vektorbilder, hovedsakelig i svg-formatet.

Etter å ha blitt litt mer kjent med dette programmet, begynte jeg å tegne hvert element i spillet og lagre det i forskjellige oppløsninger, egnet for forskjellige enhetsskjermstørrelser. Det var også forsøk på å implementere en animasjon av eksplosjonen av notater, og til tross for uegnetheten til det resulterende designet, var jeg fornøyd. Selvfølgelig, parallelt med å fullføre prosjektet, fortsatte jeg å jobbe med designet, og la til nye farger (gradienter er kjærlighet "ved første blikk").

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Første versjon av designet (to skjermer, ingen animasjon, gammelt navn)

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Andre versjon av designet (4 skjermer, startskjermen pulserer jevnt med forskjellige farger, gradienter overalt)

Jeg forsvarte mitt avsluttende prosjekt og ble veldig glad da jeg fikk vite at jeg hadde bestått kvalifiseringsrunden og ble invitert til finalen i IT-SKOLE-søknadskonkurransen. Jeg hadde omtrent en måned igjen før konkurransen, og jeg tenkte seriøst på å ansette en mer profesjonell person innen design. Søket var ikke forgjeves: som det viste seg, er min brors nære venn en utmerket designer! Hun gikk umiddelbart med på å hjelpe meg, og det nåværende spilldesignet er hennes kreditt.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Endelig design

Publikasjon

Etter å ha fullført arbeidet med utgivelsesversjonen, begynte jeg umiddelbart å forberede applikasjonen for publisering på Google Play Market. Standard prosedyre: skaffe en utviklerkonto, opprette en applikasjonsside osv. Men denne delen handler ikke om det.

Det mest overraskende i denne historien er nedlastingsstatistikken. Til å begynne med økte antallet DrumHero-nedlastinger gradvis og nesten jevnt over noen europeiske land, USA og CIS-landene, men det gikk en måned og antallet nedlastinger nådde 100 000 nedlastinger! Et interessant faktum er at de fleste nedlastingene kom fra Indonesia.

Konklusjon

DrumHero er mitt første seriøse prosjekt der jeg lærte å programmere. Han brakte meg ikke bare til den all-russiske finalen i SAMSUNG IT SCHOOL-prosjektkonkurransen, men ga meg også mye erfaring innen grafisk design, GameDev, interaksjon med Play Market-tjenesten og mye mer.

DrumHero: Hvordan jeg laget det første spillet i livet mitt

Nå ser jeg selvfølgelig mange mangler ved spillet, selv om antallet nedlastinger i dag har nådd nesten 200 000. Planene mine er å gi ut en ny versjon, det er ideer om hvordan man kan øke stabiliteten, forbedre spillingen og øke antallet nedlastinger.

Hjelp:
SAMSUNG IT SCHOOL er et gratis fulltids tilleggsutdanningsprogram for videregående skoleelever, som opererer i 25 byer i Russland.
Studentenes avgangsprosjekt er en mobilapplikasjon. Det kan være et spill, en sosial app, en planlegger, hva enn de vil.
Du kan søke opplæring fra september 2019 kl nettsted программы.


Kilde: www.habr.com

Legg til en kommentar