Este año, el programa social y educativo para estudiantes de secundaria de IT SCHOOL SAMSUNG tiene 5 años (lea sobre IT SCHOOL aquí ), y en esta ocasión invitamos a nuestros graduados a hablar sobre ellos mismos y la experiencia de crear sus aplicaciones móviles. ¡Creemos que con un gran deseo, todos pueden lograr el éxito!Hola a todos!
Mi nombre es Shamil Magomedov, me gradué de 2017 SAMSUNG IT SCHOOL, y en este momento soy estudiante de MIEM NRU HSE. Hoy me gustaría hablar sobre cómo pasé de ser "condicionalmente acreditado" en SAMSUNG IT-SCHOOL a ser el finalista del concurso de toda Rusia sobre desarrollo móvil gracias al juego
DrumHero .

Antecedentes
Ingresé a IT SCHOOL cuando estaba en décimo grado. Desde los primeros días de entrenamiento, me quedé atrás de los otros chicos, y esto era predecible incluso antes del comienzo del curso (esto fue indicado por mis puntajes terriblemente bajos del examen de ingreso). Todos estos principios de programación, el dispositivo de la plataforma Android y el lenguaje Java, ¿cómo entender todo esto?
Afortunadamente, tenía todo lo necesario para el desarrollo exitoso de las habilidades de desarrollo: un deseo ilimitado de avanzar y no parar.
Dedicando mucho tiempo a la tarea, permaneciendo constantemente después de las parejas con el maestro Vladimir Vladimirovich Ilyin (tuve mucha suerte con él), comencé a adaptarme al rápido ritmo de entrenamiento y a pensar en un proyecto de graduación.
Con un profesor - V.V. IlyinBusca una idea
Muchas personas piensan que al crear un proyecto, ya sea una startup o algo pequeño para ganar experiencia, toda la dificultad radica en el desarrollo: escribir un montón de código, aprender nuevas bibliotecas, ¡probar constantemente es horrible! Créeme, esto no es del todo cierto. Razoné exactamente de la misma manera, hasta que me enfrenté a la necesidad de elegir e implementar una idea, resultó ser una de las etapas más difíciles.
Lo más difícil al elegir una idea en la etapa inicial de capacitación es determinar la complejidad de la implementación: durante mucho tiempo no pude encontrar una aplicación que pudiera pagar y al mismo tiempo me gusta.
Sobre todo quería escribir un juego musical, pero las dudas sobre mis habilidades interferían mucho. Parecía que no sería posible terminar el trabajo, y por esta razón he cambiado mi elección más de una vez: billar móvil, bolos, corredor, etc. Al final, aprendí una lección de esto:
siempre surgirán dificultades , independientemente de la idea de la aplicación, y por lo tanto, lo
más importante es elegir lo que te gusta e ir al final .
Siempre me gustó el juego Guitar HeroImplementación de lógica de juego
La idea principal de aplicaciones como Guitar Hero es tocar la pantalla al ritmo de la música.
En primer lugar, comencé a implementar la lógica del juego:
- Creé clases de notas, botones y franjas sobre las cuales se moverán las notas.
- Puse el lienzo en toda la pantalla de la aplicación y ya pinté la ubicación de los objetos de las clases creadas.
- Implementé el lanzamiento simultáneo del archivo mp3 de la canción y las notas recibidas de la base de datos de la matriz de notas y ¡listo! Los primeros borradores del juego ya están en mi teléfono inteligente :)
Primera versión del juego.Sí, parece "impresionante", ¡pero eso fue casi suficiente para probar el juego! El último paso necesario fue una lista de notas para la canción, y tuve que esperar mucho tiempo para su implementación.
El principio es bastante simple: de acuerdo con los valores de la tabla de la base de datos, el programa crea objetos de la clase "Nota" y agrega las notas recibidas a la matriz. La tabla consta de dos columnas:
- número de línea del 1 al 4 a lo largo del cual debe ir la nota y
- la hora a la que debería aparecer en la pantalla.
¿En qué pasé mucho tiempo, si todo es tan simple? Para poblar esta base de datos!
Desafortunadamente, en ese momento no podía pensar en cómo automatizar el proceso de recepción de notas en el formato que necesitaba del archivo mp3 de la canción, y por lo tanto tuve que completar manualmente estas columnas de oído.
El proceso de llenar la base de datos con notasEste método me permitió comenzar a desarrollar y probar el juego al principio, pero estaba claro que tenía que surgir algo más. Luego, mi maestra, Ilyin Vladimir Vladimirovich, me ayudó mucho, quien habló sobre la existencia del formato MIDI, explicó su estructura y me ayudó a descubrir la biblioteca que encontré para trabajar con archivos MIDI.
La belleza de este formato es que en él cada instrumento ya es una pista separada en la que se encuentran ciertas "notas". Por lo tanto, puede procesar fácilmente todas las notas en un ciclo y agregarlas automáticamente a la base de datos dependiendo de la pista y el tiempo. Esta es una propiedad muy importante, porque fue gracias a él que pude resolver el problema de los juegos de este género: la incapacidad de agregar mis propias canciones. Es cierto que el formato MIDI tiene una gran desventaja: el sonido (todos recordamos las melodías en los juegos retro, ¿verdad?).
Mejorando gradualmente la jugabilidad, llevé el programa a un estado completamente operativo, agregué muchas "características": la capacidad de agregar mi canción desde la memoria del dispositivo o desde el catálogo de la nube, la elección del nivel de dificultad, el modo de principiante y mucho más.
Y finalmente llegué a la "guinda del pastel" ...
Diseño
Aquí es donde comenzó la encarnación de mi "visión" del juego. En primer lugar, comencé a elegir un programa para dibujar. No tenía experiencia en diseño gráfico, por lo que necesitaba un programa simple de aprender (Photoshop), pero al mismo tiempo flexible y conveniente (Paint, lo siento). La elección recayó en Inkscape, una buena herramienta para editar imágenes vectoriales, principalmente en formato svg.
Habiéndome acostumbrado un poco a este programa, comencé a dibujar cada elemento del juego y guardarlo en diferentes resoluciones, adecuadas para diferentes tamaños de pantalla de dispositivos. También hubo intentos de implementar una animación de la explosión de notas, y a pesar de la inadecuación del diseño resultante, me complació. Por supuesto, en paralelo con la finalización del proyecto, continué trabajando en el diseño, agregando nuevos colores (los gradientes son amor "a primera vista").
La primera versión del diseño (dos pantallas, sin animación, el nombre antiguo)
La segunda versión del diseño (4 pantallas, la pantalla inicial pulsa suavemente con diferentes colores, gradientes en todas partes)Defendí el proyecto de graduación y me sentí muy feliz cuando me enteré de que había pasado la ronda de clasificación y fui invitado a la final del concurso de solicitudes de IT SCHOOLS. Me quedaba aproximadamente un mes antes de la competencia, y pensé seriamente en atraer a una persona más profesional en el campo del diseño. La búsqueda no fue en vano: ¡resultó que el amigo cercano de mi hermano es un excelente diseñador! Inmediatamente aceptó ayudarme, y el diseño actual del juego es su mérito.
La versión final del diseño.Publicar
Después de completar el trabajo en la versión de lanzamiento, inmediatamente comencé a preparar la aplicación para su publicación en Google Play Market. Procedimiento estándar: adquirir una cuenta de desarrollador, compilar una página de aplicación, etc. Pero esta sección no se trata de eso.
Lo más sorprendente de esta historia son las estadísticas de descarga. Al principio, el número de descargas de DrumHero aumentó gradualmente y casi de manera uniforme en algunos países de Europa, EE. UU. Y los países de la CEI, ¡pero pasó un mes y el número de descargas alcanzó la marca de 100,000 descargas! Un hecho interesante es que la mayoría de las descargas provienen de Indonesia.
Conclusión
DrumHero es mi primer gran proyecto donde aprendí a programar. No solo me llevó a la final de toda Rusia de la competencia del proyecto de TI SAMSUNG SCHOOLS, sino que también me dio una gran experiencia en diseño gráfico, en GameDev, junto con el servicio Play Market y mucho más.

Por supuesto, ahora veo muchas deficiencias en el juego, aunque hoy el número de descargas ha alcanzado casi 200,000. Mis planes son lanzar una nueva versión, tengo ideas sobre cómo aumentar la estabilidad, mejorar el juego y aumentar el número de descargas.
Ayuda:
IT SCHOOL SAMSUNG es un programa gratuito de tiempo completo de educación adicional para estudiantes de secundaria, funciona en 25 ciudades de Rusia.
Student Graduation Project es una aplicación móvil. Puede ser un juego, una aplicación social, un programador, todo lo que quieran.
Puede solicitar capacitación a partir de septiembre de 2019 en el sitio web del programa.