Corrida arcade 3D · Em desenvolvimento

Super Pinguin GP

Por Fernando Capanema, SpiderWorks · Publicado em
Informações conferidas no código-fonte e nos relatórios de teste do projeto em 22/10/2026.

Um pinguim pilota um snowmobile de corrida em pistas cobertas de neve. O jogo combina interface inspirada nos fliperamas de 16 bits com um renderizador WebGL próprio e regras de campeonato exigentes: quem não acompanha o ritmo é eliminado no meio da prova.

Situação
Em desenvolvimento. Ainda não foi enviado ao Google Play e não há data de publicação definida. A jogabilidade ainda está sendo validada; o desempenho em aparelho físico Android ainda precisa ser confirmado.
Versão atual
1.0.46 (código interno 47)
Plataforma
Android (paisagem, tela cheia) e navegador para testes
Tecnologia
Flutter + WebView; JavaScript sem bibliotecas externas; WebGL com alternativa em Canvas 2D; Web Audio
Anúncios
Nenhum até a versão 1.0.46 documentada no changelog: o jogo só registra os momentos em que um anúncio poderia aparecer (entre etapas e após uma derrota, nunca no treino). Em 22/10/2026 o código em desenvolvimento passou a incluir a integração com o AdMob e o consentimento do Google, ainda não validada nem documentada.
Dados salvos
Nenhum. O campeonato não é gravado ao fechar o aplicativo.

Modos de jogo

Como jogar e regras

A câmera fica na cabine: o jogador vê as mãos do pinguim, o volante, um retrovisor no alto da tela e um minimapa com a posição de todos os competidores. As corridas do campeonato têm três voltas em pista de duas faixas.

Classificação

Antes de cada corrida, o jogador faz uma volta sozinho. O tempo é comparado com os de 15 rivais fictícios, separados entre si por diferenças de 30 a 220 milésimos, para formar o grid de 16 carros. Empate no milésimo favorece o rival. Existe um tempo-limite (a referência do circuito mais 15 segundos); ultrapassá-lo significa largar em último.

Corte por posição

A regra mais característica do jogo é o corte progressivo. Em dois pontos de cada volta, a um terço e a dois terços do percurso, o jogo exige uma posição mínima, que vai de 15º até 3º ao longo da prova. Quem estiver abaixo do limite tem oito segundos para recuperar; depois disso, é eliminado. Na prática, terminar a corrida exige chegar entre os três primeiros.

Batidas

Pneus, guard-rails, paredes de túnel e apoios de passarelas são sólidos. Um impacto acima de 200 km/h quebra o carro. A velocidade considerada é a do instante do contato, interpolada entre quadros; exatamente 200 km/h não quebra. Encostar em um rival acima de 40 km/h faz perder cerca de um terço da velocidade, e sair da pista reduz o ritmo e levanta neve.

Dicas práticas

Controles

No teclado: setas ou WASD para pilotar, acelerar e frear; espaço para trocar de marcha no modo manual; P pausa; M liga ou desliga o som. Não há suporte a controle (gamepad) nesta versão.

Na tela de toque, o lado esquerdo tem dois botões grandes de direção e o direito tem os pedais de freio (vermelho) e acelerador (verde). Os botões usam Pointer Events com captura do ponteiro, o que permite segurar direção e acelerador ao mesmo tempo com os dois polegares. As decisões de projeto desses controles estão detalhadas no artigo Controles de toque para um jogo de corrida em WebView.

Os 16 circuitos

Os traçados são adaptações dos circuitos da temporada de 1989, obtidos do projeto aberto F1DB (licença CC BY 4.0, desenhos de Jules Roy, mantido por Marcel Overdijk e colaboradores). Cada traçado foi reamostrado em 512 pontos, suavizado e ganhou um nome fictício de cidade brasileira. O jogo não tem vínculo oficial com a Fórmula 1, com os autódromos ou com qualquer fabricante de jogos; os créditos completos ficam em Opções › Créditos dos circuitos.

