DrumHero: Cum am făcut primul joc din viața mea

Anul acesta programul social și educațional IT SCHOOL SAMSUNG împlinește 5 ani (citește despre IT SCHOOL aici), iar cu această ocazie i-am invitat pe absolvenții noștri să vorbească despre ei înșiși și despre experiența lor în crearea aplicațiilor lor mobile. Credem că cu multă dorință, oricine poate atinge succesul!

Primul astfel de invitat din această secțiune a fost Shamil Magomedov, absolvent al SAMSUNG IT SCHOOL în 2017, acum student la MIEM NRU HSE. Shamil, mulțumesc foarte mult că ți-ai acordat timp pentru a scrie acest articol, în ciuda programului tău încărcat!

Bună ziua tuturor!
Astăzi aș dori să vorbesc despre modul în care am trecut de la „admis condiționat” la ȘCOALA IT SAMSUNG la finalist în competiția de dezvoltare mobilă din toată Rusia datorită jocului DrumHero.

DrumHero: Cum am făcut primul joc din viața mea

preistorie

Am intrat în IT SCHOOL când eram în clasa a X-a. Încă din primele zile de antrenament, am rămas în urma celorlalți băieți, iar acest lucru era previzibil chiar înainte de începerea cursului (acest lucru a fost evidențiat de scorurile mele îngrozitor de scăzute la examenul de admitere). Toate aceste principii de programare, structura platformei Android și limbajul Java, cum să înțelegeți totul?

Din fericire, aveam tot ce aveam nevoie pentru a stăpâni cu succes abilitățile de dezvoltare: o dorință nemărginită de a merge înainte și de a nu mă opri.

Dedicând mult timp temelor, rămânând constant până târziu după orele cu profesorul Vladimir Vladimirovici Ilyin (am fost incredibil de norocos cu el), am început să mă adaptez la ritmul rapid de învățare și să mă gândesc la proiectul meu de absolvire.

DrumHero: Cum am făcut primul joc din viața mea

Cu profesor - V.V. Ilyin

Caută o idee

Mulți oameni cred că atunci când creează un proiect, fie că este un startup sau ceva mic pentru a câștiga experiență, toată dificultatea constă în dezvoltare: scrierea unei grămadă de coduri, învățarea de noi biblioteci, testarea constantă - horror! Crede-mă, acest lucru nu este deloc adevărat. Am raționat exact la fel până când eu însumi m-am confruntat cu nevoia de a alege și implementa o idee; s-a dovedit a fi una dintre cele mai dificile etape.

Cel mai dificil lucru în alegerea unei idei în stadiul inițial de învățare este determinarea complexității implementării: de mult timp nu am putut să vin cu o aplicație pe care să o fac și să îmi placă în același timp.

Cel mai mult mi-am dorit să scriu un joc muzical, dar îndoielile cu privire la abilitățile mele au fost într-adevăr în cale. Părea că nu se va putea termina treaba, iar din acest motiv mi-am schimbat alegerea de mai multe ori: biliard mobil, bowling, alergător etc. În cele din urmă, am învățat o lecție din asta: dificultățile vor apărea întotdeauna, indiferent de ideea aplicației și, prin urmare cel mai important este să alegi ce îți place și să mergi până la capăt.

DrumHero: Cum am făcut primul joc din viața mea

Intotdeauna mi-a placut jocul Guitar Hero

Implementarea logicii jocului

Ideea de bază din spatele aplicațiilor precum Guitar Hero este să atingeți ecranul în ritmul muzicii.
În primul rând, am început să implementez logica jocului:

  1. Au creat clase de note, butoane și dungi de-a lungul cărora notele se vor mișca.
  2. Am plasat pânza pe întregul ecran al aplicației și pe ea am descris deja locația obiectelor claselor create.
  3. Am implementat lansarea simultană a unui fișier mp3 al unei melodii și a unei serii de note obținute din baza de date și voila! Primele schițe ale jocului sunt deja pe smartphone-ul meu :)

DrumHero: Cum am făcut primul joc din viața mea

Prima versiune a jocului

Da, pare „impresionant”, dar a fost aproape suficient pentru a testa jocul! Ultimul pas necesar a fost lista de note pentru melodie și a trebuit să petrec mult timp lucrând la implementarea acesteia.
Principiul este destul de simplu: folosind valorile tabelului bazei de date, programul creează obiecte din clasa „Notă” și adaugă notele rezultate în matrice. Tabelul este format din două coloane:

  • numărul rândului de la 1 la 4 pe care ar trebui să meargă nota și
  • ora la care ar trebui să apară pe ecran.

De ce am petrecut mult timp dacă totul este atât de simplu? Pentru a popula această bază de date!
Din păcate, la acel moment nu puteam să-mi dau seama cum să automatizez procesul de obținere a partiturii în formatul de care aveam nevoie dintr-un fișier mp3 al cântecului, așa că a trebuit să completez manual aceste coloane după ureche.

DrumHero: Cum am făcut primul joc din viața mea

