DrumHero: Cómo hice el primer juego de mi vida

Este año el programa social y educativo IT SCHOOL SAMSUNG cumple 5 años (lea sobre IT SCHOOL aquí), y en esta ocasión invitamos a nuestros egresados ​​a hablar sobre ellos mismos y su experiencia en la creación de sus aplicaciones móviles. ¡Creemos que con muchas ganas todos pueden alcanzar el éxito!

El primer invitado de este tipo en esta sección fue Shamil Magomedov, graduado de SAMSUNG IT SCHOOL en 2017 y ahora estudiante de MIEM NRU HSE. Shamil, muchas gracias por tomarte el tiempo de escribir este artículo, ¡a pesar de tu apretada agenda!

Hola a todos!
Hoy me gustaría contarles cómo pasé de ser "admitido condicionalmente" en SAMSUNG IT SCHOOL a ser finalista del concurso de desarrollo móvil de toda Rusia gracias al juego. tambor héroe.

DrumHero: Cómo hice el primer juego de mi vida

Prehistoria

Entré a la ESCUELA DE INFORMÁTICA cuando estaba en décimo grado. Desde los primeros días de entrenamiento, me quedé atrás de los demás, y esto era predecible incluso antes del inicio del curso (esto se evidencia en mis puntajes terriblemente bajos en el examen de ingreso). Todos estos principios de programación, la estructura de la plataforma Android y el lenguaje Java, ¿cómo entenderlos todos?

Afortunadamente, tenía todo lo que necesitaba para dominar con éxito las habilidades de desarrollo: un deseo ilimitado de seguir adelante y no detenerme.

Dedicando mucho tiempo a la tarea, quedándome constantemente hasta tarde después de clases con el maestro Vladimir Vladimirovich Ilyin (tuve una suerte increíble con él), comencé a adaptarme al rápido ritmo de aprendizaje y a pensar en mi proyecto de graduación.

DrumHero: Cómo hice el primer juego de mi vida

Con el profesor - V.V.Ilyin

buscar una idea

Mucha gente piensa que al crear un proyecto, ya sea una startup o algo pequeño para ganar experiencia, toda la dificultad está en el desarrollo: escribir un montón de código, aprender nuevas bibliotecas, probar constantemente: ¡horror! Créame, esto no es cierto en absoluto. Razoné exactamente de la misma manera hasta que me encontré con la necesidad de elegir e implementar una idea; resultó ser una de las etapas más difíciles.

Lo más difícil a la hora de elegir una idea en la etapa inicial de aprendizaje es determinar la complejidad de su implementación: durante mucho tiempo no pude encontrar una aplicación que pudiera hacer y que al mismo tiempo me gustara.

Lo que más quería era escribir un juego musical, pero las dudas sobre mis habilidades realmente se interponían en mi camino. Parecía que no sería posible terminar el trabajo, y por eso cambié de 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 y llegar hasta el final.

DrumHero: Cómo hice el primer juego de mi vida

Siempre me gustó el juego Guitar Hero.

Implementación de la lógica del juego.

La idea básica detrás de aplicaciones como Guitar Hero es tocar la pantalla al ritmo de la música.
Primero que nada, comencé a implementar la lógica del juego:

  1. Creé clases de notas, botones y franjas a lo largo de las cuales se moverán las notas.
  2. Coloqué el lienzo en toda la pantalla de la aplicación y en él ya describí la ubicación de los objetos de las clases creadas.
  3. Implementé el lanzamiento simultáneo de un archivo mp3 de una canción y un conjunto de notas obtenidas de la base de datos y ¡listo! Los primeros borradores del juego ya están en mi smartphone :)

DrumHero: Cómo hice el primer juego de mi vida

Primera versión del juego.

Sí, parece “impresionante”, ¡pero fue casi suficiente para probar el juego! El último paso necesario fue la lista de notas de la canción, y tuve que dedicar mucho tiempo a trabajar en su implementación.
El principio es bastante simple: utilizando los valores de la tabla de la base de datos, el programa crea objetos de la clase "Nota" y agrega las notas resultantes a la matriz. La tabla consta de dos columnas:

  • número de línea del 1 al 4 en el que debe ir la nota y
  • la hora a la que debería aparecer en pantalla.

