O Digital Foundry fez uma entrevista com desenvolvedores do jogo Immortals of Aveum, publicado pela EA.
Dá pra ver que a Unreal 5 recém atingiu um ponto mínimo de maturidade, e ainda tem muito a evoluir ao longo dessa geração.
Segue aqui a entrevista na íntegra:
Alguns trechos:
Dá pra ver que a Unreal 5 recém atingiu um ponto mínimo de maturidade, e ainda tem muito a evoluir ao longo dessa geração.
Segue aqui a entrevista na íntegra:
Inside Immortals of Aveum: the Digital Foundry tech interview
Ahead of the launch of Immortals of Aveum, Alex Battaglia and Tom Morgan spoke with Ascendent Studios' Mark Maratea, Ju…
www.eurogamer.net
Alguns trechos:
Do ponto de vista tecnológico, Immortals of Aveum, da Ascendant Studios, é um jogo muito importante. Excluindo Fortnite, criado pela própria Epic Games, é o primeiro jogo triple-A a ser lançado com todos os recursos de ponta da Unreal Engine 5. Esse é o Nanite baseado em microgeometria, capaz de níveis surpreendentes de detalhes, junto com o Lumen - uma solução de iluminação global baseada em ray tracing e mapas de sombra virtuais. Antes de Fortnite, The Matrix Awakens era o único lançamento UE5 baseado em console que víamos com esses recursos - parecendo incrível, mas com preocupações óbvias de desempenho.
O Ascendant não só está usando todos os recursos do UE5, como também mira 60fps nos consoles. É um jogo altamente ambicioso então, mas como a análise DF de ontem revelou, a computação da GPU só pode ir até certo ponto, então a qualidade da imagem necessariamente tem que sofrer um impacto, com o FSR 2.2.1 usado para aumentar a escala de uma resolução base de 720p Xbox Series X e PlayStation 5.
Com base no tempo, eu imagino que o jogo não começou na Unreal Engine 5, pois não existia - então ele começou na Unreal Engine 4 e migrou para o UE5? Como foi isso?
Mark Maratea: O projeto começou usando a UE 4.20, que saiu em julho, e a empresa foi formada em agosto [de 2018]. Quando a empresa começou, tudo era feito em blueprints sem mudanças no código do motor, como se fosse um projeto indie menor para prototipá-lo... Isso poderia ter mudado; a realidade das decisões de negócios em torno disso é que se alguém se aproximasse como editor três meses depois e dissesse: "você está chegando, mas vai ter que usar Frostbite ou o que quer que seja", isso teria [exigido] um pivotamento do projeto. Temos a sorte de ter uma fonte de financiamento muito generosa... um parceiro incrível, então isso nos deu autonomia para tomar essas decisões. Começamos com 4.20 vanilla ,4.21 vanilla, 4.23 personalizada, 4.25, 4.26, UE5 preview, UE5 real, UE5.1, e agora estamos enviando como UE 5.1.1.
A próxima grande coisa foi a composição do mundo - como o jogo transmite [dados], onde tudo vive. Fizemos grandes mudanças nesse sistema para acomodar esses mundos extragrandes e fazer a transição através deles e mantê-los dentro do nosso orçamento de memória... e então a magia do UE5 acontece, e a composição do mundo não existe mais porque eles a depreciaram. Como você pode imaginar, essa foi uma transição para todos nós - engenharia, todas as nossas equipes de conteúdo, artistas de nível e designers de nível em particular. Estávamos dizendo "aqui está a nova bíblia de como construir um jogo" e eles dizendo "primeiro, vocês precisam aprender a escrever... e, em segundo lugar, isso é uma loucura." Foi um grande projeto de inovação em nível de estúdio, tivemos que prototipar qual era o caminho certo, estabelecer as regras, descobrir o que a Epic não fez certo, mudar como nosso jogo funcionava, reescrever as regras novamente, e isso foi um processo contínuo até os últimos seis meses.
Tomamos 5.1 no Natal e passei minhas férias de Natal integrando [essa versão]... quando subimos para 5.1, não podíamos carregar nenhum ativo no jogo, então tive que basicamente reescrever todo o carregador de ativos em dois dias para não fazer isso para não perdermos todo o nosso progresso.
Isso explica o que vi quando carreguei o jogo sem o arquivo .ini? [nota: o código de revisão do PC foi enviado sem um arquivo .ini crucial, causando problemas iniciais rapidamente resolvidos] Estou acostumado a ver a CPU entrar em crise completa [ao fazer a pré-compilação do shader], mas aqui era como se a CPU estivesse tendo problemas até mesmo para atingir a utilização completa.
Mark Maratea: Sim, é tudo I/O. É meio que a pior versão de E/S porque você está carregando os PSOs do cache na memória, processando-os e salvando-os de volta em sua unidade C:. E então você está ignorando todas as otimizações porque ele tem que ir para uma unidade diferente - a maioria das pessoas não tem mais sua biblioteca do Steam em sua unidade C: - e você está ignorando as coisas DMA e o DirectStorage não funciona, então você leva um pouco de penalidade.
Você mencionou o DirectStorage - você está usando isso em consoles Xbox Series ou PC?
Mark Maratea: Sim, se [DirectStorage] estiver lá, a Unreal tentará automaticamente aproveitá-lo. Também aproveitamos a computação assíncrona, que é um aumento de velocidade maravilhoso quando acoplado ao DirectStorage, pois nos permite carregar sombreadores de computação diretamente na GPU e, em seguida, fazer matemática mágica e fazer o jogo parecer melhor e ser mais incrível. Ele nos permite executar partículas de GPU fora do Niagara sem causar uma carga assíncrona na CPU e não faz com que o thread do jogo atinja.
Como você decidiu o que foi feito via Nanite?
Julia Lichtblau: Quando mudamos pela primeira vez para a Unreal [5], viramos Nanite em tudo o que podíamos. Acho que o 5.0 não era [compatível com] folhagem, que veio um pouco mais tarde, mas assim que conseguimos ter a folhagem Nanite ligamos. Então começamos a recuar disso e [perguntamos] "isso realmente precisa ser Nanite?" Estávamos encontrando alguns ativos que [eram problemáticos devido a] sua construção e a maneira como as conchas UV foram configuradas, então tivemos que retrabalhar alguns desses ativos para torná-lo viável com Nanite ou alterá-lo totalmente e voltar ao método tradicional. Não podíamos usar [Nanite] para coisas que se moveriam, como bandeiras. Nós realmente jogamos tudo no balde Nanite, para aprender com ele. Agora conseguimos construir uma enorme página do Confluence [wiki corporativo] sobre como o Nanite deve ser tratado daqui para frente.
Como Nanite e mapas de sombra virtuais se traduzem para consoles como PS5 e Series X/S?
Julia Lichtblau: No lado da arte, realmente não tivemos que ajustar nada, mas talvez Mark tenha feito coisas no back-end para fazer esse trabalho para que nós, artistas, não tenhamos que nos preocupar tanto!
Mark Maratea: Eu diria que, de certa forma, funciona melhor nos consoles, estranhamente. A geometria virtualizada Nanite é muito pesada em fluxos, é tudo sobre E/S de disco. Portanto, a UE5 está reescrevendo o pipeline de E/S e as otimizações que eles fizeram para SSDs NVMe. Ele foi projetado para funcionar em consoles. No PC, eu não tenho ideia do que é a largura de banda de E/S de ninguém... A única desvantagem no console é quando você está usando Nanite, você realmente precisa usar texturas virtuais de streaming, você realmente precisa de um pool de texturas virtuais muito grande. Os consoles têm memória fixa, mas [uma única placa gráfica] pode ter mais memória do que o PS5. Então, otimizar para ambos é realmente difícil.
Nanite faz um bom trabalho de usar a memória que tem disponível, mas a exceção a isso é que os pools de textura virtual na UE não podem ser redimensionados - eles precisam ser inicializados na inicialização do mecanismo e não podem ser tocados novamente, [o que fornece] memória contígua totalmente alocada, o que é maravilhoso do ponto de vista de desempenho, mas [você pode ter problemas onde, por exemplo] há um cálice à distância, dois pixels, e ele precisa de um pedaço de uma textura [de uma alocação de pool de 500MB], e você não tem nada disso de volta até que a textura desapareça. O PC não se importa [se você ficar sem memória]; Na pior das hipóteses, vai para a memória virtual. Console diz: "Eu não tenho memória virtual, eu terminei". E não vai travar, mas vai causar problemas substanciais. Isso causou o que ficou internamente conhecido como o infame bug de paisagem, onde você simplesmente entrava em certas partes do jogo e parecia que alguém pintou uma paisagem de anime no chão, porque não poderia alocar para o pool de textura virtual.
Última edição: