DrumHero: Como fixen o primeiro xogo da miña vida

Este ano o programa social e educativo IT SCHOOL SAMSUNG cumpre 5 anos (le sobre IT SCHOOL aquí), e nesta ocasión invitamos aos nosos titulados a falar de si mesmos e da súa experiencia na creación das súas aplicacións móbiles. Cremos que con moitas ganas todos poden acadar o éxito!

O primeiro convidado deste tipo nesta sección foi Shamil Magomedov, graduado en 2017 da SAMSUNG IT SCHOOL, agora estudante en MIEM NRU HSE. Shamil, moitas grazas por dedicar o tempo a escribir este artigo, a pesar da túa apretada axenda!

Ola a todos!
Hoxe gustaríame falar de como pasei de ser "admitido condicionalmente" á SAMSUNG IT SCHOOL a finalista na competición de desenvolvemento móbil de toda Rusia grazas ao xogo. DrumHero.

DrumHero: Como fixen o primeiro xogo da miña vida

prehistoria

Entrei na ESCOLA DE TI cando estaba en 10o de primaria. Desde os primeiros días de adestramento, quedei por detrás dos outros rapaces, e isto era previsible mesmo antes do comezo do curso (isto foi evidenciado polas miñas puntuacións horriblemente baixas nos exames de acceso). Todos estes principios de programación, a estrutura da plataforma Android e a linguaxe Java, como entendelo todo?

Afortunadamente, tiña todo o que necesitaba para dominar con éxito as habilidades de desenvolvemento: un desexo ilimitado de seguir adiante e non parar.

Dedicando moito tempo aos deberes, quedando constantemente ata tarde despois das clases co profesor Vladimir Vladimirovich Ilyin (tiven unha gran sorte con el), comecei a adaptarme ao ritmo rápido de aprendizaxe e a pensar no meu proxecto de graduación.

DrumHero: Como fixen o primeiro xogo da miña vida

Co profesor - V.V. Ilyin

Busca unha idea

Moita xente pensa que ao crear un proxecto, xa sexa unha startup ou algo pequeno para gañar experiencia, toda a dificultade reside no desenvolvemento: escribir un montón de código, aprender novas bibliotecas, probar constantemente, ¡horror! Créame, isto non é certo en absoluto. Razonei exactamente do mesmo xeito ata que eu mesmo me atopei coa necesidade de escoller e poñer en práctica unha idea, resultou ser unha das etapas máis difíciles.

O máis difícil ao elixir unha idea na etapa inicial da aprendizaxe é determinar a complexidade da implementación: durante moito tempo non puiden chegar a unha aplicación que puidese facer e ao mesmo tempo que me gustase.

Sobre todo, quería escribir un xogo musical, pero as dúbidas sobre as miñas habilidades realmente me interviron. Parecía que non sería posible rematar o traballo, e por iso cambiei máis dunha vez a miña opción: billarda móbil, bolos, corredor, etc. Ao final, aprendín unha lección disto: sempre aparecerán dificultades, independentemente da idea de aplicación, e polo tanto o máis importante é escoller o que che gusta e ir ata o final.

DrumHero: Como fixen o primeiro xogo da miña vida

Sempre me gustou o xogo Guitar Hero

Implantación da lóxica de xogo

A idea básica de aplicacións como Guitar Hero é tocar a pantalla ao ritmo da música.
Primeiro de todo, comecei a implementar a lóxica do xogo:

  1. Creáronse clases de notas, botóns e franxas ao longo das cales se moverán as notas.
  2. Coloquei o lenzo en toda a pantalla da aplicación e nel xa describín a localización dos obxectos das clases creadas.
  3. Implementouse o lanzamento simultáneo dun ficheiro mp3 dunha canción e unha serie de notas obtidas da base de datos e listo! Os primeiros borradores do xogo xa están no meu smartphone :)

DrumHero: Como fixen o primeiro xogo da miña vida

Primeira versión do xogo

Si, parece "impresionante", pero case foi suficiente para probar o xogo! O último paso necesario foi a lista de notas para a canción, e tiven que dedicar moito tempo a traballar na súa implementación.
O principio é bastante sinxelo: usando os valores da táboa de base de datos, o programa crea obxectos da clase "Nota" e engade as notas resultantes á matriz. A táboa consta de dúas columnas:

  • número de liña do 1 ao 4 no que debe ir a nota e
  • a hora na que debería aparecer na pantalla.

Por que pasei moito tempo se todo é tan sinxelo? Para encher esta base de datos!
Desafortunadamente, nese momento non podía descubrir como automatizar o proceso de obter a partitura no formato que necesitaba a partir dun ficheiro mp3 da canción, polo que tiven que encher manualmente estas columnas de oído.

DrumHero: Como fixen o primeiro xogo da miña vida

