Guia

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.

Arte do Riffvolt: uma pista de quatro faixas de notas em rosa, amarelo, azul e verde vai até um palco de show iluminado, com plateia e uma guitarra elétrica.

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.

  1. Coloque a gravação em public/audio/. Use só áudio que você tenha direito de usar no seu produto final.
  2. Crie uma partitura por dificuldade em public/charts/. Cada partitura precisa do songId correspondente, dificuldade, audioVersion, offset e das notas em ordem.
  3. Inclua a música no public/manifest.json com id único, duração, BPM, tema, audioVersion e os caminhos das partituras.
  4. Confira cada partitura com o validador do chartValidate.ts.
  5. 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.
  6. 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.

  1. 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.
  2. Textos: src/i18n/locales.ts, nos idiomas que você vai publicar.
  3. Turnê: ordem dos palcos e o que libera o quê, em campaign.ts.
  4. Dificuldade: janelas de acerto em judge.ts, depois pontuação e combo em scoring.ts.
  5. 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.

Jogar a demo do Riffvolt e comprar a licença

Músicas novas ou uma versão com a sua marca? Peça orçamento