Procesul de umplere a bazei de date cu note

Această metodă mi-a permis să încep să dezvolt și să testez jocul devreme, dar era clar că trebuia să vin cu ceva diferit. Aici m-a ajutat foarte mult profesorul meu, Ilyin Vladimir Vladimirovici, care a vorbit despre existența formatului MIDI, a explicat structura acestuia și m-a ajutat să-mi dau seama care este biblioteca pe care am găsit-o pentru a lucra cu fișiere MIDI.

Frumusețea acestui format este că în el fiecare instrument este deja o pistă separată pe care se află anumite „note”. În acest fel, puteți parcurge cu ușurință toate notele și, în funcție de melodie și timp, le puteți adăuga automat în baza de date. Aceasta este o proprietate foarte importantă, deoarece datorită ei am putut să rezolv problema jocurilor de acest gen: incapacitatea de a adăuga propriile mele melodii. Adevărat, formatul MIDI are un mare dezavantaj - sunetul (toți ne amintim melodiile din jocurile retro, nu?).

Îmbunătățind treptat jocul, am adus programul într-o stare de funcționare completă, am adăugat multe „funcții”: posibilitatea de a adăuga propria melodie din memoria dispozitivului sau dintr-un catalog cloud, alegerea nivelului de dificultate, modul începător și multe altele.
Și în sfârșit am ajuns la „cireșe pe tort”...

Desen

Aici a început întruchiparea „viziunii” mele asupra jocului. În primul rând, am început să aleg un program de desen. Nu aveam nicio experiență în design grafic, așa că aveam nevoie de un program ușor de învățat (Photoshop, de altfel), dar și flexibil și comod (Paint, scuze). Alegerea a căzut pe Inkscape - un instrument bun pentru editarea imaginilor vectoriale, în principal în format svg.

Devenind puțin mai familiarizat cu acest program, am început să desenez fiecare element al jocului și să-l salvez în diferite rezoluții, potrivite pentru diferite dimensiuni ale ecranului dispozitivului. Au existat și încercări de a implementa o animație a exploziei de note și, în ciuda nepotrivirii designului rezultat, am fost mulțumit. Bineînțeles, în paralel cu finalizarea proiectului, am continuat să lucrez la design, adăugând noi culori (degradeurile sunt dragoste „la prima vedere”).

DrumHero: Cum am făcut primul joc din viața mea

Prima versiune a designului (două ecrane, fără animație, nume vechi)

DrumHero: Cum am făcut primul joc din viața mea

A doua versiune a designului (4 ecrane, ecranul inițial pulsează fără probleme cu diferite culori, degrade peste tot)

Mi-am apărat proiectul final și m-am bucurat foarte mult când am aflat că am trecut de turul de calificare și am fost invitat în finala concursului de aplicații IT SCHOOL. Mai aveam aproximativ o lună până la concurs și m-am gândit serios să angajez o persoană mai profesionistă în domeniul designului. Căutarea nu a fost în zadar: după cum s-a dovedit, prietenul apropiat al fratelui meu este un designer excelent! Ea a acceptat imediat să mă ajute, iar designul actual al jocului este meritul ei.

DrumHero: Cum am făcut primul joc din viața mea

Design final

Publicare

După finalizarea lucrărilor la versiunea de lansare, am început imediat să pregătesc aplicația pentru publicare pe Google Play Market. Procedura standard: achiziționarea unui cont de dezvoltator, crearea unei pagini de aplicație etc. Dar această secțiune nu este despre asta.

Cel mai surprinzător lucru din această poveste sunt statisticile de descărcare. La început, numărul descărcărilor DrumHero a crescut treptat și aproape uniform în unele țări europene, SUA și țările CSI, dar a trecut o lună și numărul descărcărilor a ajuns la 100 de descărcări! Un fapt interesant este că majoritatea descărcărilor au venit din Indonezia.

Concluzie

DrumHero este primul meu proiect serios în care am învățat să programez. Nu numai că m-a adus la finala în întregime rusă a competiției de proiecte SAMSUNG IT SCHOOL, dar mi-a oferit și multă experiență în design grafic, GameDev, interacțiune cu serviciul Play Market și multe altele.

DrumHero: Cum am făcut primul joc din viața mea

Desigur, acum văd multe neajunsuri în joc, deși astăzi numărul descărcărilor a ajuns la aproape 200 000. Planurile mele sunt să lansez o nouă versiune, există idei despre cum să măresc stabilitatea, să îmbunătățesc jocul și să măresc numărul de descărcări.

Ajutor:
SAMSUNG IT SCHOOL este un program gratuit de educație suplimentară cu normă întreagă pentru elevii de liceu, care operează în 25 de orașe din Rusia.
Proiectul de absolvire al studenților este o aplicație mobilă. Ar putea fi un joc, o aplicație socială, un planificator, orice vor ei.
Puteți aplica pentru formare din septembrie 2019 la On-line Program.


Sursa: www.habr.com

Adauga un comentariu