O proceso de encher a base de datos con notas

Este método permitiume comezar a desenvolver e probar o xogo desde o principio, pero estaba claro que necesitaba crear algo diferente. Aquí axudoume moito o meu profesor, Ilyin Vladimir Vladimirovich, quen falou da existencia do formato MIDI, explicou a súa estrutura e axudoume a descubrir a biblioteca que atopara para traballar con ficheiros MIDI.

A beleza deste formato é que nel cada instrumento xa é unha pista separada na que se sitúan certas "notas". Deste xeito, podes recorrer facilmente todas as notas e, dependendo da pista e da hora, engadilas automaticamente á base de datos. Esta é unha propiedade moi importante, porque foi grazas a ela que puiden resolver o problema dos xogos deste xénero: a imposibilidade de engadir as miñas propias cancións. É certo que o formato MIDI ten unha gran desvantaxe: o son (todos lembramos melodías nos xogos retro, non?).

Mellorando gradualmente o xogo, levei o programa a un estado de funcionamento completo, engadín moitas "características": a posibilidade de engadir a túa propia canción desde a memoria do dispositivo ou desde un catálogo na nube, elección do nivel de dificultade, modo principiante e moito máis.
E por fin cheguei ao "cherry on the cake"...

Proxecto

Aquí é onde comezou a encarnación da miña "visión" do xogo. En primeiro lugar, comecei a escoller un programa de debuxo. Non tiña experiencia en deseño gráfico, polo que necesitaba un programa fácil de aprender (Photoshop, por certo), pero tamén flexible e cómodo (Paint, perdón). A elección recaeu en Inkscape, unha boa ferramenta para editar imaxes vectoriais, principalmente no formato svg.

Unha vez familiarizado un pouco máis con este programa, comecei a debuxar cada elemento do xogo e gardalo en diferentes resolucións, axeitadas para diferentes tamaños de pantalla do dispositivo. Tamén houbo intentos de implementar unha animación da explosión de notas e, a pesar da inadecuación do deseño resultante, quedei satisfeito. Por suposto, paralelamente á finalización do proxecto, seguín traballando no deseño, engadindo novas cores (os degradados son amor "a primeira vista").

DrumHero: Como fixen o primeiro xogo da miña vida

Primeira versión do deseño (dúas pantallas, sen animación, nome antigo)

DrumHero: Como fixen o primeiro xogo da miña vida

Segunda versión do deseño (4 pantallas, a pantalla inicial pulsa suavemente con diferentes cores, degradados por todas partes)

Defendín o meu proxecto de fin de carreira e quedei moi contento cando me enterei de que pasara a fase de clasificación e me invitaron á final do concurso de solicitudes da ESCOLA INFORMÁTICA. Quedaba un mes para o concurso, e pensei seriamente en contratar unha persoa máis profesional no eido do deseño. A busca non foi en balde: como se viu, o amigo íntimo do meu irmán é un excelente deseñador! Inmediatamente aceptou axudarme, e o deseño do xogo actual é o seu mérito.

DrumHero: Como fixen o primeiro xogo da miña vida

Deseño final

Publicación

Despois de completar o traballo na versión de lanzamento, inmediatamente comecei a preparar a aplicación para a súa publicación no Google Play Market. Procedemento estándar: adquisición dunha conta de programador, creación dunha páxina de aplicación, etc. Pero esta sección non trata diso.

O máis sorprendente desta historia son as estatísticas de descarga. Ao principio, o número de descargas de DrumHero aumentou gradualmente e case uniformemente nalgúns países europeos, os Estados Unidos e os países da CEI, pero pasou un mes e o número de descargas chegou a 100 descargas. Un dato interesante é que a maioría das descargas proviñan de Indonesia.

Conclusión

DrumHero é o meu primeiro proxecto serio onde aprendín a programar. Non só me levou á final rusa do concurso de proxectos SAMSUNG IT SCHOOL, senón que tamén me deu moita experiencia en deseño gráfico, GameDev, interacción co servizo Play Market e moito máis.

DrumHero: Como fixen o primeiro xogo da miña vida

Por suposto, agora vexo moitas carencias no xogo, aínda que hoxe en día o número de descargas chegou a case 200 000. Os meus plans son lanzar unha nova versión, hai ideas sobre como aumentar a estabilidade, mellorar o xogo e aumentar o número de descargas.

FAQ:
SAMSUNG IT SCHOOL é un programa de educación adicional gratuíto a tempo completo para estudantes de secundaria, que opera en 25 cidades de Rusia.
O proxecto de graduación dos estudantes é unha aplicación móbil. Podería ser un xogo, unha aplicación social, un planificador, o que queiran.
Podes solicitar a formación a partir de setembro de 2019 en On-line programas.


Fonte: www.habr.com

Engadir un comentario