Entrevista Tecnológica: Split/Second
Digital Foundry sobre tecnologia com o director David Jefferies.
Para as físicas usámos o Havok, que é uma boa solução tanto para a Xbox 360 e PS3. Significa que podemos ter centenas de objectos fisicamente correctos a preencher os cenários sem quaisquer abrandamentos e dá-nos menos uma coisa com que preocupar.
A complexidade de renderizar Split/Second requer-nos mais de 70 alvos de renderização que eventualmente se compõe juntos para formar a imagem final. Nem a PS3 nem a 360 podem acomodar tantos alvos de renderizações na memória de vídeo por isso existe muito copiar de alvos de renderização entre o sistema e a memória de vídeo.
No entanto estás certo: a Xbox 360 tem uma ligeiramente reduzida resolução vertical a correr a 1280x672. Isto é para acomodar os alvos de renderização de elevada precisão que usámos para a renderização correcta em gama. Aplicámos então um escalamento de elevada qualidade para alcançar a nossa resolução de saída de 1280x720.
Resolução crua de pixel é apenas um de muitos factores que entram na criação de uma imagem de elevada qualidade. Tão importante, se não mais, é a qualidade do pixel em si. Correcção gamma, precisão de iluminação de elevada resolução e anti-aliasing de boa qualidade são todos extremamente importantes para a fidelidade visual da memória de imagem final.
Também vale ter em conta que poucos LCDs de consumidores realmente tem uma resolução de pixel de 1280x720 - são quase todos ou a 1366x768 ou 1920x1080. Por isso o LCD do consumidor vai então fazer outra operação de escalamento antes de renderizar a imagem visível ao utilizador.
Penso que o MSAA ainda é uma solução muito boa para o anti-aliasing (como explicando antes, precisas assegurar que tens um renderizador correcto em gamma ou não vai parecer bem).
A razão porque precisa de RAM de vídeo adicional, largura de banda e tecelagem é porque funcional ao nível do sub-pixel (ou dois ou quatro fragmentos por pixel) ao invés de ao nível do pixel. Se queres reduzir este excesso então precisas de parar de trabalhar ao nível sub-pixel e isso introduz toda uma carga de problemas próprios.
As implementações AA SPU que vi todas funcional ao nível do pixel e em alguns casos podem ter um bom aspecto mas em outros casos, particularmente objectos finos, podem parecer muito mau porque não tem acesso à informação sub-pixel.
Por isso não estou totalmente convencido ainda mas como sempre vamos avaliar o mais avançado quando melhorar-mos o nosso motor de renderização. Na nossa experiência bom anti-aliasing é tanto devido a ter bons elementos de arte como devido ao equipamento de MSAA.
A 360 tem um GPU muito poderoso que fornece ao programador muita flexibilidade sobre como abordar a renderização. Tirámos alguma carga de trabalho para os CPUs mas não tanto como para a PS3.
São arquitecturas muito diferentes mas depois de realmente puxar por ambas as consolas para Split/Second não temos a sensação de que uma é mais poderosa do que a outra - são apenas diferentes e isto precisa de ser lembrado quando se desenham motores para elas.
Com os nossos exemplos específicos, sim usámos muito do VMX128 na performance de partes críticas do nosso código e usámos o memexport quando desfragmentámos as texturas nas nossas memórias temporárias de leitura contínua (é melhor para o GPU realizar esta operação porque assim não tens contenção entre o CPU e o GPU enquanto tentam e acedem às mesmas texturas) e também como parte do nosso sistema de classificação de telas.
Nós trabalhámos com um estúdio externo na versão PC que assume as versões de consola como ponte de partida. Isto permite-nos concentrar na 360 e PS3 seguros sabendo que está em boas mãos.
Interessante, não encontrei esta controvérsia antes. Usámos uma peça de equipamento mediador chamada NetZ que gere o interface de baixo nível na PSN e Xbox Live e apresenta ao jogo os pacotes de dados que transmitimos. O jogo usa então esses pacotes para manter em sincronização ao longo de qualquer que seja a rede que está a usar.
A única diferença de performance que temos é quando o online se deve ao jogo ao invés da rede. Jogadores online podem accionar até oito Power Plays a qualquer dado momento o que coloca esforço adicional no motor pelo qual precisámos ter em conta - no modo de um jogador é raro ter mais do que duas Power Plays activadas instantaneamente.
O próximo passo que queremos dar com o motor não é tanto sobre melhorar a eficiência e qualidade do próprio motor mas sim melhorar a fonte de dados que o alimenta. Os artistas geram elementos fonte que o motor usa e estamos inclinados em melhorar a sua fluidez de trabalho e os seus tempos de iteração e a resposta que as ferramentas lhes dão sobre a qualidade dos seus elementos e se estão dentro do orçamento ou não.
Isto é o que vai fazer a grande diferença nos nossos futuros jogos.
Split/Second chega está à venda a partir de hoje para a Xbox 360 e PlayStation 3.