DrumHero: Com vaig fer el primer joc de la meva vida

Aquest any el programa social i educatiu IT SCHOOL SAMSUNG compleix 5 anys (llegiu sobre IT SCHOOL aquí), i en aquesta ocasió vam convidar els nostres graduats a parlar d'ells mateixos i de la seva experiència en la creació de les seves aplicacions mòbils. Creiem que amb moltes ganes tothom pot aconseguir l'èxit!

El primer convidat d'aquesta secció va ser Shamil Magomedov, graduat l'any 2017 de SAMSUNG IT SCHOOL, ara estudiant de MIEM NRU HSE. Shamil, moltes gràcies per dedicar-te el temps a escriure aquest article, malgrat la teva agenda atapeïda!

Hola a tots!
Avui m'agradaria parlar de com vaig passar de ser "admès condicionalment" a l'escola d'informàtica de SAMSUNG a finalista de la competició de desenvolupament mòbil de tota Rússia gràcies al joc. DrumHero.

DrumHero: Com vaig fer el primer joc de la meva vida

prehistòria

Vaig entrar a l'ESCOLA INFORMÀTICA quan anava a 10è de primària. Des dels primers dies d'entrenament, em vaig quedar endarrerit amb els altres nois, i això era previsible fins i tot abans de l'inici del curs (això es va demostrar amb les meves puntuacions d'accés horriblement baixes). Tots aquests principis de programació, l'estructura de la plataforma Android i el llenguatge Java, com entendre-ho tot?

Afortunadament, tenia tot el que necessitava per dominar amb èxit les habilitats de desenvolupament: un desig il·limitat d'avançar i no parar.

Dedicant molt de temps als deures, quedant constantment tard després de les classes amb el professor Vladimir Vladimirovich Ilyin (vaig tenir molta sort amb ell), vaig començar a adaptar-me al ritme ràpid d'aprenentatge i a pensar en el meu projecte de graduació.

DrumHero: Com vaig fer el primer joc de la meva vida

Amb el professor - V.V. Ilyin

Busca una idea

Molta gent pensa que quan es crea un projecte, ja sigui una startup o alguna cosa petita per guanyar experiència, tota la dificultat rau en el desenvolupament: escriure un munt de codi, aprendre noves biblioteques, provar constantment: horror! Creieu-me, això no és cert. Vaig raonar exactament de la mateixa manera fins que jo mateix em vaig trobar davant la necessitat d'escollir i implementar una idea, va resultar ser una de les etapes més difícils.

El més difícil a l'hora d'escollir una idea en l'etapa inicial de l'aprenentatge és determinar la complexitat de la implementació: durant molt de temps no vaig poder crear una aplicació que pogués fer i alhora que m'agradava.

Sobretot volia escriure un joc musical, però els dubtes sobre les meves habilitats realment es van posar en el camí. Semblava que no seria possible acabar la feina, i per això vaig canviar més d'una vegada la meva opció: billar mòbil, bitlles, corredor, etc. Al final, vaig aprendre una lliçó d'això: les dificultats sempre sorgiran, independentment de la idea d'aplicació, i per tant el més important és triar el que t'agrada i anar fins al final.

DrumHero: Com vaig fer el primer joc de la meva vida

Sempre m'ha agradat el joc Guitar Hero

Implementació de la lògica del joc

La idea bàsica darrere d'aplicacions com Guitar Hero és tocar la pantalla al ritme de la música.
En primer lloc, vaig començar a implementar la lògica del joc:

  1. S'han creat classes de notes, botons i ratlles al llarg de les quals es mouran les notes.
  2. Vaig col·locar el llenç a tota la pantalla de l'aplicació i sobre ell ja vaig descriure la ubicació dels objectes de les classes creades.
  3. S'ha implementat el llançament simultani d'un fitxer mp3 d'una cançó i una sèrie de notes obtingudes de la base de dades i voilà! Els primers esborranys del joc ja estan al meu telèfon intel·ligent :)

DrumHero: Com vaig fer el primer joc de la meva vida

Primera versió del joc

Sí, sembla "impressionant", però gairebé n'hi havia prou per provar el joc! L'últim pas necessari va ser la llista de notes per a la cançó, i vaig haver de dedicar molt de temps a treballar en la seva implementació.
El principi és bastant simple: utilitzant els valors de la taula de la base de dades, el programa crea objectes de la classe "Nota" i afegeix les notes resultants a la matriu. La taula consta de dues columnes:

  • número de línia de l'1 al 4 on ha d'anar la nota i
  • l'hora en què hauria d'aparèixer a la pantalla.

Per què he passat molt de temps si tot és tan senzill? Per omplir aquesta base de dades!
Malauradament, en aquell moment no vaig poder esbrinar com automatitzar el procés d'aconseguir la partitura en el format que necessitava a partir d'un fitxer mp3 de la cançó i, per tant, vaig haver d'omplir manualment aquestes columnes d'oïda.

DrumHero: Com vaig fer el primer joc de la meva vida

