DrumHero: come ho realizzato il primo gioco della mia vita

Quest'anno il programma socio-educativo IT SCHOOL SAMSUNG compie 5 anni (leggi su IT SCHOOL qui), e in questa occasione abbiamo invitato i nostri laureati a parlare di sé e della loro esperienza nella creazione delle loro applicazioni mobili. Crediamo che con tanto desiderio tutti possano raggiungere il successo!

Il primo ospite di questo tipo in questa sezione è stato Shamil Magomedov, diplomato nel 2017 alla SAMSUNG IT SCHOOL, ora studente presso MIEM NRU HSE. Shamil, grazie mille per aver dedicato del tempo a scrivere questo articolo, nonostante i tuoi impegni!

Ciao a tutti!
Oggi vorrei parlare di come sono passato dall'essere "ammesso con riserva" alla SAMSUNG IT SCHOOL a finalista nel concorso di sviluppo mobile tutto russo grazie al gioco DrumHero.

DrumHero: come ho realizzato il primo gioco della mia vita

Sfondo

Sono entrato nella SCUOLA DI IT quando ero al 10° anno. Fin dai primi giorni di formazione sono rimasto indietro rispetto agli altri ragazzi, e questo era prevedibile anche prima dell'inizio del corso (lo dimostrano i miei punteggi orribilmente bassi agli esami di ammissione). Tutti questi principi di programmazione, la struttura della piattaforma Android e il linguaggio Java, come capirli?

Fortunatamente, avevo tutto ciò di cui avevo bisogno per padroneggiare con successo le capacità di sviluppo: una voglia sconfinata di andare avanti e non fermarmi.

Dedicando molto tempo ai compiti, rimanendo costantemente fino a tardi dopo le lezioni con l'insegnante Vladimir Vladimirovich Ilyin (sono stato incredibilmente fortunato con lui), ho iniziato ad adattarmi al ritmo veloce dell'apprendimento e a pensare al mio progetto di laurea.

DrumHero: come ho realizzato il primo gioco della mia vita

Con l'insegnante - V.V. Ilyin

Cerca un'idea

Molte persone pensano che quando si crea un progetto, che sia una startup o qualcosa di piccolo per acquisire esperienza, tutta la difficoltà risieda nello sviluppo: scrivere un sacco di codice, imparare nuove librerie, testare costantemente - orrore! Credetemi, questo non è affatto vero. Ho ragionato esattamente allo stesso modo finché io stesso non mi sono trovato di fronte alla necessità di scegliere e realizzare un'idea; si è rivelata una delle fasi più difficili.

La cosa più difficile nella scelta di un'idea nella fase iniziale dell'apprendimento è determinare la complessità dell'implementazione: per molto tempo non sono riuscito a trovare un'applicazione che potessi fare e allo stesso tempo piacermi.

Volevo soprattutto scrivere un gioco musicale, ma i dubbi sulle mie capacità si sono messi davvero in mezzo. Sembrava che non fosse possibile portare a termine il lavoro, e per questo motivo ho cambiato più volte scelta: biliardo mobile, bowling, runner, ecc. Alla fine, ho imparato una lezione da questo: sorgeranno sempre delle difficoltà, indipendentemente dall'idea dell'applicazione, e quindi la cosa più importante è scegliere quello che ti piace e arrivare alla fine.

DrumHero: come ho realizzato il primo gioco della mia vita

Mi è sempre piaciuto il gioco Guitar Hero

Implementazione della logica del gioco

L'idea di base dietro app come Guitar Hero è toccare lo schermo a ritmo di musica.
Innanzitutto ho iniziato a implementare la logica del gioco:

  1. Create classi di note, pulsanti e strisce lungo le quali si sposteranno le note.
  2. Ho posizionato il canvas sull'intero schermo dell'applicazione e su di esso ho già descritto la posizione degli oggetti delle classi create.
  3. Implementato il lancio simultaneo di un file mp3 di una canzone e di una serie di note ottenute dal database e voilà! Le prime bozze del gioco sono già sul mio smartphone :)

DrumHero: come ho realizzato il primo gioco della mia vita

Prima versione dei giochi

Sì, sembra “impressionante”, ma era quasi sufficiente per testare il gioco! L'ultimo passaggio necessario è stato l'elenco delle note della canzone e ho dovuto dedicare molto tempo alla sua implementazione.
Il principio è abbastanza semplice: utilizzando i valori della tabella del database, il programma crea oggetti della classe “Note” e aggiunge le note risultanti all'array. La tabella è composta da due colonne:

  • numero di riga da 1 a 4 su cui deve andare la nota e
  • l'ora in cui dovrebbe apparire sullo schermo.

Perché ho passato molto tempo se tutto è così semplice? Per popolare questo database!
Sfortunatamente, a quel tempo non riuscivo a capire come automatizzare il processo per ottenere gli spartiti nel formato di cui avevo bisogno da un file mp3 della canzone, quindi ho dovuto compilare manualmente queste colonne a orecchio.

DrumHero: come ho realizzato il primo gioco della mia vita

Il processo di riempimento del database con note

