CoOp:Anything
게임을 검색해 협동 플레이 가능한 모드·단계·품질·커뮤니티 평점을 확인합니다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗O jogo de luta 2D estilo Street Fighter II estrelado pelos memes do Italian brainrot. Tralalero, Tung Tung Sahur, Bombardiro e companhia contra uma vaca cósmica que quer controlar todos os memes do mundo.
🎮 Jogar · 🌴 Abertura · 🧬 Elenco · ✨ Recursos · 🛠️ Desenvolvimento · 📚 Documentação
Uma vinheta de estúdio no estilo dos arcades dos anos 90: a arte da Tupinicode na selva acende como um CRT enquanto o jogo carrega de verdade ("PREPARANDO O CAOS", com porcentagem), o logo original é revelado ao som do jingle e o crédito do desenvolvedor aparece antes da tela de aviso e do título. A tela de título toca Quarter In The Slot; ao apertar Start, o menu passa para Last Token Remaining.
Muito além da internet existe Brainrotália: a terra paralela onde moram os memes mais absurdos já criados.
Durante séculos, bastava um tralalá, um tung tung, um bananini… e o mundo sorria. Até que La Vacca Saturno Saturnita surgiu nos anéis de Saturno com O ALGORITMO, um sinal que hipnotiza qualquer meme. Os olhos ficaram roxos. As vozes, ocas.
Apenas um coração resistiu. Atravesse Brainrotália, liberte sete rivais hipnotizados, recupere os 7 fragmentos do sinal e enfrente a vaca cósmica no fim do universo.
| Lutador | VEL | FOR | DEF | ALC | Casa |
|---|---|---|---|---|---|
| Tralalero | 1,7 | 1,0 | 1,0 | 1,0 | Spiaggia |
| Tung Sahur | 1,5 | 1,15 | 0,95 | 1,25 | Villaggio |
| Bombardiro | 1,3 | 1,2 | 1,1 | 1,1 | Cielo |
| Ballerina | 2,0 | 0,85 | 0,9 | 1,0 | Teatro |
| Patapim | 1,4 | 1,1 | 1,05 | 1,15 | Giungla |
| Chimpanzini | 1,9 | 0,9 | 0,95 | 0,9 | Piantagione |
| Assassino | 1,9 | 1,0 | 0,9 | 1,15 | Caffè |
| Lirilì | 1,2 | 1,2 | 1,2 | 1,1 | Deserto |
| Saturnita | 1,35 | 1,3 | 1,45 | 1,3 | Saturno |
Fichas completas, falas e rivalidades em docs/jogo/05-personagens.md.
Dash com dois toques para frente ou para trás
Golpes direcionais: soco/chute ascendente, agachado e especial normal / ascendente / baixo
Correntes, cancelamento em especial, uppercut com comando → ↓ ↘, agarrão
EX (meia barra) e Super com tela de corte
Juggle, escalonamento de dano, hit-stop e tremor de tela
Hitboxes medidas dos pixels dos próprios sprites (aperte Tab para ver)
IA em 3 níveis que defende alto/baixo, faz anti-aéreo e gasta barra
Prólogo do mundo + prólogo e final próprios de cada lutador
Cena antes e depois de cada rival, com rivalidades especiais
Mapa animado de Brainrotália entre as lutas, com arte renovada e emblema de Saturno na viagem final
Chefe em duas fases: Saturnita, ascensão do Mega Brain e batalha final
Cutscene global com Bri Bri jogável e desbloqueável, novas vozes e duas trilhas FM originais
Ataque coletivo dos brainrots, salvação do planeta e epílogos separados de cada herói
Bri Bri desbloqueável após vencer a segunda forma, com 16 poses e especial próprio
Narração Chatterbox pré-gerada em 🇧🇷 🇮🇹 🇬🇧
19 faixas gravadas no estilo Neo Geo: título, menu, fases, bônus, chefe, final, epílogos, vitória e continue, normalizadas para ~−20 LUFS e com emenda para loop
As demais fases usam arranjos FM renderizados em OGG; as 21 partituras do sintetizador FM de 2 operadores (família YM2151) continuam como reserva
Mixer de áudio (MÚSICA · EFEITOS · VOZES) em Opções e na Pausa, salvo no navegador
Página OUVIR TRILHA com todos os players
25 efeitos sonoros sintetizados ao vivo, com reverb e delay
13 cenários pintados em código e convertidos em pixel art moderna: faixas de luz sem granulado, contorno nas silhuetas e perspectiva atmosférica
Destrua a Macchina del Nonno, o Cybercaminhão de "vidro blindado" e o Bi-ai-di (com papagaio do milk shake 🦜, que agora toca o meme completo num poleiro redesenhado)
XP e níveis 1–10 por personagem, salvos no navegador
Versus contra a CPU ou local, Treino com leitura de dano e modo celular: tela cheia na horizontal com D-pad de 8 direções e botões sobre o jogo
npm install
npm run dev # http://localhost:3000
Aperte Enter (ou toque na tela) para começar: o navegador só libera o som depois da primeira interação. Escolha HISTÓRIA para a campanha ou TREINO para praticar combos. Os volumes de música, efeitos e vozes ficam em OPÇÕES → ÁUDIO ou em PAUSA → ÁUDIO (↑↓ seleciona, ←→ ajusta).
| Jogador 1 | Jogador 2 (versus) | |
|---|---|---|
| Mover / pular / agachar | A D W S | ← → ↑ ↓ |
| Soco · Chute · Especial | J · K · L | B · N · M |
| Start / pausa | Enter | |
| Voltar / pular cutscene | Esc | |
| Ver hitboxes | Tab |
| Golpe | Comando |
|---|---|
| Avanço / recuo rápido | Dois toques para frente / para trás |
| Ascendente (soco / chute) | ↑ + Soco / Chute, juntos |
| Soco agachado / rasteira | ↓ + Soco / Chute |
| Especial normal / ascendente / baixo | Especial / ↑ + Especial / ↓ + Especial |
| Soco forte (alto) | → + Soco |
| Rasteira (baixo) | ↓ + Chute |
| Uppercut (lança para juggle) | → ↓ ↘ + Soco |
| Agarrão | Perto + → + Chute |
| Especial EX (½ barra) | ↓ ↘ → + Especial |
| Super (barra cheia) | Especial |
| Corrente | Soco → soco / chute / forte · acerto → especial cancela |
| Defesa | Segure para trás (agachado contra golpes baixos) |
Mais detalhes em docs/jogo/03-controles-e-comandos.md e docs/jogo/04-sistema-de-combate.md.
Requer Node.js 20.9+. Os testes de áudio usam FFmpeg e ffprobe; renderizar a trilha exige também Chromium e FFmpeg com
libvorbis. O pipeline atual de sprites usa Node.js; somente o pipeline legado requer Python compillow,numpyescipy.
| Comando | O que faz |
|---|---|
npm run dev | Servidor de desenvolvimento (Turbopack) |
npm run build · npm start | Build de produção (página estática) e servidor |
npm run lint · npm run typecheck | ESLint e TypeScript |
npm run format · npm run format:check | Prettier |
npm test | Campanha completa, lutas CPU × CPU, combate direcional, final, sprites, resolução, textos, vozes, música e snapshots visuais, tudo headless |
npm run test:combat · test:music · test:finale · test:local · test:voices | Só uma parte da suíte |
npm run test:snapshot:update | Aceita uma mudança visual intencional |
npm run readme:art | Regera as imagens deste README com o próprio motor |
npm run sprites | 19 poses por personagem → atlas em public/atlases/ |
npm run sprites:projectiles | Empacota os oito artefatos com três fases cada |
npm run sprites:bonus | Empacota os estados de dano dos carros e as expressões do papagaio e do Elon |
npm run sprites:finale · stages:art | Processa a arte do final e dos cenários/mapa |
npm run music:render · music:check | Renderiza a trilha FM em OGG e confere os arquivos |
npm run render:ui · render:map · render:projectiles · render:finale | Galerias de conferência visual em output/ |
npm run voices:catalog · voices:generate | Catálogo e geração das vozes Chatterbox |
As faixas gravadas ficam em public/audio/music/ e são mapeadas em src/game/audio/imported-music.js; elas têm prioridade sobre os arranjos FM. Faixas longas tocam por streaming (HTMLAudioElement ligado ao bus de música), sem decodificar tudo na memória. Se um arquivo falhar, o sintetizador assume a música da fase.
python3 tools/import-music.py converte os MP3 de origem em OGG com ganho constante (~−20 LUFS, teto −3 dBTP) e emenda de um segundo para o loop; --only title select reprocessa só as faixas escolhidas. As medições ficam em public/audio/music/import-report.json. Depois, node tools/music-playlist.js atualiza a página OUVIR TRILHA (/audio/music/index.html). Os prompts usados para gerar a trilha estão em docs/audio/prompts-trilha-neo-geo.md.
Os volumes do mixer ficam salvos em localStorage.brb_audio. O áudio completo do meme do papagaio é processado por tools/process-parrot-audio.js (−18 LUFS, sem cortes nem mudança de velocidade). Detalhes em docs/tecnico/05-audio-e-narracao.md.
Todas as falas usam arquivos MP3 locais em public/audio/voices/, gerados com Chatterbox Multilingual. Não é necessária chave de API para jogar. As chamadas de confronto reutilizam os nomes dos lutadores. O navegador só sintetiza uma fala caso o arquivo não possa ser reproduzido.
O Elon usa cinco sprites cartunescos gerados por imagem, do sorriso ao choro, no mesmo formato de atlas do papagaio. Para reempacotar os originais locais: npm run sprites:bonus -- --only=elon.
Para regenerar as vozes, veja tools/voices/README.md. O catálogo inclui narrador, menus, nomes, golpes, história completa, papagaio e Elon. Os áudios usam a voz sintética incluída no modelo, com ajustes por personagem, sem gravações de pessoas reais. A procedência e os parâmetros de cada clipe ficam em public/audio/voices/generation.json.
A intro, os menus, as seleções, a pausa, o HUD e os resultados compartilham a paleta e os componentes de src/game/ui/theme.js: azul escuro, dourado, branco quente, vermelho para 1P e azul para 2P. Títulos usam Press Start 2P; os textos menores usam a fonte bitmap 5×7 de src/game/core/pixel-font.js, com acentos em português e italiano.
O desenho usa a resolução lógica 320×180 e escala mantendo 16:9. O canvas acompanha a densidade real da tela (até 4K no desktop e 1280 px em telas de toque), com suavização de alta qualidade acima de 640 px; sprites e projéteis mantêm proporções e alinhamento ao pixel (tests/display-resolution.js, tests/projectile-scale.js). Cabeçalhos, rodapés, margens, foco e painéis seguem o mesmo padrão. npm run render:ui gera uma galeria dos estados da interface em output/ui/after/; para reproduzir, coloque a fonte TTF Press Start 2P em output/ui/PressStart2P-Regular.ttf. O teste manual node tools/review-ui-browser.js usa Chromium e uma instância de produção em localhost:3011 para capturar desktop, tablet e celular.
Em localhost, clique em TESTES (F2) ou pressione F2. O primeiro item abre a última luta como Bri Bri, com God Mode, especial infinito e relógio parado. O painel também acessa cutscenes, bônus, personagens, cenários, músicas e vozes, com XP isolado do progresso salvo. Guia do painel local.
src/
├── app/ Next.js App Router: layout, página, fonte, ícones
├── components/game/ Casca React: gabinete, barra de botões, toque, legenda
└── game/ Motor do jogo em módulos ES (sem React)
├── core/ canvas, entrada, cenas e loop de 60 Hz
├── audio/ trilha OGG, sintetizador FM, mixer, narrador, locutor
├── sprites/ atlas HD, cache, hitboxes medidas dos pixels
├── characters/ um arquivo por lutador + carros
├── combat/ Fighter, Fight, IA, especiais, Treino, Bônus
├── story/ textos da campanha e montagem das cutscenes
├── stages/ kit de pintura + um arquivo por cenário
├── scenes/ todas as telas e o fluxo da história
└── index.js createGame(): a API que a página usa
A página e o motor conversam por uma API pequena e tipada (createGame, setMusic, setNarrator, pressButton, on('voice')). O motor é carregado só no cliente, com import() dinâmico. Veja docs/tecnico/01-arquitetura.md.
O jogo nasceu como um único index.html de 2,7 MB (guardado em legacy/). A migração recortou o código em módulos sem reescrever a lógica e foi comparada com a versão original usando a mesma semente aleatória:
Essa rede de segurança continua no projeto como tests/visual-snapshot.js.
🎮 O jogo
🛠️ Técnico
🎨 Arte e áudio