Ao olhar para o estado dos lançamentos de PC em 2023, é fácil começar a apontar o dedo. O jogo não está otimizado (o que quer que isso signifique), ou o editor o lançou rápido demais, ou as placas gráficas que a Nvidia está nos vendendo chegaram com muito pouco VRAM. Mas essas acusações, na maioria dos casos, são incompletas e presunçosas e, embora insinuem a realidade, não contam a história completa.
Conteúdo
- Qual é o problema?
- O que você pode fazer certo
- O caminho a seguir para portas de PC
Vídeos recomendados
Eu queria saber o que realmente estava acontecendo, então me sentei com alguns desenvolvedores para entender o estado dos jogos para PC e por que tantos lançamentos chegaram com problemas tão grandes. Mais importante, eu queria saber o que desenvolvedores e editores poderiam fazer para resolver esses problemas, e embora o caminho a seguir não esteja claro, está ficando óbvio que os desenvolvedores sabem que há uma problema.
Qual é o problema?
Primeiro, precisamos identificar o problema central com o PC, especialmente quando os jogos são lançados em estados jogáveis (se não perfeitos) nos consoles, mas chegam terrivelmente quebrados no PC. Em alto nível, o problema com o PC como plataforma é exatamente o que o torna tão atraente em primeiro lugar: flexibilidade.
Relacionado
- Com parcerias exclusivas de PC, todos perdem
- Os consoles ainda têm uma grande vantagem e estão prejudicando os jogos de PC
- Como um jogo de bodycam viral enganou a internet fazendo-a pensar que era uma filmagem real
Marc Whitten, vice-presidente sênior e gerente geral da Unity Create, diz que “a grande diversidade e variabilidade das configurações de PC nas quais os jogos serão jogados … expor questões inesperadas.” Whitten também aponta para “diferentes sistemas operacionais e novas atualizações de driver, calor e latência e personalização do usuário” como fatores que podem contribuir para o problema.
Essa é a resposta, tenho certeza, que a maioria das pessoas supõe ser a explicação.
Mas a questão, de acordo com Whitten, não é a falta de testes em si. Ele afirma que os jogos são “geralmente testados extensivamente durante o desenvolvimento”. O problema se resume a a escala de diferentes configurações que os desenvolvedores precisam testar, bem como as variáveis que eles não podem contabilizar para.
Como um experimento mental, digamos que um desenvolvedor definiu 100 configurações de PC diferentes para testar, variando a CPU, GPU, BATER, e disco rígido entre eles. Para registro, este é um número que estou apenas retirando, não algo que um desenvolvedor realmente referenciou como uma meta realista. Agora, pegue todas essas configurações e multiplique por dezenas de fatores adicionais: Qual sistema operacional você está usando? Qual versão desse SO? E a versão do driver? Quais configurações do BIOS estão habilitadas? Você tem algum software em execução em segundo plano, como Razer Synapse ou Corsair iCue?
O escopo das configurações possíveis vai muito além de apenas qual CPU e GPU você tem em seu sistema e esses fatores podem facilmente se multiplicar em dezenas de milhares de cenários que os desenvolvedores simplesmente não podem contabilizar para. Em um mundo ideal, os desenvolvedores podem corrigir os maiores problemas para as configurações de PC mais populares com as atualizações mais recentes de driver e sistema operacional, deixando apenas pequenos problemas específicos para resolver após o lançamento.
Whitten também não está sozinho nesse sentimento. John Johanas, diretor de jogos da Corrida Hi-Fie o mal dentro 2, diz que “é muito irreal pensar que você pode fazer um produto que funcionará perfeitamente no que parece uma configuração ilimitada de CPUs, GPUs, memória e, mais provavelmente, o que está sendo executado no fundo."
Hideyuki Miyashita, programador de sistemas em corrida de alta fidelidade, concordou, mas apontou especificamente para o custo de otimizar um jogo para todas as configurações possíveis: “Em termos de desempenho do PC, tornar cada recurso gráfico escalonável para diferentes configurações seria ideal; no entanto, os custos de desenvolvimento colocam um teto superior no suporte de escalabilidade realista.”
Esta não é uma história nova. A grande variedade de configurações de PC é o culpado comum em tudo, desde a dificuldade de otimizar jogos no PC até o motivo pelo qual não vimos O Quick Resume do Xbox aparece no Windows. A questão é o que os desenvolvedores podem fazer apesar do tempo e dinheiro limitados que possuem. Porque os PCs não estão ficando mais simples e os jogos ainda chegam quebrados na plataforma.
O que você pode fazer certo
Temos muitos exemplos de jogos com suporte para PC errado este ano. um primo exemplo é Star Wars Jedi: Sobrevivente, que atualmente fica em um status de revisão "Misto" no Steam apesar de ser um dos jogos mais aclamados do ano. A revisão principal diz: “Uma única falha corrompeu meu arquivo de salvamento de 99,8% NG + de 140 horas.” Caramba.
Entrei em contato com a equipe de desenvolvimento para ter uma ideia do que deu errado e, embora eles tenham sido inicialmente receptivos, a EA interveio e parou de retornar meus e-mails. Portanto, em vez de ver o que os jogos fazem de errado no PC, precisamos ver o que os desenvolvedores fazem certo.
Corrida Hi-Fi é um estudo de caso principal. É um novo jogo de um estúdio AAA e usa o infame Unreal Engine 4. Você pode pensar que é comparar maçãs com laranjas entre Corrida Hi-Fi e um jogo como Star Wars Jedi: Sobrevivente, mas eles têm mais em comum do que você pode suspeitar. Como aponta Johanas, “… o fato de o jogo ter uma estética de desenho animado dará a alguns usuários a percepção de que o jogo não deve ser um problema para rodar no PC de ninguém. Realisticamente, o jogo faz muitas coisas para conseguir o visual que buscamos e o constante mundo em movimento que é muito desgastante... Eu sabia disso e me certifiquei de tentar atingir aqueles expectativas”.
Definir esse objetivo desde o início parecia importante para Corrida Hi-Fia estabilidade. Os desenvolvedores observam que era um objetivo de design desde o início manter pelo menos 60 quadros por segundo (fps) devido ao fato de ser um jogo de ritmo e um jogo de ação, onde ficar aquém dessa marca causaria “soluços [que] poderiam resultar em uma dessincronização da música e uma experiência de jogo ruim percebida”, de acordo com Joanas.
Como a equipe da Tango Gameworks conseguiu? Ele se resume amplamente a três pontos principais: monitoramento cuidadoso de VRAM, operações assíncronas e armazenamento em cache PSO.
De acordo com Kosuke Tanaka, principal programador gráfico da corrida de alta fidelidade, a equipe monitorou o uso de VRAM em todas as etapas do desenvolvimento. Isso inclui monitorar cada nível, é claro, mas também o uso de VRAM de cada seção de arte, pedindo aos artistas que reduzam o uso de textura ou memória de malha para caber no orçamento do jogo. Isso também não é incomum no desenvolvimento de jogos.
O que funciona em Corrida Hi-Fio favor de é sua forte direção artística. Como aponta Tanaka: “Nosso estilo de arte nos ajudou um pouco porque não exigimos texturas PBR tradicionais, como mapas normais, rugosidade mapas ou mapas metálicos”. É uma prova de como trabalhar com limitações criativas e como isso pode influenciar a estabilidade do resultado final. produtos. Johanas diz que não era uma questão de escopo menor – era uma questão de “não haver necessidade de aumentar sem motivo”.
Perguntei à equipe o que ela aprendeu com Corrida Hi-Fi que poderia levar a projetos maiores e mais amplos, mas não é exatamente assim que o Tango está tirando lições do jogo. Na verdade, a equipe de desenvolvimento me disse que aprendeu muito mais sobre otimização com Ghostwire: Tóquio, que se encaixa mais no molde AAA tradicional, e levou essas ideias para dentro corrida de alta fidelidade, Não o contrário.
“Aprendemos muito do nosso conhecimento sobre como lidar com a gagueira no jogo em Corrida Hi-Fi da nossa experiência otimizando Ghostwire: Tóquio”, Miyashita me disse. Uma grande parte disso foi Cache de objeto de estado de pipeline (PSO). Este é um recurso disponível no Unreal Engine 4 que ajuda a reduzir a gagueira ao pré-compilar shaders antes de executar o jogo.
O principal problema é que o Unreal Engine 4 não faz isso automaticamente, levando a situações em que os shaders precisam compilar enquanto você joga, o que causa gagueira. Miyashita diz que “isso resultou em alguns pós-processos e VFX para causar gagueira”. O programador também diz que o cache do PSO é opcional, então precisa ser um foco específico para o desenvolvedor.
O armazenamento em cache não resolve todos os problemas, e é aí que entram as operações assíncronas. O Corrida Hi-Fi A equipe usou compilação assíncrona - onde os shaders são compilados separadamente do thread do jogo - mas também foi um grande foco, considerando que o jogo rodava no Unreal Engine 4.
Como vimos com outros jogos do Unreal Engine 4 como Star Wars Jedi: Sobrevivente e Redfall, o mecanismo não é muito bom em escalar para os muitos encadeamentos disponíveis nas CPUs modernas. como Miyashita explica: “O quão difícil pode ser o suporte multi-threading depende muito do motor usado arquitetura. Infelizmente, o UE4 fica um pouco aquém nesse aspecto.”
Em particular, o Unreal Engine 4, de acordo com o desenvolvedor, coloca a criação de atores (objetos/personagens) e widgets (UI e sobreposição) no mesmo thread de CPU do jogo. Isso significa que sempre que o jogo quiser, por exemplo, carregar um novo personagem, ele terá prioridade na thread. Miyashita diz que “isso pode resultar em uma criação complexa de atores e widgets, bloqueando o segmento do jogo por um longo tempo”. Isso é uma gagueira.
A solução são operações assíncronas. Miyashita diz que a equipe usa ferramentas de análise para identificar o que a CPU está fazendo quando os objetos são trazidos e que se esforcem para mover essas tarefas para diferentes tópicos para que o jogo não fique lento abaixo. Essa segmentação específica também pode ajudar no carregamento de recursos. Mover essas operações para uma estrutura paralela pode evitar as armadilhas da gagueira de streaming presentes em jogos como Espaço morto.
O caminho a seguir para portas de PC
Os jogos que estão saindo em estados desastrosos hoje começaram seu desenvolvimento anos atrás, então, embora eu tenha esperança que os lançamentos para PC irão melhorar com o passar do ano, pode levar vários anos até que vejamos esses problemas centrais abordado.
Whitten diz que “os desenvolvedores estão tão preocupados com o desempenho quanto os jogadores”, e esse é um sentimento que ouvi várias vezes. Existem maneiras de otimizar versões de PC, desde sombreadores pré-armazenados em cache até operações assíncronas e validação em uma ampla variedade de hardware. Mas a realidade é que os desenvolvedores não podem dar conta de tudo, devido a tempo ou dinheiro, e geralmente ambos.
O caminho a seguir aqui é simples. Primeiro, informe aos editores desses jogos que você prefere um atraso do que um jogo quebrado. Gritar com os desenvolvedores não adiantará muito — eles já conhecem o problema e provavelmente gostariam que ele fosse resolvido tanto quanto você. Em segundo lugar, seja cauteloso ao comprar um novo jogo para PC no dia do lançamento. É difícil ter paciência quando você está ansioso por algo (acredite, eu sei), mas esperar para comprar um jogo até o os problemas foram corrigidos enviam um forte sinal aos editores para investir mais tempo e recursos para garantir que os jogos sejam polidos no PC.
É fácil esquecer que este ainda é um território desconhecido. Agora, mais do que nunca, os jogos chegam ao PC no mesmo dia em que chegam aos consoles, muito diferente de alguns anos atrás, quando as portas do PC chegavam meses (ou até anos) depois. Duas gerações de consoles atrás, a maioria dos jogos era enviada apenas no mesmo dia para uma plataforma; na geração anterior, eram dois. Agora, espera-se que os desenvolvedores enviem no mínimo três plataformas no mesmo dia e, às vezes, mais de cinco se tiverem uma versão de última geração.
Não é difícil ver por que há problemas no PC, dado esse contexto, mas esperamos que versões mais sofisticadas estejam a caminho.
Este artigo faz parte ReSpec – uma coluna quinzenal contínua que inclui discussões, conselhos e relatórios detalhados sobre a tecnologia por trás dos jogos para PC.
Recomendações dos editores
- Tentei reviver o legado esquecido de Halo como uma franquia do Mac - e foi um desastre
- As piores portas de PC de todos os tempos - e por que elas eram tão ruins
- Star Wars Jedi: Survivor está sendo criticado no Steam como uma porta de PC 'totalmente lixo'
- Como o Unreal Engine 5 está lidando com o maior problema em jogos para PC
- AI está chegando para seus jogos de PC, mas você deve estar animado, não preocupado