Skip to main content
Se clicares num link e fizeres uma compra, poderemos receber uma pequena comissão. Lê a nossa política editorial.

Metrospective: 4A Games vs Digital Foundry

A mente por detrás de Metro 2033 explica a tecnologia.

Um modelo de iluminação é uma coisa impressionante, mas a luz precisa de ser acompanhada de sombra a fim de parecer algo realista. Ambas as consolas HD no mercado parecem lutar para terem convincentes sombras.

"Penso que não fazemos nada fora do normal." diz Oles. "Na Xbox 360 primeiro renderizamos a profundidade tradicional do ponto de vista da luz, então depois convertemos para uma representação ESM (exponential shadow map) ), enquanto que implementa o gauss-blurring ao mesmo tempo. Depois, durante a iluminação efectuamos uma pesquisa bilinear para obter uma percentagem em termos de sombra. O resultado final: evitamos qualquer tremido, ruído, padrões granidos ou muitas (caras) pesquisas para filtrar as sombras, para que consigamos no mínimo, se pareça com uma sombra. Claro que os 10MB de eDRAM na Xbox 360 limita ligeiramente a resolução dos mapas de sombra, que às vezes se pode notar quando a fonte de luz move-se ... Usamos este espaço para o mapeamento de sombras apenas duas vezes durante um frame."

O motor da 4A também inclui soluções personalizadas de anti-aliasing. Os produtores estão a descobrir que o hardware MSAA do GPU da Xbox 360 pode ser reaproveitado para outras tarefas, mas a redução do aliasing nas bordas e a luz difusa continuam a ser aspectos importantes na qualidade de uma imagem em termos gerais.

Shishkovtsov, revela que "A Xbox 360 estava a funcionar com super-amostras em grelha com rotação deferida nos últimos dois anos, mas depois mudamos para que utilize anti-aliasing (AAA) analítico. Isso deu-nos à volta de 11MB de memória e fez com que a AA do GPU cai-se de uns variáveis 2,5-3,0 ms para uns constantes a 1.4ms. A qualidade é bastante semelhante. A AAA funciona um pouco diferente de como poderias supor. Não tem detecção explícita de bordas. O mais próximo da explicação técnica que eu posso imaginar seria que o shader internamente duplica a resolução da imagem usando o padrão / detecção (forma semelhante à AA morfológica) e depois aumenta de novo para a resolução original produzindo a versão anti-aliased. Porque a janela de detecção de padrões é fixa e bastante mais pequena numa implementação pelo GPU, a qualidade é um pouco pior para arestas quase verticais e horizontais, como por exemplo o MLAA ".

Técnicas personalizadas de anti-aliasing são usadas no motor da 4A para que use menos memoria e aumente o desempenho em termos gerais.

Outro elemento chave da tecnologia da 4A é a inteligência artificial dos NPC. os gráficos impressionante deixam de contar se os teus oponentes forem pobres em termos de inteligência.

"Cada personagem com IA no jogo tem sentimentos: visão, audição e de reacção", revela Oles. "O modelo de visão é bastante próximo da realidade: NPCs têm um cone de 120 graus de visibilidade e aqueles que estiverem no centro do cone ele vê com mais clareza, bem como é levado em conta a iluminação e velocidade do alvo. Por exemplo, um objecto em movimento é visto mais claramente na escuridão do que um parado. Foi também implementado um "olhar mais de perto". Existem diferentes níveis de alerta: perturbação de luz, a luz de alerta, alerta, grande alerta, perigo."

O modelo de som para a IA é algo intrigante. O motor de jogo da 4A tenta emular a percepção real da audição por retirar as variáveis por toda a parte no design do jogo.

"Cada som no jogo tem a sua própria "marca de IA"... sons de disparo são marcados como 'combat.shot'," explica Shishkovtsov. "Para esta marca, a distância de audição é por exemplo 50 metros, o que é na verdade muito. Mas ao usarmos a renderização de sectores/portais, o sistema de audição consegue manipular as 'distâncias virtuais', levando em conta muros e corredores. Portanto nenhum NPC do lado de lá do muro irá ouvir o que está acontecer deste lado, porque enquanto que em 'linha recta' seja apenas 5 metros, a 'distância virtual' que usa um caminho sonoro irá resultar numa distância de 60 metros."

As reacções de impacto e percepção dos objectos na visto do NPC são também processadas. Se a IA reconhece a granada, vai tentar escapar.

“A próxima camada é usada para classificar esta informação básica e decidir, o que é mais importante para o NPC no momento,” continua Oles. “Diferentes níveis de sentimento estão conectados a diferentes tipos de comportamento. Por exemplo, o comportamento típico para uma “perturbação ligeira” é dizer algo como “Quem está aí?” e com um olhar mais próximo, o “alerta máximo” é fazer uma procura completa. E claro, os designers têm controlo em tudo, assim conseguem fazer NPC ficarem quietos ou fazerem animações engraçadas mesmo quando uma bomba nuclear é largada num lugar próximo, se encaixar na cena.”

Como um exemplo de um motor de jogo principiante, a 4A fez um incrível trabalho a utilizar o hardware da Xbox 360: tirando partido do visual como algo nunca antes visto no sistema. Embora a consola tenha talvez muitos FPS, a tecnologia combinada com distinta direcção artística europeia resulta num título que parece e se sente diferente da norma do Unreal Engine. É interessante ver como a mentalidade da equipa “codificar até ao metal” foi aplicada nas consolas.

“O GPU da Xbox 360 é uma besta diferente. Comparado com o melhor hardware para PC, é 5 a 10 vezes mais lento, dependendo do que fazes,” revela Oles. “Mas a performance do hardware é apenas uma lado da equação. Nós como programadores conseguimos optimizar para um GPU específico, conseguimos atingir quase 100 porcento da utilização de todos as sub-unidades. Isso não é possível num PC. Em adição a isto, podemos fazer “truques sujos” com a MSAA, como tratar algumas superfícies como multi-sampled (por exemplo, alta-estampa a mascarar a leve influência faz isso), ou renderizar mapas de sombras multi-sampled, e depois mostrar valores de sub-pixeis correctos porque nós sabemos que padrões e que posições sub-amostras têm, etc.”

É esta aproximação que a Xbox 360 e PS3 vão ter até os seus componentes de processamento individual estejam ultrapassados.

“A maior parte de Metro 2033 corre a de 40 a 50 frames por segundo, se desactivarmos o v-sync na 360,” diz Oles. “Grande parte dos níveis têm mais de 100MB de espaço inutilizado. Isso significa que deixamos um pouco do hardware por utilizar.”

Read this next