#Traçado de referênciaNome no jogo
1JacarepaguáGuapimirim/RJ
2ÍmolaAterro do Flamengo/RJ
3MônacoRio de Janeiro/RJ – Zona Sul (com túnel)
4Hermanos RodríguezFortaleza/CE
5PhoenixParauapebas/PA
6Gilles VilleneuveNova Iguaçu/RJ
7Paul RicardDuque de Caxias/RJ
8SilverstoneSumidouro/RJ
9HockenheimChapecó West/SC
10HungaroringPenedo/RJ
11Spa-FrancorchampsXique-Xique/BA
12MonzaSanto Antônio dos Lopes/MA
13EstorilFriburgo/RJ
14JerezBrasília/DF
15SuzukaSão Paulo/SP (cruzamento em dois níveis)
16AdelaideAracaju/SE

O cenário tem seis condições visuais (dia, entardecer, noite, chuva, tempestade com relâmpagos e chuva noturna), placas de nove patrocinadores fictícios e humorísticos, zebras, barreiras de pneus e passarelas.

Tecnologia

O renderizador principal é WebGL escrito à mão: matrizes de perspectiva próprias, malhas geradas por código, teste de profundidade, iluminação direcional e neblina, em uma cena de 960×540. O painel retrô é um Canvas 2D sobreposto em 480×270, sem suavização, com uma fonte bitmap 5×7 desenhada no código. Se o WebGL não estiver disponível ou perder o contexto, o jogo cai para um “modo compatível” em Canvas 2D pseudo-3D e tenta restaurar o contexto depois.

O laço de jogo usa tempo decorrido entre quadros, limitado a 50 ms, e suavização exponencial nas respostas de direção. Isso mantém comportamento semelhante a 30 e a 120 quadros por segundo, o que é verificado em teste automatizado. O raciocínio e as limitações dessa abordagem estão no artigo Física independente da taxa de quadros.

Todo o som é sintetizado em tempo real com a Web Audio API: motor por síntese FM com tom proporcional à rotação calculada, vento, chuva, trovão, derrapagem dos pneus e uma trilha chiptune original. Não há arquivo de áudio no projeto. Veja Áudio procedural com Web Audio.

Os 15 rivais seguem uma IA determinística por piloto: cada um tem um nível de agressividade fixo e decide entre ultrapassar, defender, contra-atacar ou dar espaço, com mudanças de faixa suaves de cerca de 1,1 segundo e intervalo mínimo entre manobras.

Acessibilidade

Como testamos

O projeto tem uma bateria de testes em Node (node --test) que cobre regras de corrida, controles de toque, IA de tráfego, colisão no túnel, clima, premiação, WebGL e licenças dos traçados. Exemplos de verificações: o toque com dois polegares funciona com captura de ponteiro; o freio tem prioridade sobre o acelerador; a regra de quebra é estritamente acima de 200 km/h; o prazo de eliminação é igual a 30 e a 120 quadros por segundo. Páginas de teste manuais (túnel, clima, classificação, tráfego) ficam fora do APK.

Histórico de versões

O número de versão sobe a cada entrega interna testada. Marcos registrados no changelog do projeto:

VersãoMudança principal
1.0.5Volta classificatória antes das corridas
1.0.8Renderizador WebGL
1.0.9Eliminação por limite de posição
1.0.12Clima e horários do dia
1.0.14Controles de toque
1.0.18Quebra ao bater em pneus
1.0.21Traçados históricos do F1DB
1.0.24 a 1.0.39Nomes brasileiros e ajustes de cenário
1.0.40Zebras, placas de curva e barreiras de pneus
1.0.41Modo GP Curto e premiação mundial
1.0.42Colisão e câmera dentro do túnel
1.0.43Grid em milésimos, som de derrapagem, regra de 200 km/h
1.0.44Cor oficial do W na abertura (conferida em 21/10/2026)
1.0.45Chuva mais visível no GP Curto
1.0.46Rivais disputando posição: ultrapassagem, defesa e contra-ataque

Próximos passos registrados no projeto: validar o controle com dois polegares e o áudio em aparelho Android físico antes de qualquer publicação. Segundo o changelog, a ativação de anúncios só deve ocorrer depois da aprovação da jogabilidade.