Guitar Flask é um jogo de ritmo inspirado no estilo Guitar Hero, desenvolvido com Python e Flask no back-end e HTML, CSS e JavaScript no front-end.
O jogador deve pressionar as teclas corretas no momento exato em que as notas atingem a linha de execução, acumulando pontos e mantendo combos para multiplicar a pontuação. O sistema avalia precisão e tempo de resposta, proporcionando uma experiência dinâmica e desafiadora.
O projeto combina desenvolvimento web full-stack com conceitos de jogos rítmicos, incluindo sincronização musical, detecção de batidas e persistência de dados em banco de dados.
- Python 3
- Flask
- Flask-SQLAlchemy
- Mutagen (leitura de metadados de MP3)
- Librosa (análise de áudio e detecção de batidas)
- HTML5
- CSS3
- JavaScript (ES6+)
- SQLite
- 🎵 Menu com múltiplas músicas
- 🏆 Ranking com os 10 melhores jogadores por música
- 💾 Salvamento automático de pontuações no banco de dados
- ⏸️ Sistema de pausa e saída da partida
- 🔥 Sistema de combo com multiplicador de pontuação
- ❌ Penalidade por erro (quebra de combo ao pressionar tecla incorreta)
- 🎧 Assistente de Beatmaps automático
- 📊 Geração de mapas de notas:
- Modo aleatório
- Modo baseado na análise real do ritmo da música
O principal diferencial do projeto é o sistema automatizado de geração de beatmaps, que utiliza análise de áudio para sincronizar notas com o ritmo real da música.
O projeto foi desenvolvido em etapas:
- Estruturação do servidor Flask
- Modelagem do banco de dados com SQLAlchemy
- Criação do sistema de ranking
- Implementação do sistema de tempo e pontuação
- Integração entre backend e frontend
- Desenvolvimento do analisador de batidas com Librosa
- Testes de sincronização e balanceamento
O jogo permite selecionar uma música, iniciar a partida, acompanhar as notas em tempo real e salvar a pontuação automaticamente ao final.
Durante o desenvolvimento do Guitar Flask, foram aprimorados conhecimentos em:
- Desenvolvimento full-stack com Flask
- Modelagem de banco de dados com SQLAlchemy
- Integração entre backend e frontend
- Manipulação de eventos em tempo real no JavaScript
- Sincronização entre áudio e elementos visuais
- Análise de sinais de áudio com Librosa
- Organização de projeto escalável