Passar para o conteúdo principal

Nos bastidores de Killzone: Mercenary

Digital Foundry vs. Guerrilla Cambridge sobre os segredos da tecnologia do FPS mobile mais avançado.

Estamos na semana de lançamento de Killzone: Mercenary para a PlayStation Vita, um jogo que é sem dúvidas um dos jogos mobile mais impressionantes tecnologicamente alguma vez feitos e o primeiro first-person shooter que vale a pena para a portátil da Sony. Lembram-se daquela sensação quando jogaram pela primeira vez Ridge Racer na PSP? É a sensação que vão ter a jogar um jogo que não tem o direito a ter um aspeto tão bom quanto o que tem em equipamento mobile; a sensação que estás a ter um jogo de consola completo a correr na tua mão. Uncharted: Golden Abyss ficou perto, mas Killzone: Mercenary cumpre o argumento como o artigo definitivo.

De uma perspetiva tecnológica, simplesmente tínhamos que descobrir mais, então falamos com o Guerrilla Cambridge sobre o desenvolvimento, fazendo um número de incríveis descobertas no processo - uma delas o facto do motor Killzone 3 ter sido construído para correr em múltiplas plataformas, como explica o diretor técnico do GC, Matt Porter.

"Killzone: Mercenary está construído em cima do código base de Killzone 3, a nível estrutural, muito do trabalho é idêntico," diz-nos. "Desde logo, o motor suporta múltiplos alvos de construção - PlayStation 3 e PC - portanto estender o motor a uma terceira plataforma foi relativamente indolor. Relativamente. Foi um longo e evolucionário processo para ir do primeiro código ao jogo final.

"Nos níveis menores de interface com o equipamento, renderização, áudio, rede e camadas de sistema de controlo receberam muita revisão, como seria de esperar. Mantivemos o modelo de físicas (Havok) mas tivemos que migrar muito do sistema de animação para um novo framework - a libraria interna da Sony Computer Entertainment que viu grandes revisões desde o lançamento de KZ3."

Largada a bomba que KZ3 poderia potencialmente ser convertido para PC (e presumivelmente mais facilmente adaptável para a PS4), Porter explicar como o motor foi adaptado para servir o esquema multi-core da Vita. A portátil da Sony tem um processador ARM Cortex A9 quad-core, mas nenhum dos seus núcleos está reservado para o sistema operativo e segurança, deixando três para os programadores de jogos. Contra as seis SPUs e a PPU do chip Cell da PS3, é uma diferença significativa de abordar.

"Obviamente que uma diferença principal é a ausência das SPUs no equipamento, portanto os modelos de paralelismo mudaram para utilizar os três núcleos," afirma Porter. "Começamos com a framework PC como referência aqui: a entrega de trabalhos SPU é modelada como um processo sincronizado nessa plataforma, a funcionalidade de tarefas é idêntica à da PS3. Isso obviamente é mais lento, mas providenciou o gancho para o gestor de trabalhos personalizado na Vita. Com o tempo, migramos a maioria dos trabalhos SPU originais para os núcleos Vita e voltamos ao modelo completamente assíncrono."

"Killzone: Mercenary foi construído sobre o código de KZ3 e, a nível estrutural, muito do trabalho é idêntico...o motor suporta múltiplos alvos - PlayStation 3 e PC - portanto estenderem a uma terceira plataforma foi relativamente indolor."

Querem ficam com poucs spoilers sobre Mercenary mas ainda assim ter uma ideia decente do nível de performance do jogo? Eis uma sessão levemente editada da primeira missão da campanha.Ver no Youtube

Porter também descreve como foram exploradas mais oportunidades para correr o código de Killzone em múltiplos núcleos, e também diz que o model-skinning - tarefa levado a cabo na SPU na PS3 - foi mesmo convertido para o chip gráfico da Vita. No geral, ele assinala que os sistemas principais que definem a experiência Killzone estão virtualmente intatos da sua implementação na PS3.

"A nível do jogo, muitos dos componentes principais de um jogo KZ permanecem intatos e funcionaram basicamente desde logo na Vita," diz ele. "As principais adições foram mecânicas construídas para o ecrã tátil - por exemplo, as interações frontais, combate corpo a corpo e jogo de pirateamento, as mecânicas vanguard e o sistema de economia de fundo."

