[Pitch] Piano Hero - Um Guitar Hero de piano
Sobre
O Piano Hero é um jogo de ritmo, no estilo de Guitar Hero, mas voltado para o Piano. Nele, as teclas vão aparecendo e você deve apertar no tempo certo.
Motivação
Eu tenho tentado aprender a tocar piano sozinho há alguns meses, e recentemente tive que emprestar meu piano e fiquei sem ele. Como estava procurando um projeto pessoal para começar, tive a ideia de fazer um piano online. Essa parte foi rápida, então logo tive a ideia de tranformar em um jogo (sempre fui muito fã de guitar hero), e assim comecei a desenvolver.
Estado Atual
Atualmente estou testando algumas formas de detectar as notas certas e o sistema de pontuação. A primeira implementação que fiz foi utilizando setTimeouts para syncar com o tempo da nota, mas não achei uma abordagem muito boa e fui procurar outras. No momento estou testando uma implementação com o Fabric.Js (uma lib de manipulação de Canvas), para detectar as colisões de notas e checar se foram clicadas na hora certa.
Ideias futuras
Meu plano final do projeto envolve os seguintes itens:
- Finalziar a mecânica de gameplay (checagens de notas erradas e certas)
- Adicionar manualmente uma música default, criando sua sequência de notas
- Desenvolver alguma forma de gerar a sequência musical baseada em uploads de .mp3 (seja do usuário ou eu, como adminstrador), utilizando IA para gerar as sequências de notas
- Desenvolver um ranking para salvar os melhores scores nas músicas para mostrar para todos os melhores jogadores naquela música
- Desenvolver um sistema de desafios entre amigos
Github e Acesso ao site
No momento, projeto está hospedado em: https://kozi-piano-hero.vercel.app/
O repositório do projeto pode ser encontrado em: https://github.com/KozielGPC/piano-hero
Aceito sugestões, dúvidas, críticas, feedbacks e colaborações com o projeto!
Simplesmente sensacional o projeto! Minha mãe é professora de música e toca piano, sempre quis colocar um projeto assim em prática. Com certeza gostarei de estar contribuindo no futuro!
Sobre sugestões, algumas funcionalidades incríveis seriam:
- Importação de arquivo para o gerar as notas e timings das notas que precisam ser tocadas (acredito que seria mais fácil a transcrição por meio de arquivos MIDI, mas me falta conhecimento sobre o formato pra poder elaborar a ideia);
- Mapeamento de input para acessibilidade (também possibilita alguém de utilizar um teclado real para jogar).
Enfim, parabéns pelo projeto! 🎉
Muito legal seu projeto.