Para homenagear o 20º aniversário de Metroid Prime, a ex-Retro Studios
O engenheiro sênior Zoid Kirsch começou a compartilhar histórias sobre o desenvolvimento do jogo. No entanto, a última história vem de outro membro da equipe. Engenheiro Líder Técnico Jack Mathews levou para o . para falar sobre como consertar um problema do Metroid Prime significava colocar um kit de desenvolvimento do GameCube em um freezer.
A razão para um freezer se envolver no desenvolvimento de jogos é devido ao fato de certas CPUs do GameCube serem falhas e não jogarem Metroid Prime corretamente. Para atualizar o código, a equipe precisava resolver o problema em um kit de desenvolvimento com essa CPU. No entanto, havia apenas um, e só poderia ser testado adequadamente se a unidade estivesse congelando. No final, a equipe consertou e a Nintendo enviou outra cópia do jogo para as pessoas que ligaram para o suporte.
Aqui está a história completa de Mathews, compilada a partir do tópico completo de oito tweets.
Metroid Prime Game Dev Story – Aquele em que refrigeramos um GameCube.
Logo após o lançamento do Prime, a Nintendo nos disse que um “lote ruim” de CPUs do GameCube foi enviado e, aparentemente, o Prime foi o único jogo que se comportou mal neles. Vimos vídeos e ficou claro o que estava acontecendo.
Todos os objetos animados estavam pirando. Entrarei nas razões técnicas mais tarde, mas o ponto era que precisávamos realmente desacelerar parte do nosso código, porque ele estava rodando muito rápido para essas CPUs lidarem! Precisávamos ser capazes de testar isso, mas a Nintendo tinha apenas um kit de desenvolvimento com esta CPU. Não conseguimos detectar a CPU, e se diminuíssemos muito, a taxa de quadros do jogo cairia. Se não diminuíssemos a velocidade o suficiente, ele falharia. Pior ainda, tivemos que gravar discos para este kit. Assim, cada teste durava horas. Ainda mais estranho foi ver o problema, o kit tinha que estar frio. Tipo, congelador frio. Então, literalmente, tivemos que colocar o kit no freezer, testar o jogo por 15 minutos no máximo e começar tudo de novo. Foi louco.
Literalmente estávamos executando o kit do freezer da sala de descanso para a TV e carregando os jogos salvos o mais rápido possível para o maior número possível de lugares em 15 minutos, depois tentando novo código, congelando novamente e voltando. Eu nunca esquecerei isso.
Coisas técnicas: Nosso skinning usou o cache bloqueado DMA para ler os dados e o pipeline de coleta de gravação para escrevê-los. A maioria das amostras da Nintendo usava o cache bloqueado para leitura e gravação, então meu método foi um pouco mais rápido. Mas também atingiu os limites de largura de banda da memória. Pelo que me lembro, o problema era que o tubo de coleta de gravação nessas CPUs quebradas não parava quando estava cheio ou relatava adequadamente seu status, então tivemos que continuar inserindo NOPs no código para desacelerá-lo apenas o suficiente para impedir que as paradas acontecendo, mas não tanto para desacelerar o jogo.
Caso você esteja se perguntando, quando alguém ligou para o suporte sobre esse problema de animação, a Nintendo enviou um novo disco do jogo com esse código atualizado! Era assim que fazíamos “patches” antigamente!
Metroid Prime está disponível para GameCube. Metroid Prime Trilogy pode ser jogado no Wii e Wii U.
