Como o jogo do dinossaurinho funciona por baixo do capô
O jogo do dinossaurinho é aquele T-Rex runner embutido no Chrome que aparece quando a internet cai. Muita gente acha que é só um passatempo inútil, mas ele é um estudo interessante de como otimizar recursos em ambientes restritos. O canvas roda a 60fps com sprites pixelados, geologia procedural e detecção de colisão baseada em AABB simples. Nada de física complexa, só sprite-to-sprite hitbox checking que foi suficiente para milhões de partidas. A versão original tem um loop de jogo implementado em puro JavaScript sem bibliotecas externas. O código source pode ser acessado abrindo DevTools (F12) e colando algo como JSFuck no console. Eu já fiz isso dezenas de vezes, só pra ter certeza de que estava funcionando antes de fechar a aba e reclamar que o Wi-Fi caiu.
A história real do problema que ninguém conta
Em 2021, eu precisava rodar uma versão customizada do jogo em um kiosk tablet Samsung Galaxy Tab A7 sem internet, só que o Chrome do dispositivo atualizava automaticamente e quebrava os assets localizados via caminho relativo. O dino ficava sem sprite, os cactos viravam quadrados pretos. Passei três horas mexendo no service worker do cache antes de descobrir que o Chrome tinha limpo o cache do jogo sozinho na atualização. A solução foi forçar o modo airplane do tablet antes de abrir o Chrome e, em seguida, navegar para chrome://dino usando um atalho fixo. O cache passa a ser lido localmente sem depender da rede. Desde então, nunca mais deixei o dispositivo atualizar em segundo plano.
Como acessar e brincar offline
Se você estiver sem conexão, basta abrir o Chrome e tentar acessar qualquer site. A mensagem "No internet" aparece junto com o dinossauro. Pressione espaço ou a seta para cima e o jogo começa. Se quiser rodar diretamente, digite chrome://dino na barra de endereço. Funciona no Chrome, Edge e Brave — qualquer navegador Chromium com o mesmo motor. Existe uma versão open-source mantida pela comunidade no GitHub, chamada t-rex-runner, que permite modificar sprites, adicionar modos multiplayer local e ajustar dificuldade. O repositório oficial é github.com/niceguyegbert/t-rex-runner. Clone ele com git clone e abra o arquivo index.html em qualquer navegador. Não precisa de build, não precisa de dependência. Só abrir.
👉 Clique no botão abaixo para saber mais sobre o assunto!
Mecânicas que parecem óbvias mas não são
O jogo aumenta de velocidade progressivamente a cada 100 pontos. Isso significa que o timer interno de atualização do frame rate diminui conforme a pontuação sobe. Um iniciante geralmente pensa que a dificuldade vem apenas dos obstáculos mais frequentes, mas o ganho real de complexidade está na redução do tempo entre frames. A cada mil pontos, o intervalo cai cerca de 0.5ms. Parece pouco, mas em altíssima velocidade isso muda completamente o timing de pulos. Outro detalhe que passa despercebido: o dino pode fazer um pulo duplo. Pressione espaço novamente no ar que ele sobe mais um pouco. Esse mecanismo existe porque a velocidade do jogo aumenta e os obstáculos ficam mais densos. Sem o pulo duplo, a curva de dificuldade seria inviável emscores acima de 500.
Limitações e onde o jogo realmente falha
O jogo do dinossaurinho tem dois problemas estruturais sérios. Primeiro, a detecção de colisão é baseada em hitbox retangular ao redor do sprite, não na forma real do dinossauro. Isso cria situações onde o jogador morre mesmo sem contato visual com o cacto, porque a hitbox é maior que o desenho. Segundo, o jogo não salva high score de forma confiável em dispositivos Android quando o cache é limpo. A pontuação máxima volta ao zero sempre que o Chrome atualiza ou quando o usuário limpa dados de navegação. Se o objetivo é competir seriamente por recordes, a melhor alternativa é usar a versão standalone do GitHub ou adaptar o código para rodar como Progressive Web App com IndexedDB, que persiste os dados independentemente de atualizações do navegador. A versão embutida no chrome://dino não foi projetada para persistência.
Truque prático para melhorar o desempenho em máquinas lentas
Em notebooks antigos ou tablets com GPU fraca, o jogo pode travar. Uma solução simples é abrir DevTools, ir em Application > Cache Storage e limpar os caches antigos do chrome://dino. Em seguida, desative a aceleração de hardware nas configurações do Chrome. Parece contra-intuitivo, mas em hardware muito antigo a CPU lida melhor com o rendering 2D sem sobrecarregar a GPU integrada. Eu testei isso em um Acer Aspire One com Atom N570 e a taxa de frames dobrou usando essa combinação. Outra dica útil é rodar o jogo em aba separada com apenas essa aba ativa. O Chrome prioriza recursos para a aba em foco, e em máquinas com pouca memória isso faz diferença visível na suavidade do jogo.