Este ano, o programa social e educacional para estudantes do ensino médio da IT SCHOOL SAMSUNG tem 5 anos (leia aqui sobre a IT SCHOOL) e, nesta ocasião, convidamos nossos alunos a falar sobre si mesmos e a experiência de criar seus aplicativos móveis. Acreditamos que com um grande desejo, todos podem alcançar o sucesso!Olá pessoal!
Meu nome é Shamil Magomedov, sou graduado na SAMSUNG IT SC 2017, atualmente sou aluno do MIEM NRU HSE. Hoje eu gostaria de falar sobre como passei do "crédito condicional" na SAMSUNG IT-SCHOOL para o finalista do concurso All-Russian sobre desenvolvimento móvel, graças ao jogo
DrumHero .

Antecedentes
Entrei na IT SCHOOL quando estava na 10ª série. Desde os primeiros dias de treinamento, fiquei para trás dos outros caras, e isso era previsível antes do início do curso (isso foi indicado pelas minhas notas extremamente baixas no vestibular). Todos esses princípios de programação, o dispositivo da plataforma Android e a linguagem Java, como entender tudo isso?
Felizmente, eu tinha tudo o que era necessário para o desenvolvimento bem-sucedido de habilidades de desenvolvimento: um desejo ilimitado de avançar e não parar.
Dando muito tempo para a lição de casa, permanecendo constantemente após os casais com o professor Vladimir Vladimirovich Ilyin (tive muita sorte com ele), comecei a me adaptar ao ritmo acelerado do treinamento e a pensar em um projeto de graduação.
Com um professor - V.V. IlyinProcure uma ideia
Muitas pessoas pensam que, ao criar um projeto, seja 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 é horrível! Acredite, isso não é de todo verdade. Eu raciocinei exatamente da mesma maneira, até que eu mesmo fui confrontado com a necessidade de escolher e implementar uma idéia, que acabou sendo uma das etapas mais difíceis.
A coisa mais difícil na escolha de uma idéia no estágio inicial do treinamento é determinar a complexidade da implementação: por um longo tempo, não consegui criar um aplicativo que pudesse pagar e ao mesmo tempo.
Acima de tudo, eu queria escrever um jogo musical, mas as dúvidas sobre minhas habilidades interferiram muito. Parecia que não seria possível terminar o trabalho e, por esse motivo, mudei de opção mais de uma vez: bilhar móvel, boliche, corredor, etc. No final, aprendi uma lição com isso:
sempre surgirão dificuldades , independentemente da idéia do aplicativo, e, portanto, o
mais importante é escolher o que você gosta e ir até o fim .
Eu sempre gostei do jogo Guitar HeroImplementação da lógica do jogo
A idéia principal de aplicativos como o Guitar Hero é tocar a tela no ritmo da música.
Primeiro, comecei a implementar a lógica do jogo:
- Criou classes de notas, botões e listras nas quais as notas serão movidas.
- Coloquei a tela em toda a tela do aplicativo e já pintei a localização dos objetos das classes criadas.
- Implementado o lançamento simultâneo do arquivo mp3 da música e as notas recebidas do banco de dados da matriz de notas e pronto! Os primeiros rascunhos do jogo já estão no meu smartphone :)
Primeira versão do jogoSim, parece "impressionante", mas isso foi quase o suficiente para testar o jogo! O último passo necessário foi uma lista de notas para a música, e eu tive que ficar muito tempo em sua implementação.
O princípio é bastante simples: de acordo com os valores da tabela do banco de dados, o programa cria objetos da classe “Note” e adiciona as notas recebidas ao array. A tabela consiste em duas colunas:
- número de linha de 1 a 4 ao longo do qual a nota deve ir e
- a hora em que deve aparecer na tela.
No que eu gastei muito tempo, se tudo é tão simples? Para preencher este banco de dados!
Infelizmente, naquela época, eu não conseguia pensar em como automatizar o processo de recebimento de notas no formato que eu precisava do arquivo mp3 da música e, portanto, tive que preencher manualmente essas colunas de ouvido.
O processo de preenchimento do banco de dados com notasEsse método me permitiu começar a desenvolver e testar o jogo no início, mas ficou claro que algo mais tinha que surgir. Então 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 faixa separada na qual determinadas "notas" estão localizadas. Assim, você pode processar facilmente todas as notas em um ciclo e adicioná-las automaticamente ao banco de dados, dependendo da faixa e do tempo. Essa é uma propriedade muito importante, porque foi graças a ele que pude resolver o problema dos jogos desse gênero: a incapacidade de adicionar minhas próprias músicas. É verdade que o formato MIDI tem muito menos - o som (todos lembramos das músicas dos jogos retrô, certo?).
Aprimorando gradualmente a jogabilidade, levei o programa a um estado totalmente operacional, adicionei muitos "recursos": a capacidade de adicionar minha música da memória do dispositivo ou do diretório da nuvem, a escolha do nível de dificuldade, o modo iniciante e muito mais.
E finalmente cheguei à "cereja no bolo" ...
Desenho
Foi aqui que a personificação da minha "visão" do jogo começou. Primeiro de tudo, comecei a escolher um programa para desenhar. Como não tinha experiência em design gráfico, precisava de um simples aprendizado (Photoshop - by), mas ao mesmo tempo um programa flexível e conveniente (Paint, me desculpe). A escolha foi do Inkscape - uma boa ferramenta para editar imagens vetoriais, principalmente no formato svg.
Tendo me acostumado um pouco a esse programa, comecei a desenhar todos os elementos do jogo e salvá-lo em diferentes resoluções, adequadas para diferentes tamanhos de tela dos dispositivos. Também houve tentativas de implementar uma animação da explosão de notas e, apesar da inadequação do design resultante, fiquei satisfeito. Obviamente, paralelamente à conclusão do projeto, continuei trabalhando no design, adicionando novas cores (gradientes são amor "à primeira vista").
A primeira versão do design (duas telas, sem animação, o nome antigo)
A segunda versão do design (4 telas, a tela inicial pulsa suavemente com cores diferentes, gradientes em todos os lugares)Defendi o projeto de graduação e fiquei muito feliz quando descobri que havia passado na fase de qualificação e fui convidado para a final do concurso de inscrição em IT SCHOOLS. Eu tinha cerca de um mês antes da competição e pensei seriamente em atrair uma pessoa mais profissional no campo do design. A busca não foi em vão: como se viu, o amigo íntimo de meu irmão é um excelente designer! Ela imediatamente concordou em me ajudar, e o design atual do jogo é seu mérito.
A versão final do designPostagem
Após 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, compilar uma página de aplicativo etc. Mas esta seção não é sobre isso.
A coisa mais surpreendente nesta história são as estatísticas de download. A princípio, o número de downloads do DrumHero aumentou gradualmente e quase uniformemente em alguns países da Europa, EUA e CEI, mas um mês se passou e o número de downloads atingiu a marca de 100.000 downloads! Um fato interessante é que a maioria dos downloads veio da Indonésia.
Conclusão
DrumHero é o meu primeiro grande projeto onde aprendi a programar. Ele não só me levou à final russa do concurso de projetos de TI da SAMSUNG SCHOOLS, mas também me proporcionou uma grande experiência em design gráfico, no GameDev, em conjunto com o serviço Play Market e muito mais.

Claro, agora vejo muitas falhas no jogo, embora hoje o número de downloads tenha chegado a quase 200.000. Meus planos são lançar uma nova versão, tenho idéias sobre como aumentar a estabilidade, melhorar a jogabilidade e aumentar o número de downloads.
Ajuda:
ESCOLA DE TI A SAMSUNG é um programa gratuito de educação adicional em tempo integral para estudantes do ensino médio, trabalha em 25 cidades da Rússia.
Projeto de graduação do estudante é uma aplicação móvel. Pode ser um jogo, um aplicativo social, um agendador - tudo o que eles querem.
Você pode se inscrever para o treinamento a partir de setembro de 2019 no site do programa.