Como a tecnologia Killzone foi inferiorizada para a Vita

Um dos elementos mais definidores da experiência Killzone é a IA, e o GC manteve o mesmo código para a versão Vita. Apesar de novos tipos de NPC terem sido adicionados ao jogo, os sistemas principais que dão vida aos teus oponentes são idênticos e, como Porter diz, "todos os comportamentos anteriores são suportados desde logo". O código IA por SPU da PS3 mais uma vez teve cada ao longo dos três núcleos ARM da Vita, apesar de ter sido colocado um especial ênfase na otimização.

"O espalhar de raios é o principal contribuído para a carga CPU, e mesmo ao longo de vários núcleos não podemos competir a nível de processamento com as SPUS," diz Porter.

"Para mitigar, a performance foi encontrada ao racionalizar o número de raios e a sua extensão, em locais. Em cima disso, também encontramos otimização a nível algorítmico dentro do comportamento de maior nível: para evitar que a necessidade de algumas daquelas chamadas caras sejam sequer feitas."

Foram feitas outras otimizações, ajustando cuidadosamente os algoritmos para aumentar a performance com um impacto apenas mínimo no efeito no ecrã, explica Porter:

"Colocamos um orlamento no número de NPCs que podem estar ativos a qualquer momento. Isto conduziu o design da coreografia de nível da equipa quase do primeiro diz e para suportar esse esforço prolongamos os sistemas de script de KZ3 para permitir uma gestão firme dos níveis de IA ativa/inativa. Através de árduo trabalho dos designers de níveis no scripting, esperamos que qualquer delta entre plataformas seja invisível."

Em teoria, também é possível para muitos dos bens gráficos da versão PS3 serem convertidos com pouco ou nenhum compromisso para o jogo Vita. Parte do suporte multi-plataformas do motor KZ3 permite a exportação de bens para plataformas diferentes.

"Se um bem se converte - e a maioria consegue - então devemos ser capazes de o correr na Vita," explica Porter. "Essa é a imagem ideal, e apesar de o explorarmos consideravelmente nos níveis iniciais para ter protótipos a correr (com modelos, blocos de construção ambientais e personagens), a realidade é que afinamos a maioria dos conteúdos contra as restrições de memória e performance da plataforma."

"Foram convertidos virtualmente todos os efeitos de pós-processamento de KZ3. Temos um sistema de correção de cor baseado em profundidade, campo de visão, grainha cinematográfica, e um novo sistema de nevoeiro volumétrico e mais."

Múltiplas IAs, mais físicas, mais trabalho de efeitos - podemos dizer que é o combate que esforça mais a versão Vita do motor de KZ. Eis uma seleção de combates da campanha, processados pelas ferramentas de análise do Digital Foundry.Ver no Youtube

Um tema recorrente no desenvolvimento de jogos Vita tem sido o compromisso na resolução, quase todos os jogos tecnologicamente exigentes viram uma redução no detalhe dos nativos 960x544 da Vita. Por exemplo, Need for Speed: Most Wanted do Criterion renderiza nativamente a 640x368, usando multi-sampling anti-aliasing (MSAA) e o lindo ecrã da consola para ajudar a mitigar as coisas. A abordagem do GC não teve compromissos - o estúdio queria alcançar a resolução nativa, mantendo o anti-aliasing e mantendo ainda os 30fps dos jogos PS3.

"Os gráficos é sobre contra-partidas; em Mercenary, colocamos um ênfase muito alto na qualidade de imagem. A qualidade de imagem está degradada em muitas formas (banding, aliasing temporal, filtro de texturas, ect) mas de longe o maior impacto é a resolução e método AA," diz o engenheiro de programas Graham Aldridge.

"Desde o primeiro dia que corremos na resolução nativa. Isto teve um grande impacto no desenvolvimento do motor e nas contra-partidas feitas - é muito fácil querer um motor para fazer tudo. Por exemplo a resolução, anti-aliasing, e qualidade de imagem foram um fator principal na decisão de usar um renderizador frontal ao invés de um renderizador diferido." O controlo de largura de banda e memória foram um grande desafio para a equipa, e o scaling dinâmico de resolução foi introduzido para manter o rácio de fotogramas em cenas de ação intensa.

