DrumHero: Hvordan lavede jeg det første spil i mit liv

I år fylder det sociale og pædagogiske program IT SKOLE SAMSUNG 5 år (læs om IT SKOLE her), og ved denne lejlighed inviterede vi vores kandidater til at fortælle om sig selv og deres erfaring med at skabe deres mobilapplikationer. Vi tror på, at med en masse lyst kan alle opnå succes!

Den første sådan gæst i denne sektion var Shamil Magomedov, en 2017 kandidat fra SAMSUNG IT SCHOOL, nu studerende ved MIEM NRU HSE. Shamil, mange tak fordi du tog dig tid til at skrive denne artikel på trods af din travle tidsplan!

Hej alle!
I dag vil jeg gerne fortælle om, hvordan jeg gik fra at være "betinget optaget" på SAMSUNG IT SCHOOL til en finalist i den all-russiske mobiludviklingskonkurrence takket være spillet DrumHero.

DrumHero: Hvordan lavede jeg det første spil i mit liv

forhistorie

Jeg kom på IT-SKOLE, da jeg gik i 10. klasse. Fra de allerførste træningsdage haltede jeg bagefter de andre fyre, og det var forudsigeligt allerede før kursets start (det vidnedes af mine forfærdeligt lave adgangseksamensresultater). Alle disse programmeringsprincipper, strukturen af ​​Android-platformen og Java-sproget, hvordan forstår man det hele?

Heldigvis havde jeg alt, hvad jeg havde brug for for succesfuldt at mestre udviklingsevner: et grænseløst ønske om at komme videre og ikke stoppe.

Da jeg brugte meget tid på lektier, blev konstant sent efter undervisningen med lærer Vladimir Vladimirovich Ilyin (jeg var utrolig heldig med ham), begyndte jeg at tilpasse mig det hurtige læringstempo og tænke på mit afgangsprojekt.

DrumHero: Hvordan lavede jeg det første spil i mit liv

Med lærer - V.V. Ilyin

Søg efter en idé

Mange mennesker tror, ​​at når man laver et projekt, hvad enten det er en startup eller noget mindre for at få erfaring, ligger al vanskeligheden i udviklingen: at skrive en masse kode, lære nye biblioteker, konstant teste - rædsel! Tro mig, det er slet ikke sandt. Jeg ræsonnerede på nøjagtig samme måde, indtil jeg selv stod over for behovet for at vælge og implementere en idé, det viste sig at være en af ​​de sværeste stadier.

Det sværeste ved at vælge en idé i den indledende fase af læring er at bestemme kompleksiteten af ​​implementeringen: I lang tid kunne jeg ikke komme med en applikation, som jeg kunne lave og samtidig kunne lide.

Mest af alt ville jeg skrive et musikalsk spil, men tvivl om mine evner kom virkelig i vejen. Det så ud til, at det ikke ville være muligt at afslutte jobbet, og derfor ændrede jeg mit valg mere end én gang: mobil billard, bowling, løber osv. I sidste ende lærte jeg en lektie af dette: vanskeligheder vil altid opstå, uanset ansøgningsideen, og derfor det vigtigste er at vælge, hvad du kan lide og gå til slutningen.

DrumHero: Hvordan lavede jeg det første spil i mit liv

Jeg har altid godt kunne lide spillet Guitar Hero

Implementering af spillogik

Den grundlæggende idé bag apps som Guitar Hero er at trykke på skærmen i takt med musikken.
Først og fremmest begyndte jeg at implementere spillogikken:

  1. Lavet klasser af noter, knapper og striber, som noderne vil bevæge sig langs.
  2. Jeg placerede lærredet på hele applikationens skærm, og på det har jeg allerede beskrevet placeringen af ​​objekter i de oprettede klasser.
  3. Implementeret den samtidige lancering af en mp3-fil af en sang og en række noter hentet fra databasen og voila! De første udkast til spillet er allerede på min smartphone :)

DrumHero: Hvordan lavede jeg det første spil i mit liv

Første version af spillet

Ja, det ser "imponerende ud", men det var næsten nok til at teste spillet! Det sidste nødvendige trin var listen over noder til sangen, og jeg skulle bruge meget tid på at arbejde på dens implementering.
Princippet er ret simpelt: ved hjælp af værdierne i databasetabellen opretter programmet objekter af klassen "Note" og tilføjer de resulterende noter til arrayet. Tabellen består af to kolonner:

  • linjenummer fra 1 til 4, som sedlen skal på og
  • det tidspunkt, hvor det skal vises på skærmen.

Hvorfor brugte jeg meget tid, hvis alt er så enkelt? At udfylde denne database!
Desværre kunne jeg på det tidspunkt ikke finde ud af, hvordan jeg kunne automatisere processen med at få noderne i det format, jeg havde brug for, fra en mp3-fil af sangen, og jeg var derfor nødt til manuelt at udfylde disse kolonner efter gehør.

DrumHero: Hvordan lavede jeg det første spil i mit liv

