O Nintendo 64 carrega a mesma fama desde 1996: jogos incríveis, neblina terrível. Aquele paredão cinza que escondia qualquer coisa a mais de 6 metros não era uma escolha estilística. Era uma limitação de hardware que todo desenvolvedor na plataforma acabava enfrentando, e a maioria apenas aceitava. Por 30 anos, ninguém descobriu como contornar isso em grande escala.
O desenvolvedor James Lambert acabou de zerar esse desafio.
O problema da neblina no N64, finalmente explicado
Lambert, que anteriormente criou Portal 64 (um demake rodando no hardware real do N64) e um romhack de Super Mario 64 com suporte a VR, agora voltou sua atenção para um projeto de game jam chamado Junkrunner 64. O jogo roda no hardware real do N64 e em emuladores de alta precisão, incluindo o Ares, e apresenta algo que ninguém esperava ver na plataforma: uma distância de renderização comparável a The Elder Scrolls V: Skyrim, o RPG de mundo aberto da Bethesda de 2011 que rodava em hardware lançado 15 anos depois do N64.
"Você pode ficar em um canto do mapa e enxergar até o outro lado", diz Lambert em seu vídeo de análise. Quando ele sobrepõe uma comparação de tamanho, o mapa de Junkrunner 64 simplesmente humilha o mundo de The Legend of Zelda: Ocarina of Time na mesma plataforma. O equivalente mais próximo em termos de escala? Skyrim.
O culpado técnico por trás de toda aquela neblina do N64 é algo chamado Z-fighting. O Z-buffer do console, que rastreia a profundidade dos objetos para que eles sejam renderizados na ordem correta, simplesmente não é preciso o suficiente para lidar com geometria distante. À medida que os objetos ficam mais longe da câmera, o N64 perde a noção de qual está mais perto, e as coisas começam a ser desenhadas na ordem errada. Uma montanha distante renderiza sobre uma colina próxima. A neblina foi a solução que todo desenvolvedor adotou porque escondia o problema antes que ele se tornasse visível.
Como Lambert realmente resolveu isso
O ponto é: a solução que Lambert encontrou é elegante justamente porque espelha técnicas que engines modernas usam, apenas adaptadas para um hardware de 1996.
"A solução é que eu simplesmente desenho o mundo duas vezes", explica Lambert. "Primeiro, desenho tudo o que está longe, reduzido em cerca de 100 vezes, e depois faço uma segunda passada onde desenho tudo o que está perto." O mundo é dividido em tiles com múltiplos níveis de detalhe (LOD). Tiles distantes renderizam com baixo detalhe e, conforme o jogador se aproxima, versões de alta qualidade os substituem. Antes de qualquer tile ser renderizado, a engine checa se ele está no campo de visão do jogador. Se não estiver, é ignorado completamente.
O resultado é um mundo em camadas construído de trás para frente, onde a geometria de baixo detalhe preenche o horizonte e tiles de alta definição assumem o primeiro plano, sem precisar de uma parede de neblina para esconder as emendas.
info
A ROM de Junkrunner 64 de Lambert está disponível para download no GitHub para quem quiser testar em um emulador de N64.O colaborador Pyroxene cuidou da construção real do mapa, criando as múltiplas variações de LOD para cada pedaço do mundo aberto. Assim que tudo foi montado, Pyroxene confirmou que o jogo atingiu "uma taxa de quadros boa, e às vezes até ótima" no hardware. Para um console de 30 anos rodando um mundo do tamanho de Skyrim, isso não é pouca coisa.

Hover cycle hits 180 mph boosting
Fazendo um mapa grande valer a exploração
Construir o mundo aberto foi apenas metade do problema. Lambert reconheceu que a escala, por si só, não faz um jogo valer a pena. "Esse mapa massivo é muito legal, mas na verdade piora o jogo se não houver nada para fazer nele e a locomoção for muito lenta", diz ele.
A resposta para a locomoção foi a hover cycle do jogador, que atinge velocidades de cerca de 180 mph quando totalmente equipada e usando boost. A resposta para a exploração foi mais pensada: o mapa começa completamente oculto, e os jogadores o revelam peça por peça conforme se movem pelo mundo. É uma escolha de design que dá um peso real à exploração, algo que muitos jogos de mundo aberto modernos com mapas cheios de ícones abandonaram silenciosamente.
Lambert deixou claro que Junkrunner 64 é um projeto de game jam e dificilmente se expandirá para algo maior por conta própria. O que importa é para onde a tecnologia vai agora. As técnicas desenvolvidas aqui alimentam diretamente o projeto maior de N64 que Lambert anunciou anteriormente: um jogo cooperativo estilo Magicka que agora terá uma engine de mundo aberto de verdade para dar suporte à build.
Para qualquer um que cresceu tentando enxergar através da neblina do N64 e se perguntando do que o hardware era realmente capaz, esta é a resposta. Fique de olho no próximo projeto de Lambert e acompanhe as últimas notícias de gaming para mais histórias da cena retro dev. Não deixe de conferir mais:


