Making of Killzone 3
A DF fala com a Guerrilla sobre o seu mais recente milagre técnico.
Quanta melhoria este sistema de culling oferece é incerto, mas é um componente crucial no sistema de rendering e uma técnica chave no uso do tempo de SPU em processamento RSX desnecessário. Muitos estúdios lamentaram as fraquezas do chip da NVIDIA no cálculo da geometria. Esta técnica ajuda a assegurar que o RSX não está a trabalhar em elementos 3D que vão simplesmente ser cobertos por outros elementos à sua frente que os cobrem completamente.
"É difícil quantificar o que te dá exactamente porque precisas de o comparar a algo," diz Michiel como conclusão.
"Comparado a Killzone 2 penso que temos menos 10 a 30 por cento overdraw e primitivos a serem desperdiçados (por isso mais do que enviamos para o RSX acabam no ecrã e a serem desenhados) mas depende das circunstâncias."
Uma das mudanças principais no aspecto do jogo foi a passagem do quincunx anti-aliasing baseado no hardware RSX para a tecnologia MLAA desenhada pelo ATG (Advanced Technology Group) da SCEE. A MLAA já provou o seu valor em God of War III e mais recentemente, LittleBigPlanet 2, e é actualmente um componente dentro das ferramentas PlayStation Edge disponíveis a todos os estúdios PS3. A decisão para mudar foi curiosa – QAA tem contras óbvios em termos da qualidade de imagem, mas os resultados em Killzone 2 ia bem ao encontro do resto da estética do jogo.
No entanto, a sensação dentro da Guerrilla foi de que na balança, a nova tecnologia do ATG iria tornar melhor o aspecto do próximo Killzone, portanto decidiram usá-la.
"Uma das grandes razões para a mudança foi o facto de realmente gostarmos do aspecto da MLAA. A Quincunx sempre teve um pequeno efeito de nódoa no ecrã e apesar de ter os seus encantos, também tornava tudo um pouco enevoado," explica Michiel.
"Com a MLAA tudo ficou mais límpido e as texturas pareciam mais apuradas, e se queremos tudo um pouco mais suave temos o campo de profundidade, brilho e motion blur que podemos ajustar."
Outras vantagens na mudança foram de natureza mais técnica. Os melhores resultados gráficos que vimos na PlayStation 3 surgem quanto o RSX e o Cell trabalham em conjunto. Tarefas que se mostram problemáticas ou dispendiosas computacionalmente para o chip gráfico podem ser descarregadas para os fenomenalmente rápidos SPUs do Cell, e a precisão desses efeitos é também frequentemente superior uma vez que os SPUs são capazes de lidar com código mais complexo do que os núcleos shader de um GPU.
O componente NVIDIA dentro da PS3 é também conhecido pelos seus problemas com largura de banda – a quantidade física de dados que pode meter na sua memória GDDR3 de 256MB alocados. Qualquer tipo de multi-sampling anti-aliasing consome muita largura de banda: de forma simples, ao voltar as costas ao quincunx, a Guerrilla iria ter mais tempo de GPU para investir noutro lado para criar um jogo com melhor aspecto.
"Com a MLAA reduzimos a nossa carga no RSX um bom bocado, reduzimos para metade o tamanho dos G-buffers e alguns dos re-primes de profundidade/estampagem entre passagens não foram mais necessários, o que nos deu adicionais aumentos na velocidade," observa van der Leeuw.
"No final deu-nos de volta uns bons ciclos RSX e memória, que investimos novamente em streaming de texturas, campo de visão, qualidade de sampling de texturas e – mais indirectamente – a variedade nos personagens, cenários e por aí adiante."
Mas a MLAA não é uma bala mágica que te dá espantosa qualidade na suavização de arestas em troca de nada – passar o processamento do anti-aliasing para o Cell e os seus SPUs significa que a Guerrilla tem que agendar cerca de 4-5ms por SPU e também houveram implicações na largura de banda e RAM XDR.
"Já estávamos a fazer a maioria dos nossos efeitos de pós processamento nos SPUs, mas com a MLAA a passar também para os SPUs tivemos toda a pós corrente a correr aqui. Também precisamos de inserir todo um buffer de resolução de cor na RAM XDR assim de repente, portanto tivemos que sofrer um golpe aqui," diz Michiel, referindo-se aos 2.7MB de memória que precisaram encontra na RAM do sistema principal.
Isto pode parecer bem trivial, mas ter todo a corrente de pós-processamento no SPU significa que uma boa quantidade de espaço XRD está a ser alocado para efeitos visuais e outros dados de jogo. Ecrãs debug vistos no documentário de produção de Killzone 2 mostram uma considerável quantidade de memória a ser usada pela I.A., física e detecção de colisões com som, mesh data e animação gráfica a ocupar significantes quantidades de espaço disponível. Tendo em conta que cerca de 48MB de XDR está na mesma a tomar conta do sistema operativo base da PS3 e os desafios perante a Guerrilla tornaram-se mais claros.
Claro, o estúdio passou muito tempo a optimizar sistemas existentes a mover código consumidor de tempo do núcleo PPU principal para os SPUs dentro do Cell.
"As físicas em Killzone 2 são feitas com o middleware Havok e muito do nosso trabalho personalizado também. Temos trabalhado de perto com o Havok para passar mais código para SPUs ao longo do tempo e também reduzir o uso da memória e tempo de SPU investido nas físicas," explica van der Leeuw, discutindo como o middleware foi optimizado ao ser movido ao longo do núcleo PPU PowerPC do Cell.
"Corremos o Havok em paralelo com muito do trabalho gráfico nos mesmos SPUs. Definitivamente não é barato, mas fazemos muitas físicas num curto espaço de tempo. A animação é toda feita com o PlayStation Edge para as partes de níveis inferiores e o nosso próprio código para o nível maior. A parte Edge é realmente rápida, mas notamos que as partes de nível alto (que estavam ainda a correr no PPU) estavam a tornar-se num gargalo. A dado momento vamos ter que passar isso para os SPUs também, mas vai ser um grande re-factor."
E não é só no tornar o jogo mais belo. Um dos elementos mais importantes de Killzone foi a inteligência artificial avançada. Similar a Halo, a qualidade da I.A. escala dramaticamente entre as definições de dificuldade, acrescentando ao factor repetição. Aqui, passar os sistemas para SPUs teve um efeito directo e dramático na jogabilidade. Killzone 3 desenrola-se ao longo de uma série de zonas de guerras mais intensas do que o seu predecessor, com mais inimigos a exibir maiores níveis de inteligência.
Como van der Leeuw explica, "Optimizamos mais código para correr nos SPUs para podermos fazer mais IA e maiores batalhas, mas o foco foi realmente para os comportamentos desta vez. Investimos muito tempo a torná-los mais diversos e reconhecíveis para diferentes tipos de inimigos, assim como na melhoria da sua qualidade geral para terem melhor resposta, para as suas animações terem melhor aspecto, são bons no combate a curta distância e brutais no corpo-a-corpo e são muitos mais divertidos de se jogar."