God of War Ragnarök chegou ao PC esta semana, oferecendo uma versão recentemente atualizada do sucesso do PlayStation com uma série de atualizações gráficas e novos recursos específicos para PC. Para marcar a ocasião, Alex Battaglia falou com Matt DeWald, produtor líder na desenvolvedora original Sony Santa Monica, e Steve Tolin, diretor técnico da desenvolvedora de port para PC Jetpack Interactive.
Esta entrevista abrangente inclui bastante insight técnico sobre o port, incluindo como o jogo foi projetado para escalar bem além das versões de console, evitando bugs comuns de PC como travamento de compilação de shader e uso ineficiente de CPUs híbridas modernas. Como sempre, a entrevista abaixo foi levemente editada para maior duração e clareza.
Teremos o detalhamento da Digital Foundry sobre a porta para PC em breve – fique atento para isso no início da semana que vem. Infelizmente, não tivemos o tempo necessário com o código de análise para concluir nossa cobertura do lançamento do jogo – mas o que podemos dizer é que a Jetpack Interactive e a Santa Monica Studio entregaram uma porta forte aqui. Teremos mais a dizer em breve, junto com essas configurações otimizadas importantíssimas.
Digital Foundry: Então, quando começou o projeto de portar God of War Ragnarok?
Matt De Wald: Sim, então estamos trabalhando nisso há cerca de 18 a 24 meses. A maior parte antes do Ragnarok ser lançado foi apenas para deixar o motor em dia no DX12. Depois que o Ragnarok foi lançado completamente, foi quando pudemos fazer a transição completa e começar o verdadeiro processo de portabilidade. Então, quando o Valhalla terminou, foi quando pudemos reunir todo esse conteúdo também e encerrá-lo aqui. Então, um pouco entre 18 a 24 meses.
Digital Foundry: O primeiro jogo God of War para PC foi um port de DX11, enquanto Ragnarök é de DX12. Como foi portar tudo o que você tinha para DX12?
Steve Tolin: Fizemos o DX11 para o primeiro jogo porque nos deu os resultados que precisávamos na época, mas sabíamos no fundo que mudar para o DX12 era o que precisávamos fazer, para todos os ganhos de desempenho que queríamos alcançar. O Shader Model 6 e o DX12 Ultimate meio que cumpriram a promessa do que o DX12 sempre poderia ser, então esse foi o ponto de virada em que valeu a pena.
Digital Foundry: Você mencionou o DX12 Ultimate especificamente, que adicionou coisas como um novo modelo de shader, VRS, DirectX ray tracing, assim como shaders de malha. O que exatamente do DX12 Ultimate e do novo modelo de shader você realmente queria aproveitar para portar God of War Ragnarok?
Steve Tolin: O gerenciamento de recursos sem vínculos era o maior. Agora, vamos o mais longe possível na CPU para gerar listas de comandos. O tratamento do pool de recursos é melhor, é mais parecido com o de um console. Antes do Ultimate e daquele modelo de shader, ainda havia uma parte de transição legada que não era bem o que precisava ser. Gerenciamento de recursos e gerenciamento de linha do tempo para DirectX, levando tudo para VRAM e estando pronto e na hora certa é a coisa toda com um jogo de PC, certo?
Digital Foundry: Falando em recursos, o DX12 tem compilação explícita de PSOs, e é meu bicho-papão no PC. Eu odeio quando não funciona e você tem travamento de compilação de shader. Estou apenas começando, mas notei zero picos de tempo de quadro durante minha jogada, que é o que você quer ver. O que exatamente você está fazendo para PSOs?
Steve Tolin:Temos apenas 30 minutos? (risos) Estamos no mesmo grupo que você – usamos a hashtag #StutterStruggle da mesma forma que você e levamos isso a sério, porque não é algo que queremos ver em nossos jogos.
Gerenciar configurações de cookies
O maior problema e obstáculo para muito disso é que você precisa ter uma representação completa de todas as suas passagens de renderização em tempo de execução e tudo offline, para que você possa executar todos os seus materiais por meio dele para gerar todas as permutações para tudo e então capturar tudo o que foi feito.
Logo no começo, decidimos não deixar o QA jogar o jogo e acumular PSOs dessa forma, então enviar algum conjunto pré-conhecido e torcer para que os jogadores não olhem para um canto. Fizemos a construção completa offline e criamos os PSOs offline, então todos os dados são conhecidos de antemão no pipeline para nós, e levou um tempo substancial para acertarmos isso.
Digital Foundry: Ragnarök é um jogo de PS4 e PS5, e é fácil notar as diferenças nos tamanhos de instalação para cada plataforma. Como você está lidando com a compactação e descompactação de ativos para PC?
Matt De Wald:Uma das coisas que foram destacadas em nossa ficha técnica é o tamanho do jogo – e, para ser justo, é um jogo muito grande, é todo o Ragnarök, mais todo o Valhalla, além de todos os patches que lançamos desde o lançamento.
Mas no PC, não temos hardware dedicado para descompressão, então olhamos para várias metodologias e sistemas de descompressão que poderíamos usar. Simplesmente não encontramos um que nos beneficiasse no lado do desempenho ou do lado da estabilidade, porque houve problemas de estabilidade com certas tecnologias de descompressão. Então, escolhemos usar mais espaço em disco, porque o espaço em disco é relativamente barato hoje em dia. Ele ocupa uma grande quantidade de espaço, mas é muito melhor do que ter uma experiência ruim porque a descompressão trava você ou causa travamentos de quadros ou outras coisas.
Steve Tolin: Há mais compressão em ativos neste jogo do que no último. Só que em alguns deles escolhemos, como Matt disse, usar mais espaço em disco em vez de mais sobrecarga de CPU.
Digital Foundry: O God of War original era um jogo de PS4, então foi relativamente fácil encaixar até mesmo as texturas de alta resolução em uma GPU de 6 GB. Ragnarök é um título de PS5, e muitas GPUs de PC têm apenas 8 GB – então como você se manteve dentro dos orçamentos de VRAM das GPUs convencionais?
Steve Tolin: Sabíamos que tínhamos que ser mais escaláveis neste, no jogo anterior nossa configuração mais baixa era 4 GB, agora é 6 GB. Precisamos apenas de mais para alvos de renderização, especialmente com resoluções mais altas, mas agora variamos até 20 ou 24 GB – tenho certeza que na semana que vem serão 32 GB!
Para o DX12, temos um mantra por aqui, que é que precisamos ser bons cidadãos de PC. Pedimos muita VRAM, e o sistema operacional nos diz “bem, você tem que voltar um pouco – você está transmitindo, está iniciando outro jogo, essas guias do Chrome consomem muito”. Então reagimos muito a isso, mas usamos o máximo que podemos. Usamos mais do que na versão PS5, se possível. Isso deu muito trabalho, tenho que dar um alô para Arn por isso especialmente.
Digital Foundry: Isso significa que o jogo, com base na VRAM disponível, dimensionará automaticamente a qualidade das texturas e os mapas de streaming para caber no pool?
Steve Tolin: Mais ou menos! Há um cache envolvido, então é o tamanho do cache que escala, então é uma troca entre o quanto estamos transmitindo do disco em vez de um cache RAM ou VRAM.
Em termos de portar peculiaridades gráficas, da última vez que conversamos, você mencionou como o sistema de partículas era único e um desafio para portar para PC. Eu adoraria saber se havia algo assim dessa vez, assim como como você portou o traçado de mapa de cubo muito peculiar que foi feito no modo de qualidade do PS5.
Steve Tolin: Esse foi Kyle, que fez todas as partículas na versão DX11, e foi uma reescrita completa para DX12. Felizmente, as lições aprendidas com essa porta inicial e as APIs DX12 sendo mais modernas e tendo melhor gerenciamento de memória permitiram que fosse muito mais simples.
Matt De Wald: Para o material de reflexão do mapa de cubo, tentamos fazer o DXR funcionar corretamente com isso, mas simplesmente não conseguimos, então estamos voltando para mapas de cubo básicos nessa área. O que percebemos é que, devido ao número de superfícies reflexivas e ao ambiente geral, o traçado de raios é mais perceptível na cena que Stephen McAuley destacou em seu Palestra do GDC (por volta das 23:00 no Reino Entre Reinos. Dado o tempo do projeto, deixamos isso de lado por enquanto. Esperamos chegar a isso depois do lançamento se conseguirmos fazer o DXR funcionar como queremos.
Digital Foundry: Como o jogo escala além da versão do PlayStation 5? Anteriormente falamos sobre distância LOD, distância de sombra, resolução de sombra.
Matt De Wald: Ele escala em algumas dessas mesmas coisas onde podemos aumentar os números, como o número de raios, e olhamos para fazer ainda mais do que no God of War original. Já estávamos trabalhando no Ragnarök naquela época, então poderíamos trazer alguns dos recursos nos quais a equipe estava trabalhando, então não fomos capazes de fazer isso desta vez. Como já oferecemos suporte do PS4 básico ao PS5 no modo de qualidade e desempenho, sentimos que tínhamos uma amplitude de configurações e poderíamos ajustar os números para PC: tamanho da textura, números de amostragem, resolução de névoa volumétrica, qualquer uma dessas coisas.
Digital Foundry: Para a proporção de aspecto aprimorada (32:9), foi preciso um grande esforço artístico para fazê-la funcionar?
Matt De Wald: Sim, foi muito trabalho de animação, porque temos muitos movimentos de câmera controlados, não apenas em cinemáticas, mas no que chamamos de GPMs, momentos de gameplay em que a câmera é controlada. Obviamente, os animadores hackeiam muitas coisas para distorcer as pessoas em posição ou mover as coisas, então, indo para 32:9, mais do que triplicamos a quantidade de trabalho que tivemos que fazer para consertar todos esses momentos e cinemáticas e identificar todos os pontos em que os personagens não são totalmente animados porque não deveriam estar na tela.
E o HUD, ele está mais maleável agora?
Matt De Wald: Ele ainda tem limitações; temos vários modos e ele se estica na tela ou fica centralizado. Tivemos que fornecer três modos – 32:9, 21:9 e 16:9, mais 16:10. O PC tem aquela coisa maravilhosa em que todos têm configurações personalizadas e você tem que descobrir como funciona em todas as diferentes configurações. É muito trabalho porque muitos jogos são criados sob medida para uma única plataforma, e é um ambiente fechado, então, quando o abrimos para o PC, é muito trabalho. Um agradecimento especial ao Mike, o programador do lado da IU, por fazer muito desse trabalho.
Digital Foundry: O primeiro jogo GoW para PC tem como padrão as configurações “originais”, com base nas usadas para PS4/PS4 Pro, enquanto Ragnarök tem como padrão médio. Quais configurações são mais próximas dos modos de desempenho e qualidade do PS5?
Matt De Wald: O nível baixo é próximo ao do PS4 básico, com algumas mudanças porque o PC não tem memória unificada e nossa CPU não é necessariamente tão potente, indo até o ultra, que é o modo de qualidade do PS5.
Digital Foundry: A computação assíncrona é usada na versão DX12 do jogo para PC?
Steve Tolin: Filas de cópias assíncronas para recursos e, em seguida, computar trabalhos o tempo todo, em qualquer lugar, em tudo.
Digital Foundry: O que você realmente gostou de fazer na versão do Ragnarök?
Steve Tolin: Acho que há três coisas que acertamos: aproveitando ao máximo o DX12 – indo totalmente multithread, fazendo PSOs funcionarem suavemente e a última coisa é a topologia da CPU. Os núcleos não são mais núcleos, caches e clusters de cache fazem mais diferença do que você imagina. Reorganizamos onde nosso trabalho é feito para um grande aumento de desempenho. É tudo o Detecção Híbrida Intel coisas. Isso é importante, mais times e jogos deveriam estar olhando para isso.
Matt De Wald: O meu vai ser mais chato, mas é que é ótimo trabalhar em um projeto onde você tem um ótimo ponto de partida. Ragnarök é um ótimo produto e estou muito orgulhoso da equipe que está trabalhando nele, então portar algo que já está em um bom estado é muito mais fácil. Também o fato de que fomos capazes de lidar com uma equipe tão pequena – ainda estamos trabalhando com a Jetpack que fez o último jogo, e ainda são apenas quatro caras lá. Estamos fazendo isso com quatro engenheiros, mais algum suporte interno de animadores, pessoal de QA e um punhado de pessoas com experiência no assunto. Estou sempre orgulhoso do que a equipe é capaz de realizar em um curto espaço de tempo.
Estamos super animados para que as pessoas joguem o jogo. É um público totalmente novo que pode experimentá-lo. Podemos ver todas as coisas malucas que as pessoas montam, é sempre divertido.
Eu também adoro assistir vídeos de vocês fazendo análise técnica, porque para nós é tipo “oh, não pensamos nisso. Por que não fizemos isso? Podemos fazer isso em um patch?” Estou realmente animado para lançar isso e ver quais são as reações e ver o que podemos fazer para torná-lo ainda melhor.