DrumHero: Como fiz o primeiro jogo da minha vida

Este ano o programa socioeducativo IT SCHOOL SAMSUNG completa 5 anos (leia sobre IT SCHOOL aqui), e nesta ocasião convidamos nossos formandos a falar sobre si mesmos e sua experiência na criação de seus aplicativos móveis. Acreditamos que com muita vontade todos podem alcançar o sucesso!

O primeiro convidado nesta seção foi Shamil Magomedov, formado em 2017 pela SAMSUNG IT SCHOOL, agora aluno do MIEM NRU HSE. Shamil, muito obrigado por reservar um tempo para escrever este artigo, apesar de sua agenda lotada!

Olá a todos!
Hoje eu gostaria de falar sobre como passei de “admitido condicionalmente” na SAMSUNG IT SCHOOL a finalista na competição de desenvolvimento móvel de toda a Rússia, graças ao jogo Herói de bateria.

DrumHero: Como fiz o primeiro jogo da minha vida

Pré-história

Entrei na IT SCHOOL quando estava no 10º ano. Desde os primeiros dias de treinamento fiquei atrás dos outros caras, e isso era previsível antes mesmo do início do curso (isso foi evidenciado por minhas notas terrivelmente baixas no vestibular). Todos esses princípios de programação, a estrutura da plataforma Android e da linguagem Java, como entender tudo isso?

Felizmente, eu tinha tudo que precisava para dominar com sucesso as habilidades de desenvolvimento: um desejo ilimitado de seguir em frente e não parar.

Dedicando muito tempo aos deveres de casa, ficando constantemente até tarde depois das aulas com o professor Vladimir Vladimirovich Ilyin (tive uma sorte incrível com ele), comecei a me adaptar ao ritmo acelerado de aprendizado e a pensar no meu projeto de graduação.

DrumHero: Como fiz o primeiro jogo da minha vida

Com professor - V. V. Ilyin

Procure uma ideia

Muita gente pensa que na hora de criar um projeto, seja ele uma startup ou algo pequeno para ganhar experiência, toda a dificuldade está no desenvolvimento: escrever um monte de código, aprender novas bibliotecas, testar constantemente - horror! Acredite em mim, isso não é verdade. Raciocinei exactamente da mesma forma até que eu próprio me deparei com a necessidade de escolher e implementar uma ideia, o que acabou por ser uma das etapas mais difíceis.

O mais difícil na escolha de uma ideia na fase inicial de aprendizagem é determinar a complexidade da implementação: durante muito tempo não consegui encontrar uma aplicação que pudesse fazer e ao mesmo tempo gostar.

Acima de tudo, eu queria escrever um jogo musical, mas dúvidas sobre minhas habilidades realmente atrapalharam. Parecia que não seria possível terminar o trabalho, por isso mudei de escolha mais de uma vez: bilhar móvel, boliche, corredor, etc. No final das contas, aprendi uma lição com isso: dificuldades sempre surgirão, independentemente da ideia de aplicação e, portanto, o mais importante é escolher o que você gosta e ir até o fim.

DrumHero: Como fiz o primeiro jogo da minha vida

Sempre gostei do jogo Guitar Hero

Implementação da lógica do jogo

A ideia básica por trás de aplicativos como Guitar Hero é tocar na tela ao ritmo da música.
Em primeiro lugar, comecei a implementar a lógica do jogo:

  1. Criou classes de notas, botões e listras ao longo das quais as notas se moverão.
  2. Coloquei o canvas em toda a tela da aplicação e nele já descrevi a localização dos objetos das classes criadas.
  3. Implementado o lançamento simultâneo de um arquivo mp3 de uma música e um array de notas obtidas do banco de dados e pronto! Os primeiros rascunhos do jogo já estão no meu smartphone :)

DrumHero: Como fiz o primeiro jogo da minha vida

Primeira versão do jogo

Sim, parece “impressionante”, mas foi quase o suficiente para testar o jogo! A última etapa necessária foi a lista de notas da música, e tive que gastar muito tempo trabalhando em sua implementação.
O princípio é bastante simples: utilizando os valores da tabela do banco de dados, o programa cria objetos da classe “Nota” e adiciona as notas resultantes ao array. A tabela consiste em duas colunas:

  • número da linha de 1 a 4 na qual a nota deve ir e
  • o horário em que deve aparecer na tela.

Por que gastei tanto tempo se tudo é tão simples? Para preencher este banco de dados!
Infelizmente, naquela época eu não conseguia descobrir como automatizar o processo de obtenção da partitura no formato que eu precisava a partir de um arquivo mp3 da música, então tive que preencher manualmente essas colunas de ouvido.

DrumHero: Como fiz o primeiro jogo da minha vida

