1. Visão geral
- 12 músicas completas e 48 mapas de notas
- Quatro pistas, notas longas, whammy e overdrive
- Quatro palcos da turnê com progressão
- Teclado, toque e controle
- Calibração e modo fotossensível
- 14 idiomas da interface e recordes locais
Canvas 2D + Web Audio + TypeScript + Vite
14 interface languages: EN, PT, ES, FR, DE, IT, NL, PL, TR, RU, ID, JA, KO, ZH
2. Instalação rápida
- Extraia o ZIP completo. A pasta game/ já está pronta para publicar.
- Envie o conteúdo de game/ para uma pasta do seu servidor HTTP(S). Preserve todos os caminhos relativos.
- Abra a URL do index.html. Não abra por file://. Não precisa PHP, banco de dados ou conta de serviço.
Para testar no computador, abra um terminal dentro de game/ e execute:
python -m http.server 8765
http://localhost:8765/
3. Requisitos e áudio
Use navegador moderno com JavaScript, módulos ES e Canvas 2D e Web Audio. Habilite aceleração de hardware para os jogos 3D. O primeiro toque libera o áudio; autoplay pode ser bloqueado pelo navegador. Use HTTPS para hospedar publicamente. Em iframe, permita fullscreen e autoplay quando necessário.
4. Controles
Use D, F, J e K nas quatro pistas, ou toque nelas. Segure as notas longas até o final. Confira teclas, controle, calibração e modo fotossensível nas configurações. A precisão aumenta pontuação e combo.
5. Guia visual da interface
Menu principal: modos e navegação
Jogo real: área de jogo e indicadores
Configurações: idioma, som e opções6. Mapa de arquivos
Os caminhos abaixo são relativos a source/. game/ contém os arquivos prontos; documentation/ contém estes manuais e imagens; licenses/ preserva os avisos de terceiros.
| File | Purpose |
|---|
public/manifest.json | Song catalog, duration, audio versions and chart paths |
public/charts/ | 48 note charts |
public/audio/ | Track recordings |
src/core/chartValidate.ts | Chart schema and timing validation |
src/core/judge.ts | Timing judgments |
src/core/scoring.ts | Score and combo rules |
src/game/campaign.ts | Tour progression |
src/game/session.ts | Song lifecycle and result calculation |
src/i18n/locales.ts | 14 interface dictionaries |
src/net/localRecords.js | Local personal records |
src/ui/style.css | Interface and responsive layout |
7. Personalização
Coloque o áudio em public/audio/, crie um mapa para cada dificuldade em public/charts/ e cadastre a música em public/manifest.json com id único, duração, BPM, tema, audioVersion e caminhos dos mapas. Cada mapa deve conter songId, difficulty, audioVersion e offset correspondentes e notas ordenadas. Valide com chartValidate.ts e jogue a música inteira para conferir sincronização. O editor interno de mapas não faz parte deste pacote.
Faça backup antes de editar. Altere um recurso por vez e teste menu, partida, pausa, resultado e recarregamento. IDs de itens e chaves de save devem permanecer estáveis para preservar jogadores existentes.
8. Desenvolvimento opcional
Node 24 LTS recomendado. Dentro de source/:
npm ci
npm run typecheck
npm run build
Publique apenas o conteúdo de dist/. preview serve para conferir o build localmente. Não envie node_modules/. O Vite usa base relativa para instalação em subpastas. O pacote pronto foi formatado para leitura; mantenha minify:false e cssMinify:false ao compilar.
9. Saves e recordes locais
Músicas elegíveis concluídas salvam recordes por música e dificuldade no navegador. Turnê e desbloqueios também são locais. Não há adversários remotos, ranking semanal compartilhado ou serviço de replay hospedado.
Os dados pertencem à origem do navegador (protocolo, host e porta). Trocar domínio não transfere saves. Limpar dados ou usar navegação privada pode apagar o progresso. Faça backup do armazenamento antes de migrar. A edição usa chaves próprias, separadas das versões de portal.
10. Dependências, licenças e publicação
Todos os recursos de execução necessários estão no pacote, incluindo fontes, áudio e bibliotecas utilizadas. Não há CDN obrigatória. Isso não significa instalação PWA/offline automática: um novo carregamento ainda precisa acessar seu servidor HTTP. Não foram incluídos servidor multiplayer, ranking online, SDK de anúncios, projetos nativos ou editor interno. A licença de marketplace permite usar os recursos como parte do produto conforme seus termos; não permite revendê-los isoladamente. Preserve os avisos completos em licenses/ e nos diretórios de fontes/vendor.
11. Solução de problemas e FAQ
Tela vazia / blank screen
Confirme HTTP(S), WebGL e caminhos com maiúsculas/minúsculas. Leia o console. / Check HTTP(S), WebGL, case-sensitive paths and browser console.
JS recusado / module refused
O servidor deve enviar .js e .mjs com MIME JavaScript; .wasm com application/wasm. Não use text/plain para módulos. / Serve .js and .mjs with JavaScript MIME, and .wasm as application/wasm.
Sem áudio / no audio
Toque no jogo, verifique volume e permissões do navegador. / Tap the game, check volume and browser permissions.
Save desapareceu / save lost
Confira domínio, porta, modo privado e limpeza de dados. / Check domain, port, private mode and storage clearing.
Posso adicionar multiplayer? / add multiplayer?
Requer desenvolvimento e servidor próprios; não é um recurso incluído. / Requires your own development and server; not included.
Funcionará em qualquer celular? / any phone?
Os controles se adaptam à tela. O desempenho depende do navegador e hardware; teste seus aparelhos alvo. / Controls adapt to screen size; performance depends on browser and hardware. Test your target devices.
12. Suporte e atualizações
Suporte e desenvolvimento personalizado: willian@polargames.com.br. Envie versão, URL, navegador, passos para reproduzir e captura. O suporte segue os termos do item no marketplace. Atualizações são distribuídas pelo canal da compra; confira o changelog antes de substituir arquivos e preserve saves. Esta documentação não promete prazo fixo de atendimento ou novos recursos em datas específicas.