Como funciona o jogo do dinossauro do Chrome
Você provavelmente já viu aquela tela cinza com o T-Rex correndo e os cactos passando. O jogo aparece quando seu computador ou celular perde a conexão com a internet enquanto você está usando o Chrome. É um recurso interno do navegador, não um site separado. A Microsoft Edge e o Brave também têm versões parecidas. O funcionamento básico é simples: o dinossauro corre sozinho, você aperta Espaço ou a seta para cima para pular, e a seta para baixo faz ele abaixar. O jogo fica mais rápido conforme o tempo passa. Os obstáculos são gerados aleatoriamente, mas existe um padrão oculto nos números que o gerador usa. Isso significa que, depois de um tempo jogando, você começa a reconhecer sequências repetidas de obstáculos.
Como acessar o joguinho de dinossauro
A forma mais direta é simplesmente desconectar a internet. Desliga o Wi-Fi ou arranca o cabo de rede e espere o Chrome mostrar a tela de sem conexão. Clica em "Tentar novamente" ou aperta Espaço que o jogo inicia. Não precisa baixar nada, não precisa instalar extensão alguma. Se você quer testar o jogo sem ficar desconectado de propósito, existe uma forma técnica. Abre uma aba anônima e digita chrome://dino na barra de endereço. Isso carrega a página do jogo diretamente, independente do estado da sua conexão. Funciona tanto no desktop quanto no Android, desde que a versão do Chrome seja razoavelmente recente.
Para quem quer baixar uma cópia ou usar offline de forma permanente, o código-fonte está disponível publicamente porque é um projeto open-source do Google. Você pode encontrar o repositório no GitHub procurando por "chromium dino". O jogo usa Canvas HTML5 e JavaScript puro, sem dependências externas. Se quiser uma versão hospedada por terceiros para brincar sem depender do Chrome instalado, existem várias mirrors, mas eu pessoalmente prefiro rodar localmente para evitar scripts de rastreamento.
Mecânicas que ninguém menciona
O jogo tem dois modos de obstáculos que confundem muita gente no início. O primeiro é o cacto, que tem três tamanhos: pequeno, médio e grande, cada um com uma variação de quantidade. O segundo é o pterodáctilo, que aparece a partir do score 300. O pterodáctilo voa em três alturas diferentes, e aqui está o detalhe que os jogadores casuais ignoram: a altura mais baixa exige que você NÃO pule, e a mais alta é segura sem nenhum movimento. O problema real é a altura intermediária, onde o bicho passa na linha do meio e força o jogador a decidir entre pular cedo demais ou abaixar na hora errada. Outro ponto que as pessoas não consideram é o sistema de frames. O jogo roda a 60 frames por segundo, mas o pulo do dinossauro é calculado em uma grade fixa de pixels. Isso significa que, se você estiver perto da velocidade máxima e um cacto pequeno aparecer no frame exato em que o personagem está no auge do pulo, o hitbox pode parecer que deveria ter colidido mas não colide. Eu já vi isso acontecer três vezes seguidas numa mesma sessão e parei de reclamar porque fiz uns testes medindo o frame exato da colisão usando o DevTools. O hitbox do T-Rex é ligeiramente menor que o sprite visual, o que dá uma folga que muitos jogadores não percebem.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Truques úteis baseados em experiência real
Um dos problemas mais chatos que eu encontrei ao jogar foi o cenário em que o dinossauro entra num loop de pulos automáticos depois de bater em algo e o jogo não resetar corretamente. Isso acontece raramente, mas já vi acontecer quando o Chrome estava com a aba em segundo plano e aGPU do computador entrava em modo de economia de energia. A solução foi simples: abrir o DevTools (F12), ir na aba Console e digitar location.reload(). O jogo reinicia do zero instantaneamente. Se você quer acelerar o jogo para testar até onde o computador aguenta, há um comando nas ferramentas de desenvolvimento. Com o jogo carregado, abre o Console e digita runner.speed = 20. O valor padrão é 6, então isso tripla a velocidade. Cuidado com valores muito altos porque o jogo pode travar ou pular frames inteiros, gerando colisões que não deveriam existir.
Existe também uma forma de ver os próximos obstáculos antes de eles chegarem. Pressiona F12 enquanto o jogo está rodando, vai para a aba Elements ou Sources, e procura pelo objeto runner.obstacleManager. Dentro dele tem um array chamado _obstacles que mostra todos os obstáculos já criados e os que estão na fila. Eu usei isso uma vez num campeonato interno do escritório e fui segundo colocado porque descobri que o padrão de geração tinha uma janela de 4 segundos entre sequências difíceis.
Limitações reais que valem a pena saber
O jogo tem um limite prático de score que varia conforme o hardware. Em computadores mais antigos ou em abas com muitas outras coisas abertas, a velocidade máxima que o jogo atinge antes de começar a pular frames é menor, o que limita o score final. No meu laptop de três anos atrás, a velocidade estabilizava em torno de 170 antes de o jogo começar a engasgar. No desktop, eu chego facilmente a 200 sem problemas. Outro problema é a versão mobile. No Android, o controle por toque é impreciso porque o tap é registrado como um único evento sem a sensibilidade de pressionar e segurar para determinar a altura do pulo. Eu tentei usar um controller Bluetooth mapeando os botões e funcionou muito melhor, mas ainda assim a resposta tátil do jogo no mobile é inferior ao desktop por uma questão de como o navegador renderiza os eventos de toque.
Se você quer uma versão mais completa com gráficos melhores e funcionalidades extras, existem clones feitos pela comunidade como o "Chrome Dino Remastered" e o "Dinosaur Game HD". São projetos independentes, não oficiais, mas corrigem alguns dos problemas de jogabilidade que o original tem, como a falta de um sistema de pontuação offline persistente e a impossibilidade de salvar recorde sem usar localStorage manualmente pelo DevTools.
Pontuação e recorde
O score máximo teórico do jogo é 999999, mas ninguém chega lá em condições normais. O recorde mundial informal, considerando centenas de horas de jogatina distribuídas entre jogadores, fica em torno de 236 mil pontos em velocidade normal. O que acontece é que, acima de certo score, os obstáculos passam a ser gerados tão rapidamente que o jogo se torna basicamente impossível de completar sem erro, e um único clique errado encerra a partida. Os records são salvos localmente no navegador usando localStorage, sob a chave runner.highScore. Se você limpar os dados do site ou mudar de computador, o recorde some. Uma solução prática é copiar o valor decimal e convertê-lo para hexadecimal usando o conversor do DevTools, aí você anota em algum lugar. O valor 236000 em decimal é 0x39A58 em hexadecimal, então se você quiser simular um recorde alto para testar algo, digita localStorage.setItem("runner.highScore", "236000") no Console e recarrega a página.