O processo de preenchimento do banco de dados com notas

Esse método me permitiu começar a desenvolver e testar o jogo desde o início, mas ficou claro que eu precisava criar algo diferente. Aqui meu professor, Ilyin Vladimir Vladimirovich, me ajudou muito, que falou sobre a existência do formato MIDI, explicou sua estrutura e me ajudou a descobrir a biblioteca que encontrei para trabalhar com arquivos MIDI.

A beleza desse formato é que nele cada instrumento já é uma trilha separada na qual estão localizadas certas “notas”. Dessa forma, você pode percorrer facilmente todas as notas e, dependendo da faixa e do tempo, adicioná-las automaticamente ao banco de dados. Esta é uma propriedade muito importante, porque foi graças a ela que consegui resolver o problema dos jogos deste género: a impossibilidade de adicionar as minhas próprias músicas. É verdade que o formato MIDI tem uma grande desvantagem - o som (todos nos lembramos das melodias dos jogos retrô, certo?).

Melhorando gradativamente a jogabilidade, coloquei o programa em pleno funcionamento, adicionei muitos “recursos”: a capacidade de adicionar sua própria música da memória do dispositivo ou de um catálogo na nuvem, escolha do nível de dificuldade, modo iniciante e muito mais.
E finalmente cheguei à “cereja do bolo”...

Projeto

Foi aqui que começou a concretização da minha “visão” do jogo. Em primeiro lugar, comecei a escolher um programa de desenho. Eu não tinha nenhuma experiência em design gráfico, então precisava de um programa que fosse fácil de aprender (Photoshop, aliás), mas também flexível e prático (Paint, desculpe). A escolha recaiu sobre o Inkscape - uma boa ferramenta para edição de imagens vetoriais, principalmente no formato SVG.

Familiarizado um pouco mais com este programa, comecei a desenhar cada elemento do jogo e salvá-lo em diferentes resoluções, adequadas para diferentes tamanhos de tela de dispositivos. Houve também tentativas de implementar uma animação da explosão de notas e, apesar da inadequação do design resultante, fiquei satisfeito. Claro que paralelamente à finalização do projeto continuei trabalhando no design, acrescentando novas cores (degradês são amor “à primeira vista”).

DrumHero: Como fiz o primeiro jogo da minha vida

Primeira versão do design (duas telas, sem animação, nome antigo)

DrumHero: Como fiz o primeiro jogo da minha vida

Segunda versão do design (4 telas, a tela inicial pulsa suavemente com cores diferentes, gradientes por toda parte)

Defendi meu projeto final e fiquei muito feliz quando descobri que havia passado na fase de qualificação e fui convidado para a final do concurso de inscrições IT SCHOOL. Faltava cerca de um mês para a competição e pensei seriamente em contratar uma pessoa mais profissional na área de design. A busca não foi em vão: descobri que o amigo íntimo do meu irmão é um excelente designer! Ela imediatamente concordou em me ajudar, e o design atual do jogo é crédito dela.

DrumHero: Como fiz o primeiro jogo da minha vida

Design final

Publicação

Depois de concluir o trabalho na versão de lançamento, comecei imediatamente a preparar o aplicativo para publicação no Google Play Market. Procedimento padrão: adquirir uma conta de desenvolvedor, criar uma página de aplicativo, etc. Mas esta seção não é sobre isso.

O mais surpreendente nesta história são as estatísticas de download. No início, o número de downloads do DrumHero aumentou gradualmente e quase uniformemente em alguns países europeus, nos EUA e nos países da CEI, mas um mês se passou e o número de downloads atingiu 100 downloads! Um fato interessante é que a maior parte dos downloads veio da Indonésia.

Conclusão

DrumHero é meu primeiro projeto sério onde aprendi a programar. Ele não apenas me levou à final totalmente russa da competição de projetos SAMSUNG IT SCHOOL, mas também me deu muita experiência em design gráfico, GameDev, interação com o serviço Play Market e muito mais.

DrumHero: Como fiz o primeiro jogo da minha vida

Claro, agora vejo muitas deficiências no jogo, embora hoje o número de downloads tenha chegado a quase 200 mil.Meus planos são lançar uma nova versão, há ideias de como aumentar a estabilidade, melhorar a jogabilidade e aumentar o número de downloads.

Informações:
SAMSUNG IT SCHOOL é um programa de educação adicional gratuito em tempo integral para estudantes do ensino médio, operando em 25 cidades da Rússia.
O projeto de formatura dos alunos é um aplicativo mobile. Pode ser um jogo, um aplicativo social, um planner, o que quiserem.
Você pode se inscrever para o treinamento a partir de setembro de 2019 em On-line programas.


Fonte: habr.com

Adicionar um comentário