Questo metodo mi ha permesso di iniziare presto a sviluppare e testare il gioco, ma era chiaro che dovevo inventare qualcosa di diverso. Qui mi ha aiutato molto il mio insegnante, Ilyin Vladimir Vladimirovich, che ha parlato dell'esistenza del formato MIDI, ne ha spiegato la struttura e mi ha aiutato a capire la libreria che avevo trovato per lavorare con i file MIDI.

La bellezza di questo formato è che in esso ogni strumento è già una traccia separata su cui si trovano determinate "note". In questo modo puoi scorrere facilmente tutte le note e, a seconda della traccia e del tempo, aggiungerle automaticamente al database. Questa è una proprietà molto importante, perché è grazie ad essa che sono riuscito a risolvere il problema dei giochi di questo genere: l'impossibilità di aggiungere le mie canzoni. È vero, il formato MIDI ha un grosso svantaggio: il suono (ricordiamo tutti le melodie nei giochi retrò, giusto?).

Migliorando gradualmente il gameplay, ho portato il programma a uno stato completamente funzionante, ho aggiunto molte "funzionalità": la possibilità di aggiungere la tua canzone dalla memoria del dispositivo o da un catalogo cloud, scelta del livello di difficoltà, modalità principiante e molto altro.
E finalmente sono arrivato alla “ciliegina sulla torta”...

disegno

È qui che è iniziata l'incarnazione della mia "visione" del gioco. Prima di tutto ho iniziato a scegliere un programma di disegno. Non avevo alcuna esperienza nel campo della progettazione grafica, quindi avevo bisogno di un programma che fosse facile da imparare (Photoshop, tra l'altro), ma anche flessibile e conveniente (Paint, scusate). La scelta è caduta su Inkscape, un buon strumento per modificare immagini vettoriali, principalmente nel formato SVG.

Avendo acquisito maggiore familiarità con questo programma, ho iniziato a disegnare ogni elemento del gioco e a salvarlo in diverse risoluzioni, adatte alle diverse dimensioni dello schermo del dispositivo. Ci sono stati anche tentativi di implementare un'animazione dell'esplosione di note e, nonostante l'inadeguatezza del risultato ottenuto, sono rimasto soddisfatto. Naturalmente, parallelamente alla finalizzazione del progetto, ho continuato a lavorare sul design, aggiungendo nuovi colori (le sfumature sono amore “a prima vista”).

DrumHero: come ho realizzato il primo gioco della mia vita

Prima versione del design (due schermi, nessuna animazione, vecchio nome)

DrumHero: come ho realizzato il primo gioco della mia vita

Seconda versione del design (4 schermi, lo schermo iniziale pulsa dolcemente con colori diversi, sfumature ovunque)

Ho difeso il mio progetto finale e sono stato molto felice quando ho scoperto di aver superato il turno di qualificazione e di essere stato invitato alla finale del concorso di candidatura IT SCHOOL. Mancava circa un mese prima del concorso e ho pensato seriamente di assumere una persona più professionale nel campo del design. La ricerca non è stata vana: a quanto pare, il caro amico di mio fratello è un eccellente designer! Ha immediatamente accettato di aiutarmi e il suo merito è l'attuale design del gioco.

DrumHero: come ho realizzato il primo gioco della mia vita

Progettazione finale

Pubblicazione

Dopo aver completato il lavoro sulla versione di rilascio, ho subito iniziato a preparare la domanda per la pubblicazione su Google Play Market. Procedura standard: acquisizione di un account sviluppatore, creazione di una pagina di applicazione, ecc. Ma questa sezione non riguarda questo.

La cosa più sorprendente in questa storia sono le statistiche di download. Inizialmente, il numero di download di DrumHero è aumentato gradualmente e quasi in modo uniforme in alcuni paesi europei, negli Stati Uniti e nei paesi della CSI, ma è passato un mese e il numero di download ha raggiunto i 100 download! Un fatto interessante è che la maggior parte dei download proveniva dall'Indonesia.

conclusione

DrumHero è il mio primo progetto serio in cui ho imparato a programmare. Non solo mi ha portato alla finale tutta russa del concorso del progetto SAMSUNG IT SCHOOL, ma mi ha anche dato molta esperienza nella progettazione grafica, GameDev, interazione con il servizio Play Market e molto altro.

DrumHero: come ho realizzato il primo gioco della mia vita

Certo, ora vedo molti difetti nel gioco, anche se oggi il numero di download ha raggiunto quasi 200, i miei piani sono di rilasciare una nuova versione, ci sono idee su come aumentare la stabilità, migliorare il gameplay e aumentare il numero di download.

Informazioni:
SAMSUNG IT SCHOOL è un programma educativo aggiuntivo gratuito a tempo pieno per studenti delle scuole superiori, attivo in 25 città della Russia.
Il progetto di laurea degli studenti è un'applicazione mobile. Potrebbe essere un gioco, un'app social, un pianificatore, qualunque cosa vogliano.
Puoi candidarti per la formazione da settembre 2019 all'indirizzo sito web programma.


Fonte: habr.com

Aggiungi un commento