Código-fonte de jogo de ritmo: partituras, timing e músicas novas
Como o Riffvolt guarda 12 faixas e 48 partituras de notas, onde o timing e a pontuação são decididos e o que é preciso para pôr uma música sua.

Um código-fonte de jogo de ritmo são duas coisas: o código que julga o timing e os dados que dizem quando cada nota chega. Quem compra quase sempre quer mudar a segunda parte, porque são as músicas novas que deixam um jogo de ritmo com a cara do comprador. O Riffvolt, nosso template de rock com quatro faixas, guarda a lista de músicas num único manifesto e cada partitura de notas no próprio arquivo, então pôr uma música nova é trabalho de dados com um roteiro claro.
Este guia percorre o pacote: o que o jogo tem, onde ficam timing e pontuação, como adicionar uma música, como gerar o build e hospedar, o que a licença permite e o que a edição não inclui. Os nomes de arquivo vêm do manual que acompanha o jogo.
Um detalhe para guardar desde já: diferente de alguns templates nossos, o Riffvolt precisa de build depois que você muda o código ou adiciona músicas. Hospedar a pasta do jogo que vem pronta só exige uma hospedagem estática.
O que este código-fonte de jogo de ritmo traz
O Riffvolt é um jogo de ritmo de rock completo, com quatro faixas, para o navegador. O jogador acerta as notas no tempo, segura as notas longas até o fim, dobra com a alavanca de whammy e enche o medidor ROCK, que dispara o overdrive, um show de luzes que não soma pontos e acaba no primeiro erro. A precisão do timing forma a pontuação e o combo.
- 12 músicas completas, cada uma com partituras Fácil, Normal e Difícil, mais a Rock God, que abre depois da turnê: 48 partituras ao todo.
- Uma turnê por quatro palcos (Garage, The road, Festival e Arena), três músicas em cada. As estrelas das duas primeiras abrem o bis, e terminar o bis abre o próximo palco, com cenas de história e recompensas visuais como rastros e molduras.
- Modo livre: qualquer música em qualquer dificuldade, com recordes pessoais salvos música a música no navegador.
- Controles: D, F, J e K por padrão, toque nas faixas em tela sensível ou controle de videogame. As teclas se mudam em Configurações.
- Conforto: calibração do atraso do áudio, que ajuda com fones Bluetooth, movimento reduzido e um modo fotossensível que suaviza flashes e raios.
- Interface em 14 idiomas.
Ver a página do Riffvolt, com demo e manuais
Como os arquivos estão organizados
O download traz game/ (os arquivos para publicar), source/ (o projeto TypeScript), documentation/ (manuais ilustrados em inglês e português) e licenses/ (avisos de terceiros). Dentro de source/, a separação entre dados das músicas e lógica do jogo é bem limpa.
- public/manifest.json: o catálogo de músicas, com duração, versão do áudio e caminhos das partituras.
- public/charts/: as 48 partituras de notas.
- public/audio/: as gravações das músicas.
- src/core/chartValidate.ts: formato das partituras e validação do timing.
- src/core/judge.ts: julgamento do timing.
- src/core/scoring.ts: regras de pontuação e combo.
- src/game/campaign.ts: progressão da turnê.
- src/game/session.ts: o ciclo de uma música e o cálculo do resultado.
- src/i18n/locales.ts: os dicionários dos 14 idiomas.
- src/net/localRecords.js: recordes pessoais locais.
- src/ui/style.css: interface e layout responsivo.
Como julgamento e pontuação ficam em arquivos separados, você pode deixar a janela de acerto mais rígida ou mais generosa sem mexer em como os pontos somam, e o contrário. É essa separação que vale procurar em qualquer código de jogo de ritmo.
Adicionando uma música sua, passo a passo
É a primeira pergunta de quem compra jogo de ritmo. Não há editor de partituras no pacote, então as partituras são escritas como dados, e o manual lista exatamente o que cada arquivo precisa ter.
- Coloque a gravação em public/audio/. Use só áudio que você tenha direito de usar no seu produto final.
- Crie uma partitura por dificuldade em public/charts/. Cada partitura precisa do songId correspondente, dificuldade, audioVersion, offset e das notas em ordem.
- Inclua a música no public/manifest.json com id único, duração, BPM, tema, audioVersion e os caminhos das partituras.
- Confira cada partitura com o validador do chartValidate.ts.
- Jogue a música inteira em todas as dificuldades para confirmar a sincronia. O validador confere estrutura e regras de timing, não se a nota está no lugar certo para o ouvido.
- Gere o build e envie a versão nova.
Se a ideia é uma trilha inteira nova, e não uma música a mais, planeje por partitura: 12 músicas em quatro dificuldades são 48 partituras, e cada uma merece ser jogada do começo ao fim antes do lançamento.
Gerando o build e o que mais mudar
O recomendado é o Node.js 24 LTS. Dentro de source/, rode npm ci, depois npm run typecheck e npm run build, e publique só o conteúdo de dist/. O npm run preview serve o build local para conferir. Não envie a pasta node_modules/. O Vite usa base relativa, então o build funciona em subpasta. O código entregue é formatado para leitura; o manual pede para manter minify:false e cssMinify:false ao gerar o build, para quem vier depois conseguir ler.
- Marca: cores e layout em src/ui/style.css, mais o seu logotipo. White label é permitido, então a sua marca pode substituir a nossa.
- Textos: src/i18n/locales.ts, nos idiomas que você vai publicar.
- Turnê: ordem dos palcos e o que libera o quê, em campaign.ts.
- Dificuldade: janelas de acerto em judge.ts, depois pontuação e combo em scoring.ts.
- Músicas: por último, porque cada partitura nova exige ser jogada inteira.
Faça backup antes de editar, mude um recurso por vez e teste menu, uma música, pausa, tela de resultado e recarregamento depois de cada mudança. Mantenha ids e chaves de save iguais para os jogadores não perderem os recordes.
Hospedar, ou incorporar num portal
Envie o conteúdo de game/ para uma pasta da sua hospedagem HTTP(S), mantenha os caminhos relativos e abra o endereço. Não precisa de PHP, banco de dados nem conta. Não abra o index.html por file://; para testar no computador, rode python -m http.server 8765 dentro de game/.
- O navegador precisa de JavaScript, módulos ES, Canvas 2D e Web Audio.
- O navegador só libera o áudio depois do primeiro toque ou clique, então uma primeira tela em silêncio é normal.
- Em iframe, permita tela cheia e autoplay.
- Sirva .js com tipo MIME de JavaScript, nunca como text/plain.
- Todos os arquivos de execução, fontes e bibliotecas estão dentro do build. Não depende de CDN, mas não é um app offline instalável.
O save pertence à origem do navegador, então mudar o jogo de domínio faz o jogador começar do zero. Esta edição usa chaves de save próprias, separadas das versões do nosso portal. Projetos de app nativo não estão incluídos; publicar numa loja é um trabalho à parte.
O que a edição não inclui
O Riffvolt é a edição local para navegador. Não tem salas online nem multiplayer, ranking online ou placar compartilhado, SDK ou conta de anúncios, editor de partituras, apps nativos ou hospedagem. Recordes pessoais e progresso da turnê ficam no navegador do jogador.
Se um jogo de música combina com o seu catálogo, outros dois templates nossos baseados em timing podem ficar ao lado dele.
Pinloop: arcade de timing com um botão e 30 alvos
Ricopop: arcade de ricochete com 50 fases
Licença e preço
O Riffvolt custa US$ 49 de tabela. Até 30 de novembro de 2026, a promoção de Black Friday tira 15%, então sai por US$ 41,65, e comprar dois ou mais templates no mesmo pedido soma de 5% a 20% de desconto de pacote. A licença é perpétua e não exclusiva, para um produto final, seu ou de um cliente. Você pode mudar código, arte e áudio, trocar a nossa marca pela sua e oferecer o jogo de graça ou com anúncios. Use as músicas incluídas como parte desse produto final; não é permitido revender o template, o código ou os arquivos sozinhos. São seis meses de suporte, ou doze com a extensão; músicas novas, integrações e hospedagem são orçadas à parte.
Ler os termos completos da licença
Perguntas frequentes sobre o código do Riffvolt
Posso colocar músicas minhas no código-fonte do jogo de ritmo?
Pode. Adicione o áudio, uma partitura por dificuldade e uma entrada no public/manifest.json, valide as partituras, jogue do começo ao fim e gere o build. Não há editor de partituras incluído.
Preciso de Node.js para usar o Riffvolt?
Não para hospedar a pasta do jogo que vem pronta. O Node.js 24 LTS só é recomendado para gerar o build depois de mudar o TypeScript ou adicionar músicas.
Funciona com tela de toque e controle?
Funciona. Dá para tocar nas faixas ou usar um controle, configurado em Configurações. O desempenho depende do aparelho, então teste nos que você pretende atender.
E fone Bluetooth com atraso?
As Configurações têm calibração de áudio, que ajusta o atraso e ajuda com fones Bluetooth.
Tem ranking online?
Não. Os recordes pessoais ficam salvos por música e dificuldade no navegador do jogador. Não há adversários remotos nem ranking compartilhado.
Para quem vale a compra
O Riffvolt serve para portal ou site que quer um jogo de música no catálogo, para estúdio que entrega um jogo de ritmo com a marca de um cliente e para quem quer ler como um jogo em Canvas 2D e Web Audio julga o timing em TypeScript. Serve menos se você precisa de um editor visual de partituras para quem não programa ou de competição online; os dois são trabalho sob medida.