A abordagem de Killzone: Mercenary ao scaling dinâmico de resolução

"O motor suporta a resolução nativa e a renderização de uma resolução menor (um quarto) para preencher itens pesados tais como partículas. Scaling dinâmico de resolução é suportado para a cena principal, reduzindo a resolução horizontal de forma incremental. No entanto, isto não tem efeito na renderização da resolução menor ou sistemas de pós-processamento," clarifica Aldridge.

O motor também ativa os modos dinâmicos de resolução em condições específicas onde o jogador tem menos probabilidade de notar o impacto na qualidade de imagem. Se a câmara estiver parada, o motor mantém a resolução nativa e o rácio de fotogramas pode baixar - o jogador não está envolvido com o jogo e visualmente a performance menor não é tão perceptível. É uma técnica realmente impressionante, colocando recursos de sistema para o que mais interessa a qualquer momento.

"Acreditamos que os jogadores terão menos probabilidade de notarem os efeitos temporais da redução de resolução quando estão em movimento (muitos dos efeitos provavelmente duram pouco se alguém estiver a correr pela cena). Quando estáticos, os compromissos na qualidade de imagem provavelmente serão muito mais perceptíveis do que quedas no rácio de fotogramas - particularmente em imagens," diz Porter com um sorriso.

"Scaling dinâmico de resolução é suportado para a cena principal, reduzindo incrementalmente a resolução horizontal. No entanto, não tem efeito na renderização de menor resolução ou sistemas pós-processamento."

Mas a chave para performance sustentada está na otimização para a plataforma, como explica Graham Aldridge.

A mesma cena renderizada em duas resoluções. À esquerda, a câmara está parada - aqui, a qualidade de imagem é mais importante que o rácio de fotogramas, portanto os recursos de renderização vão para a resolução. Em movimento (direita), o rácio de fotogramas tem a prioridade e a resolução é ajustada dinamicamente.

"Para efeitos e geometria de cenários, fizemos muita otimização aos shaders de nível menor," releva. "Em equipamento móvel, podes medir a diferença que um ciclo faz. Isto significou que os nossos modelos de materiais comuns tivessem que ser muito eficientes. Por exemplo, luzes dinâmicas custam-nos oito ciclos no programa de fragmento para duas luzes (com mapa normal). Vamos tão longe quanto usar normalização cubemap quando não estamos limitados nas texturas!"

Foi no interesse da performance que o GC escolheu largar o algoritmo de iluminação e sombra diferido que tanto sucesso teve nas versões PS3 de KZ, como revela o artista sénior Matthew Birkett-Smith:

"Uma solução diferida foi inicialmente investigada mas no fim optamos por uma renderizador frontal," diz ele. "Isto foi uma contra-partida que nos permitiu uma maior variedade de shaders e um sistema de mapeamento de luz mais sofisticado mas ficamos um pouco restringidos no número de luzes dinâmicas que podíamos suportar. Foi também um dos factores que nos permitiu alcançar a resolução nativa completa mantendo o suporte MSAA."

Sombreamento diferido permite aos jogos KZ na PS3 operarem com centenas de fontes de luz em qualquer cena. O GC escolheu construir sobre os elementos pré-cozinhados do mapeamento de luz do motor Killzone, e até acrescentou outras funcionalidades.

Iluminação avançada: HDR, exposição dinâmica - e mais

"Uma grande mudança para nós foi a adição de suporte completo para iluminação HDR. Outra grande mudança foi armazenar a direção dominante da luz em qualquer superfície e também o quão forte é esta iluminação direcional ou ambiental," diz Birkett-Smith. "Isto tornou possível calcular um modelo de iluminação difuso e especular mapeado normalmente muito eficiente para os nossos materiais. Virtualmente todos os materiais no jogo contêm difusão, mapas normais e especulares, e ter uma solução eficiente para demonstrar os nossos materiais foi um grande ganho para nós.

"Tal como a cor, brilho HDR, direção dominante de luz e força direcional da luz também pré-calculamos a nossa cobertura da luz do sol. Isto é usado in-game como um campo de distância fixo para nos dar arestas mais nítidas na nossa luz do sol. Para iluminar níveis offline, usamos uma solução interna da Sony chamada NOVA - terás visto isto em muitos outros jogos desenvolvidos internamente como Uncharted 3, The Last of Us e claro Killzone 3."

