Computador
- Mova o mouse: a minhoca gira suavemente na direção do cursor.
- Segure Espaço (ou Shift) para o turbo.
- As teclas WASD ou as setas também guiam a minhoca.
- Esc ou P pausa, H abre esta ajuda, J abre os convites de amigos, C abre o painel financeiro e M liga ou desliga os sons.
Celular e tablet
- Arraste o dedo em qualquer ponto da tela: o joystick analógico aparece onde você tocou.
- Segure o botão TURBO no canto inferior direito; o anel mostra a energia restante.
- O botão 👥 abre os convites de amigos e o botão 💰 o painel financeiro; os dois pausam a partida automaticamente.
Tela
- A câmera segue a minhoca sozinha e afasta o zoom conforme você cresce.
- O painel de ranking mostra as cinco primeiras minhocas e a sua posição.
- Os anéis x10 x5 x2 embaixo acendem quando o bônus está ativo.
Objetivo
- Coma os doces brilhantes da arena: cada um vale 1 ponto e aumenta o seu tamanho.
- Os bônus em moeda dourada (x2, x5, x10) multiplicam os pontos por alguns segundos.
- A cabeça não pode tocar no corpo de outra minhoca. Se tocar, a sua minhoca é eliminada.
- A arena 2D não tem paredes: quem sai por um lado reaparece do outro.
- Você começa com 12 segmentos e o limite é de 96 segmentos.
- Quando uma minhoca morre, o corpo vira um rastro de doces por cerca de 32 segundos. Cada doce do rastro vale 2 pontos.
- Ao final da partida a sua conta recebe moedas do jogo, calculadas e gravadas no servidor.
Turbo
- O turbo acelera a minhoca em cerca de 85% e gasta energia continuamente.
- A energia se recarrega sozinha quando o turbo está solto.
Convidar amigos
- Toque em 👥 e entre com o seu e-mail por um código de uso único. Não existe senha.
- Crie uma sala com nome, gere o link de convite e mande no WhatsApp ou copie o link.
- Cada link vale por 7 dias e pode ser usado por até 20 amigos. Só o dono da sala gera links.
- Quem abre o link e entra com o próprio e-mail passa a fazer parte da sala, e você vê o identificador dele na lista de amigos.
- A sala, os convites e a lista de amigos ficam no servidor e aparecem em qualquer aparelho da mesma conta.
- A partida em si roda no seu aparelho com minhocas controladas pelo jogo: o servidor não transmite a arena em tempo real, então cada amigo joga a sua arena dentro da mesma sala.
Carteira
- Saldo disponível são os prêmios validados, que podem ser sacados por PIX.
- Saldo de bônus são moedas bônus de torneio: gastam primeiro na loja e não podem ser sacadas.
- Moedas do jogo vêm das partidas e compram itens na loja. Você também pode transferir moedas para outro jogador pelo identificador NENI dele.
- Todos os saldos são calculados no servidor a partir de movimentações registradas: nada é alterado pelo celular.
Saque PIX
- Cadastre uma chave PIX validada pelo servidor (CPF, CNPJ, e-mail, telefone com +55 ou chave aleatória).
- O valor mínimo de saque é R$ 20,00 e o pedido só é aceito se houver saldo de prêmios.
- O pedido nasce como pendente, fica bloqueado em análise e só é liberado após aprovação.
- O envio real do dinheiro depende de um provedor PIX conectado ao servidor e ainda não está disponível. Todos os valores são de demonstração.
Torneios
- Entrar é gratuito. Depois de entrar, jogue a sua partida: a pontuação é enviada ao servidor ao final.
- O servidor valida automaticamente a pontuação: precisa estar dentro dos limites de plausibilidade e da rodada atual.
- Bater a meta credita o prêmio e as moedas bônus na hora, com registro no histórico.
Loja
- Acessórios, skins, temas, poderes e decorações são comprados com moedas e ficam guardados na sua conta.
- O que você equipa (skin, tema, acessórios, decorações, poderes ativos) fica salvo neste aparelho e aparece na arena.
- Comprar moedas com dinheiro real precisa de um provedor de pagamento conectado ao servidor.
A versão publicada aqui é a versão jogável: jogo 2D top down rodando no navegador em Canvas. Esta aba entrega a estrutura pedida para o port em Unity 2D + C#.
Scripts C# (por pasta)
Core/GameManager2D.cs- Máquina de estados (Menu, Jogando, Pausado, GameOver), pontuação, reinício, recorde e multiplicador ativo.
Core/ArenaBuilder2D.cs- Arena sem paredes: Tilemap em modo infinito com piso repetido e recorte por câmera.
Core/ArenaLoop.cs- Reposicionamento toroidal: o que sai por um lado entra pelo outro.
Worm/WormMotor2D.cs- Movimento suave com velocidade angular limitada e velocidade dependente do tamanho.
Worm/WormBody2D.cs- Corpo segmentado com LineRenderer grosso e estrelas estampadas, com pool de segmentos.
Worm/WormSkin2D.cs- Aplica cores e estampa da skin equipada.
Worm/WormStats2D.cs- Pontos, segmentos, raio, energia e multiplicador.
Camera/CameraFollow2D.cs- Orthographic Size 9, amortecimento exponencial, antecipação e zoom conforme o raio.
Gameplay/FoodSpawner2D.cs- Pilhas de doces com reposição e pool de 360 itens.
Gameplay/DeathTrail2D.cs- Rastro de doces proporcional ao tamanho da minhoca morta, com vida útil e brilho.
Gameplay/MultiplierPickup2D.cs- Bônus x2, x5 e x10 com duração e reativação.
Gameplay/BotBrain2D.cs- IA que persegue doces, desvia de minhocas maiores e usa turbo em rajadas.
UI/VirtualJoystick2D.cs- Joystick analógico dinâmico com zona morta.
UI/TurboButton2D.cs- Botão de pressionar e segurar com anel de energia radial.
UI/HUDController2D.cs- Pontos, tamanho, bônus ativo, moedas e recorde com números tabulares.
UI/RankingBoard2D.cs- Lista das cinco primeiras minhocas ordenada por pontos.
Friends/RoomService.cs- Sala, link de convite e lista de amigos lidos do servidor; nenhuma escrita de saldo ou de membro pelo cliente.
Wallet/WalletService.cs- Saldo disponível, bônus e moedas lidos do servidor; nenhuma escrita de saldo no cliente.
Wallet/TournamentService.cs- Inscrição na rodada atual, envio da pontuação da partida e leitura do status validado.
Wallet/StoreService.cs- Catálogo do servidor, compra com moedas e inventário por compras registradas.
Net/NetworkBootstrap2D.cs- Stub de rede com
IWormState para Netcode for GameObjects ou FishNet.
Cena ArenaDoce2D
- Câmera ortográfica, Size 9, fundo preto sólido
#000000.
- Grid + Tilemap com piso repetido em 128 x 128, estrelas brilhantes e grade hexagonal discreta.
- Sorting Layers: Piso, Comida, Minhoca, Efeitos, UI World.
- Pilhas de doces em 34 pontos sorteados; reposição cerca de 0,5 s após a coleta.
Android
- IL2CPP, ARM64, Vulkan com fallback GLES3 e
targetFrameRate = 60.
- Sem Instantiate ou Destroy durante a partida: pools de segmentos, doces e bônus.
- Canvas com Scale With Screen Size, referência 1080 x 1920 e safe area.
Financeiro no servidor
- Endpoints sugeridos:
POST /wallet/withdrawals, GET /wallet/withdrawals/:id, POST /wallet/tournaments/results, POST /store/purchases, POST /webhooks/pix.
- A chave secreta do provedor PIX fica só no servidor. O cliente nunca recebe credenciais bancárias.
- Cada saque tem protocolo e chave de idempotência; o webhook é validado por assinatura antes de marcar o pagamento como concluído.
- Antes de liberar pagamentos reais: revisão jurídica, política de privacidade (LGPD), termos de uso e verificação de idade.