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. 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.

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.

Get the Full Details

Google lança 'jogo do dinossauro' do Chrome (e com IA!)
Google lança 'jogo do dinossauro' do Chrome (e com IA!)

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.