Processen med at fylde databasen med noter

Denne metode gav mig mulighed for tidligt at begynde at udvikle og teste spillet, men det var klart, at jeg skulle finde på noget andet. Her hjalp min lærer, Ilyin Vladimir Vladimirovich, mig meget, som talte om MIDI-formatets eksistens, forklarede dets struktur og hjalp mig med at finde ud af det bibliotek, jeg havde fundet til at arbejde med MIDI-filer.

Skønheden ved dette format er, at hvert instrument i det allerede er et separat spor, hvorpå visse "noter" er placeret. På denne måde kan du nemt gå gennem alle noterne og, afhængigt af sporet og tidspunktet, automatisk tilføje dem til databasen. Dette er en meget vigtig egenskab, fordi det var takket være det, at jeg var i stand til at løse problemet med spil af denne genre: manglende evne til at tilføje mine egne sange. Sandt nok har MIDI-formatet en stor ulempe - lyd (vi husker alle melodier i retrospil, ikke?).

Gradvist forbedret gameplayet, bragte jeg programmet til en fuldt fungerende tilstand, tilføjede mange "funktioner": evnen til at tilføje din egen sang fra enhedens hukommelse eller fra et skykatalog, valg af sværhedsgrad, begyndertilstand og meget mere.
Og endelig kom jeg til "kirsebær på kagen"...

design

Det var her, legemliggørelsen af ​​min "vision" af spillet begyndte. Først og fremmest begyndte jeg at vælge et tegneprogram. Jeg havde ingen erfaring med grafisk design, så jeg havde brug for et program, der var nemt at lære (forresten Photoshop), men også fleksibelt og praktisk (Paint, sorry). Valget faldt på Inkscape – et godt værktøj til redigering af vektorbilleder, primært i svg-formatet.

Efter at være blevet lidt mere fortrolig med dette program, begyndte jeg at tegne hvert element i spillet og gemme det i forskellige opløsninger, der passer til forskellige enhedsskærmstørrelser. Der var også forsøg på at implementere en animation af eksplosionen af ​​noter, og på trods af uegnetheden af ​​det resulterende design, var jeg glad. Parallelt med at afslutte projektet fortsatte jeg selvfølgelig med at arbejde på designet og tilføjede nye farver (gradienter er kærlighed "ved første blik").

DrumHero: Hvordan lavede jeg det første spil i mit liv

Første version af designet (to skærme, ingen animation, gammelt navn)

DrumHero: Hvordan lavede jeg det første spil i mit liv

Anden version af designet (4 skærme, den indledende skærm pulserer jævnt med forskellige farver, gradienter overalt)

Jeg forsvarede mit afsluttende projekt og blev meget glad, da jeg fandt ud af, at jeg havde bestået kvalifikationsrunden og blev inviteret til finalen i IT-SKOLE ansøgningskonkurrencen. Jeg havde cirka en måned tilbage før konkurrencen, og jeg overvejede seriøst at ansætte en mere professionel person inden for design. Søgningen var ikke forgæves: som det viste sig, er min brors nære ven en fremragende designer! Hun gik straks med til at hjælpe mig, og det nuværende spildesign er hendes kredit.

DrumHero: Hvordan lavede jeg det første spil i mit liv

Endeligt design

publikation

Efter at have afsluttet arbejdet med udgivelsesversionen, begyndte jeg straks at forberede applikationen til offentliggørelse på Google Play Market. Standardprocedure: anskaffelse af en udviklerkonto, oprettelse af en applikationsside osv. Men dette afsnit handler ikke om det.

Det mest overraskende i denne historie er downloadstatistikkerne. Til at begynde med steg antallet af DrumHero-downloads gradvist og næsten jævnt i nogle europæiske lande, USA og CIS-landene, men der gik en måned, og antallet af downloads nåede op på 100 downloads! Et interessant faktum er, at de fleste af downloads kom fra Indonesien.

Konklusion

DrumHero er mit første seriøse projekt, hvor jeg lærte at programmere. Han bragte mig ikke kun til den all-russiske finale i SAMSUNG IT SCHOOL projektkonkurrencen, men han gav mig også en masse erfaring inden for grafisk design, GameDev, interaktion med Play Market-tjenesten og meget mere.

DrumHero: Hvordan lavede jeg det første spil i mit liv

Nu ser jeg selvfølgelig mange mangler i spillet, selvom antallet af downloads i dag er nået op på næsten 200. Mine planer er at udgive en ny version, der er ideer til hvordan man kan øge stabiliteten, forbedre gameplayet og øge antallet af downloads.

Help:
SAMSUNG IT SCHOOL er et gratis fuldtids ekstra uddannelsesprogram for gymnasieelever, der opererer i 25 byer i Rusland.
De studerendes afgangsprojekt er en mobilapplikation. Det kunne være et spil, en social app, en planlægger, hvad end de vil.
Du kan søge uddannelse fra september 2019 kl Online programmer.


Kilde: www.habr.com

Tilføj en kommentar