A tecnologia revista, a trabalhar em conjunto com o ecrã pequeno, dá a aparência de um Killzone completo, mesmo apesar de um dos sistemas principais que definiu o aspeto do jogo PS3 ter sido completamente removido. O poder libertado pelo novo sistema de iluminação permite um excecional trabalho de efeitos.

"A nível do jogo...muitos dos componentes principais de um Killzone continuam intactos e funcionam basicamente de imediato na PlayStation Vita."

Potenciais spoilers aqui. Tal como os irmãos PS3, as peças de introdução para as missões da campanha são frequentemente as amostras mais espetaculares da tecnologia do motor - eis uma compilação das nossas favoritas.Ver no Youtube

"Um dos maiores efeitos relacionados com o pós-processamento foi o uso de adaptação automática de exposição e isto funciona em conjunto com o nosso sistema de iluminação HDR," revela Matthew Birkett-Smith. "In-game estamos constantemente a mudar subtilmente os níveis de exposição da tua visão para manter a luminosidade do ecrã equilibrada. Com isto podemos transitar suavemente entre exteriores claros e interiores escuros enquanto mantemos um detalhe e contraste fortes a todos os tempos. O efeito final deve sentir-se bem natural ao jogador mas de uma perspetiva de iluminação deixa-nos realmente puxar pelos níveis de iluminação em áreas diferentes que fazem todo o mundo sentir-se mais credível."

Outro trabalho de efeitos pós-processamento avançado demonstra que ser capaz de abordar diretamente o equipamento gráfico da Vita pode resultar em vitórias impressionantes apesar de computacionalmente baratas.

"Outra grande adição foi a introdução de reflexos screen-space na nossa pipeline de materiais," continua Birkett-Smith. "Isto deixa que os materiais consigam refletir em tempo real outras áreas visíveis do mundo de jogo e realmente acrescenta à nossa definição de materiais. Este efeito foi na verdade relativamente barato de implementar e usamo-lo em vários graus nos nossos materiais, provavelmente é mais perceptível no chão e nos nossos modelos de armas na primeira pessoa."

Mas muitas das fundações tecnológicas do motor Killzone 3 ainda estão presentes e corretas, convertidas por completo da PS3.

"Fora isto virtualmente todos os efeitos pós-processamento de KZ3 foram convertidos," conclui Birkett-Smith. "Temos um sistema de correção de cor por profundidade, campo de visão grainha de filme, brilho, e um novo sistema de nevoeiro volumétrico e mais. Em cima disto também implementamos um mapeamento de tom e adaptação local de contraste, ambos funcionam realmente bem com o nosso modelo de iluminação HDR."

Mas no seu centro, apesar dos cortes tecnológicos e da introdução de adicionais funcionalidades de renderização, Mercenary é claramente um jogo Killzone - um que completamente os existentes na série muito da mesma forma que Golden Abyss retém a essência dos clássicos Uncharted. Antes de jogarmos o jogo final, o código de antevisão sentiu-se como se tivesse em sintonia com KZ2 em tonalidade, ao invés de KZ3, apesar de, como podem constatar nas capturas nesta página, o alcance do jogo estar claramente além da amostra de um nível que revelamos anteriormente.

"Gosto de pensar que o que faz qualquer jogo Killzone um jogo Killzone esteve sempre lá no centro de qualquer título na série, mas que cada um é motivado com pequenas coisas diferentes em mente," diz o produtor sénior Mark Green.

"Mercenary não é diferente, e com muita da história a abranger a ação em KZ2 presumo que irá sempre estar mais perto deste do que qualquer um dos outros. Isto é verdade visualmente, mas também suspeito que houve uma influência subconsciente envolvida: KZ2 foi uma pedra tão fundamental no desenvolvimento na PS3 que nos influenciou, não só em termos visuais, mas também em termos do controlo e sensação. Ainda acredito que existem novos ajustes suficientes em Mercenary para fazerem com que se sinta completamente fresco e novo, mas com uma familiaridade caseira que é reconfortante e imediatamente acessível."

Lê também