El procés d'omplir la base de dades amb notes

Aquest mètode em va permetre començar a desenvolupar i provar el joc des del principi, però estava clar que havia d'aconseguir alguna cosa diferent. Aquí em va ajudar molt el meu professor, Ilyin Vladimir Vladimirovich, que va parlar de l'existència del format MIDI, va explicar la seva estructura i em va ajudar a esbrinar la biblioteca que havia trobat per treballar amb fitxers MIDI.

La bellesa d'aquest format és que en ell cada instrument ja és una pista separada en la qual es troben determinades "notes". D'aquesta manera, podeu recórrer fàcilment totes les notes i, depenent de la pista i l'hora, afegir-les automàticament a la base de dades. Aquesta és una propietat molt important, perquè va ser gràcies a ella que vaig poder resoldre el problema dels jocs d'aquest gènere: la incapacitat d'afegir les meves pròpies cançons. És cert que el format MIDI té un gran desavantatge: el so (tots recordem les melodies dels jocs retro, oi?).

A poc a poc, millorant la jugabilitat, vaig portar el programa a un estat de funcionament complet, vaig afegir moltes "característiques": la possibilitat d'afegir la teva pròpia cançó des de la memòria del dispositiu o des d'un catàleg en núvol, l'elecció del nivell de dificultat, el mode de principiant i molt més.
I finalment vaig arribar a la "cirera al pastís"...

Disseny

Aquí va començar la plasmació de la meva "visió" del joc. En primer lloc, vaig començar a triar un programa de dibuix. No tenia experiència en disseny gràfic, així que necessitava un programa fàcil d'aprendre (Photoshop, per cert), però també flexible i còmode (Paint, ho sento). L'elecció va recaure en Inkscape, una bona eina per editar imatges vectorials, principalment en format svg.

Un cop més familiaritzat amb aquest programa, vaig començar a dibuixar cada element del joc i a guardar-lo en diferents resolucions, adequades per a diferents mides de pantalla del dispositiu. També hi va haver intents d'implementar una animació de l'explosió de notes i, malgrat la inadequació del disseny resultant, em va satisfer. Per descomptat, paral·lelament a la finalització del projecte, vaig continuar treballant en el disseny, afegint nous colors (els degradats són amor "a primera vista").

DrumHero: Com vaig fer el primer joc de la meva vida

Primera versió del disseny (dues pantalles, sense animació, nom antic)

DrumHero: Com vaig fer el primer joc de la meva vida

Segona versió del disseny (4 pantalles, la pantalla inicial pulsa suaument amb diferents colors, degradats per tot arreu)

Vaig defensar el meu projecte de fi de carrera i em vaig alegrar molt quan vaig saber que havia aprovat la fase de classificació i em van convidar a la final del concurs d'aplicacions IT SCHOOL. Em quedava aproximadament un mes per al concurs, i vaig pensar seriosament a contractar una persona més professional en l'àmbit del disseny. La recerca no va ser en va: com va resultar, l'amic íntim del meu germà és un dissenyador excel·lent! Immediatament va acceptar ajudar-me i el disseny actual del joc és el seu mèrit.

DrumHero: Com vaig fer el primer joc de la meva vida

Disseny final

Publicació

Després de completar el treball en la versió de llançament, vaig començar immediatament a preparar l'aplicació per publicar-la al Google Play Market. Procediment estàndard: adquisició d'un compte de desenvolupador, creació d'una pàgina d'aplicació, etc. Però aquesta secció no tracta d'això.

El més sorprenent d'aquesta història són les estadístiques de descàrrega. Al principi, el nombre de descàrregues de DrumHero va augmentar gradualment i gairebé de manera uniforme en alguns països europeus, els EUA i els països de la CEI, però va passar un mes i el nombre de descàrregues va arribar a les 100! Un fet interessant és que la majoria de les descàrregues provenien d'Indonèsia.

Conclusió

DrumHero és el meu primer projecte seriós on vaig aprendre a programar. No només em va portar a la final de tota Rússia del concurs de projectes SAMSUNG IT SCHOOL, sinó que també em va donar molta experiència en disseny gràfic, GameDev, interacció amb el servei Play Market i molt més.

DrumHero: Com vaig fer el primer joc de la meva vida

Per descomptat, ara veig moltes mancances al joc, encara que avui el nombre de descàrregues ha arribat a gairebé 200. Els meus plans són llançar una nova versió, hi ha idees sobre com augmentar l'estabilitat, millorar la jugabilitat i augmentar el nombre de descàrregues.

FAQ:
SAMSUNG IT SCHOOL és un programa d'educació addicional a temps complet gratuït per a estudiants de secundària, que funciona a 25 ciutats de Rússia.
El projecte de graduació dels estudiants és una aplicació mòbil. Podria ser un joc, una aplicació social, un planificador, el que vulguin.
Podeu sol·licitar la formació a partir de setembre de 2019 a Online programes.


Font: www.habr.com

Afegeix comentari