¿Por qué dediqué tanto tiempo si todo es tan sencillo? ¡Para poblar esta base de datos!
Desafortunadamente, en ese momento no pude descubrir cómo automatizar el proceso de obtener la partitura en el formato que necesitaba a partir de un archivo mp3 de la canción, por lo que tuve que completar estas columnas manualmente de oído.

DrumHero: Cómo hice el primer juego de mi vida

El proceso de llenar la base de datos con notas.

Este método me permitió empezar a desarrollar y probar el juego desde el principio, pero estaba claro que necesitaba pensar en algo diferente. Aquí me ayudó mucho mi profesor Ilyin Vladimir Vladimirovich, quien me habló sobre la existencia del formato MIDI, me explicó su estructura y me ayudó a descubrir la biblioteca que había encontrado 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". De esta manera, puede recorrer fácilmente todas las notas y, según la pista y el tiempo, agregarlas automáticamente a la base de datos. Esta es una propiedad muy importante, porque gracias a ella pude resolver el problema de los juegos de este género: la imposibilidad de agregar mis propias canciones. Es cierto que el formato MIDI tiene un gran inconveniente: el sonido (todos recordamos las melodías de los juegos retro, ¿verdad?).

Mejorando gradualmente la jugabilidad, llevé el programa a un estado de pleno funcionamiento, agregué muchas "características": la capacidad de agregar tu propia canción desde la memoria del dispositivo o desde un catálogo en la nube, elección del nivel de dificultad, modo principiante y mucho más.
Y finalmente llegué a la “guinda del pastel”...

diseño

Aquí comenzó la encarnación de mi “visión” del juego. En primer lugar, comencé a elegir un programa de dibujo. No tenía ninguna experiencia en diseño gráfico, así que necesitaba un programa que fuera fácil de aprender (Photoshop, por cierto), pero también flexible y conveniente (Paint, lo siento). La elección recayó en Inkscape, una buena herramienta para editar imágenes vectoriales, principalmente en formato svg.

Al familiarizarme un poco más con este programa, comencé a dibujar cada elemento del juego y a 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 lo inadecuado del diseño resultante, quedé satisfecho. Por supuesto, paralelamente a la finalización del proyecto, seguí trabajando en el diseño, añadiendo nuevos colores (los degradados me encantan “a primera vista”).

DrumHero: Cómo hice el primer juego de mi vida

Primera versión del diseño (dos pantallas, sin animación, nombre antiguo)

DrumHero: Cómo hice el primer juego de mi vida

Segunda versión del diseño (4 pantallas, la pantalla inicial pulsa suavemente con diferentes colores, degradados por todas partes)

Defendí mi proyecto final y me alegré mucho cuando me enteré de que había pasado la ronda de clasificación y me invitaron a la final del concurso de solicitudes de IT SCHOOL. Me quedaba aproximadamente un mes antes del concurso y pensé seriamente en contratar a una persona más profesional en el campo del diseño. La búsqueda no fue en vano: resultó que el amigo íntimo de mi hermano es un excelente diseñador. Ella inmediatamente accedió a ayudarme y el diseño actual del juego es su mérito.

DrumHero: Cómo hice el primer juego de mi vida

Diseño final

Publicación

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, crear una página de aplicación, etc. Pero esta sección no 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 europeos, EE. UU. y los países de la CEI, pero pasó un mes y el número de descargas alcanzó las 100. Un dato interesante es que la mayoría de las descargas provinieron de Indonesia.

Conclusión

DrumHero es mi primer proyecto serio en el que aprendí a programar. No solo me llevó a la final de toda Rusia del concurso de proyectos SAMSUNG IT SCHOOL, sino que también me brindó mucha experiencia en diseño gráfico, GameDev, interacción con el servicio Play Market y mucho más.

DrumHero: Cómo hice el primer juego de mi vida

Por supuesto, ahora veo muchas deficiencias en el juego, aunque hoy el número de descargas ha llegado a casi 200 000. Mis planes son lanzar una nueva versión, hay ideas sobre cómo aumentar la estabilidad, mejorar el juego y aumentar el número de descargas.

Información:
SAMSUNG IT SCHOOL es un programa educativo adicional gratuito a tiempo completo para estudiantes de secundaria que opera en 25 ciudades de Rusia.
El proyecto de graduación de los estudiantes es una aplicación móvil. Podría ser un juego, una aplicación social, un planificador, lo que quieran.
Puedes solicitar formación a partir de septiembre de 2019 en sitio web programas


Fuente: habr.com

Añadir un comentario