Passar para o conteúdo principal

Metro Redux: A realidade de desenvolver jogos para PS4 e Xbox One

Uma discussão franca com a 4A Games acerca da nova geração de consolas.

No que toca a entrevistas de tecnologia, esta é excepcional. Quem leu os nossos últimos Q&As de Metro 2033 e Metro Last Light sabe que Oles Shiskovstov, chefe técnico da 4A Games, não se acanha quando se trata de ser frontal em assuntos que são importantes para ele, e esta transição para as consolas de nova geração certamente que tem muitos tópicos importantes para discutir.

A franqueza e objetividade de Ole fazem com que a suas entrevistas sejam sempre uma brisa de ar fresco. Neste caso, a 4A é a primeira produtora disposta a falar com rigor e sem qualquer tipo de censura sobre o processo de desenvolver jogos para as novas consolas, discutindo ao mesmo tempo os problemas e oportunidades que surgem com este novo hardware e software que puxa pela Xbox One e PS4. Nesta entrevista, Ole destaca tópicos que geraram muitos rumores e controvérsia no passado e que visam os criadores de jogos para a Xbox One, ao mesmo tempo que nos oferece um pequeno vislumbre daquilo que a Microsoft tem feito nos bastidores para melhorar o seu kit de desenvolvimento.

Nesta entrevista há uma montanha de informação que foi posta ao nosso dispor - o diferencial de performance entra a Xbox One e a PS4 (obviamente), uma franca avaliação do desempenho da memória ESRAM da nova consola da Microsoft, as consequências de ter tanto o CPU como GPU a partilhar a mesma memória ( e largura de banda), bem como observações no hardware do PC e DirectX 12. Há ainda algumas revelações também. Sabiam que agora a Microsoft permite aos produtores que estes cortem um atalho à volta do DX11 e comuniquem diretamente com o hardware, numa maneira semelhante do GNM API da Sony? E o quanta diferença faz aquele pedacinho de GPU dedicado ao Kinect que agora foi devolvido aos produtores?

Ainda estávamos a espera de vos poder trazer o nosso frente a frente do Metro Redux hoje. Contudo, houveram atualizações de última hora para a versão PC e isso significa que vão ter de esperar mais um pouco. Entretanto, incluímos algum material nas consolas em que temos estado a trabalhar. Para uma cobertura mais detalhada das versões das consolas, vale a pena verem a nossa análise última geração vs Redux. Do modo como as coisas estão, não temos qualquer problema em recomendar o jogo - é qualquer coisa de especial.

Digital FoundryNa nossa última entrevista estavam entusiasmados com as possibilidades oferecidas pelas consolas da nova geração. Agora acabam de enviar o vosso primeiro jogo Xbox One e PS4 para as lojas. Continuam entusiasmados com o potencial das novas consolas?
Oles Shishkovstov

Penso que aquilo que conseguimos fazer com estas novas consolas foi um belo feito, tendo em conta o tempo que tivemos com os kits de desenvolvimento no estúdio - foram apenas quatro meses de experiência com a Xbox One e seis meses com a ps4 (acho que os problemas que tivemos em fazer chegar os kits de desenvolvimento a Kiev são do conhecimento geral).

Mas a verdade é que ainda não usamos todo o poder computacional que temos ao nosso dispor. Por exemplo ainda não usamos computação paralela em muitos contextos por falta de tempo e pelo facto de que o suporte para as consolas estar ainda numa fase "alfa". Isso significa que ainda ficou muita performance dentro da gaveta que podia significar melhorias visuais e de gameplay e que certamente irá ser usada assim que nos familiarizarmos mais com o hardware.

Dos dois jogos, Metro 2033 foi o que recebeu mais trabalho de remasterização. Neste vídeo comparamos a versão Xbox 360 com a versão melhorada na Xbox One.Ver no Youtube
Digital FoundryA Xbox 360 e a ps3 eram máquinas com hardware design muito ambicioso para a era de 2006/2007. A Xbox One e a PS4 são muito mais contidas em termos orçamentais - terão elas aquilo que é preciso para durar tanto tempo como as suas antecessoras?
Oles Shishkovstov

Bem, obviamente que elas não vêm com aquele hardware topo de gama que podem comprar para um PC (embora por quantidades exorbitantes de dinheiro) hoje em dia. Mas acho que são máquinas relativamente bem equilibradas em termos de hardware, hardware esse que é bastante superior ao que a maioria das pessoas tem nos seus PCs de momento, em termos de performance. E não nos esqueçamos que ao programar a um nível mais baixo, mais próximo do hardware, conseguimos o dobro da performance que aquela que teríamos ao programar num PC com especificações equivalentes. Contudo, na prática, chegar a esses níveis de performance requer algum tempo.

Mas respondendo à questão : elas poderiam durar tanto tempo como as suas antecessoras. Lembrem-se: quando a ps3 chegou às lojas, a Nvidia G80 foi lançada ao mesmo tempo, e era duas vezes mais rápida que a unidade de processamento gráfico da ps3....

Digital FoundryNo fundo estamos a olhar para componentes de PC que já existem, integrados de uma forma muito inteligente. Pela primeira vez a arquitetura é a mesma em todas as grandes plataformas. Como é que isso é importante para vocês?
Oles Shishkovstov

Bem, uma arquitetura GPU semelhante em todas as plataformas é uma coisa muito, mesmo muito importante. A razão por detrás disso é que estes GPUs modernos são aparelhos muito complexos com picos de perda de perfomance que não são óbvios. Já não se pode dizer coisas do tipo: " Estamos limitados em termos de ULA (unidade de lógica e aritmética), ou em termos de ROP (unidade de output de renderização) ou já estamos limitados com endereçamentos de filtragem de texturas ou simplesmente limitados em termos de largura de banda". Já não há uma resposta simples para os problemas que vão surgindo. A resposta pode estar de algum modo relacionada com limitações na ULA, com o endereçamento das texturas e a falta de largura de banda, tudo ao mesmo tempo... E dominar tudo isto demora tempo.

Quanto ao CPU, já não é tão importante, desde que a performance chegue para dar conta do recado. Quanto à hierarquia de RAM e a sua performance, esta continua a variar de plataforma para plataforma.

Digital FoundryComo é que avaliaram as capacidades das consolas no momento em que receberam os kits de desenvolvimento?
Oles Shishkovstov

Limitamo-nos a fazer port dos jogos e a correr montes e montes de testes!

Um exemplo que posso dar: Metro Last Light na consolas da geração passada tem tarefas altamente vetorizadas e tarefas de geração de texturas otimizadas "à mão". Uma dessas tarefas demora 0.8 milisegundos a cumprir num SPU da PS3 e 1.2 milisegundos numa única hyper-thread da Xbox 360. Quando fizemos o perfil desta tarefa já vectorizada na PS4 esta demorou mais de 2 milisegundos! Isto parece mal numa frame de 16 milisegundos. Mas lá está, esta tarefa foi criada propositadamente para não sobrecarregar os velhinhos GPUs das consolas da geração passada, algo que não se aplica às consolas da nova geração, logo é contra produtivo. Temos de arranjar uma nova maneira de programar.

A versão Redux de Metro 2033 comparada na PS4 e Xbox One. Para uma melhor experiência de visualização, por favor selecione 1080p e veja o vídeo em full screen.Ver no Youtube
Digital FoundryA Xbox One tem uma contagem de cálculos computacionais mais baixa, bem como problemas bem documentados com a ESRAM e a largura de banda da memória. As diferenças de resolução em títulos multi-plataforma são comuns e em alguns jogos estamos a falar de 720p vs 1080p. O que é que pensa destas diferenças entre Xbox One e PS4?
Oles Shishkovstov

Bem, acho que já respondeu à sua própria pergunta: a PS4 é um pouco mais poderosa. Esqueceu de mencionar as contagens da unidade ROP, que também é importante - e não nos esqueçamos que tanto a CPU como a GPU partilham a mesma largura de para comunicar com a DRAM (em ambas as consolas). Quando estava a estudar e a correr testes na Xbox One vi muitos casos onde a GPU não era o rápida o suficiente, mas sempre quando o processador não estava a "trabalhar". E também já vi o caso contrário, onde o CPU não dá uma resposta à altura quando a GPU não está a contribuir, mesmo quando é dado ao CPU prioridade no acesso à memória. Por isso é que acho que a decisão da Microsoft dar um pequeno overclock ao CPU antes do lançamento foi bem tomada.

Contudo, contar o número de pixels no ecrã não é a melhor forma de medir as diferenças entre as duas consolas. Para além da resolução, há muitos mais factores ( e muito mais importantes) que afectam a qualidade de imagem. Conseguimos ter mais 40% de pixeis com a PS4 mas conseguimos ver com os nossos próprios olhos que isso não representa uma melhoria de 40% na imagem.

Digital FoundryÉ assim tão difícil de trabalhar com a ESRAM ?
Oles Shishkovstov

Na verdade, a dificuldade não é originada pela própria ESRAM mas pelo facto de que é muito pouca memória. Quanto à performance da ESRAM, é verdade que é suficiente para a GPU que temos da Xbox One. É verdade que na teoria a largura de banda máxima é comparada à da PS4, mas na prática é muito raro atingirmos esse valor (o que é normalmente feito com tarefas mistas de leitura e escrita simultânea FP16) e isso é um factor limitador.

Digital FoundryDirectX 11 vs. GNMX vs GNM : Para si quais são os pontos fortes e os pontos fracos das aplicações de desenvolvimento ao dispor dos produtores tanto na Xbox One como na PS4? Perto do lançamento houveram algumas críticas em relação á performance dos drivers da Xbox One e também problemas relacionados com a capacidade de processamento de tarefas do CPU em GNMX.
Oles Shishkovstov

Vamos por as coisas desta maneira: já vimos cenários onde um único núcleo do CPU estava ficava completamente atolado só pelo facto de pedirmos mais objectos no ecrã. Num cenário idêntico na PS4, era difícil de encontrar esses pedidos nos perfis gráficos quando estávamos a fazer a monitorização, porque eles demoravam pouco tempo por isso mal eram visíveis.

Não percebo porque é que escolheram o DX11 para ponto de partida numa consola. É uma consola! Porquê estarmos agora preocupados com um sistema antigo como o DX11? Na PS4, a maioria dos comandos para a GPU são umas variáveis de 32 bits , DWORD's, digamos que representam uns quantos ciclos de relógio no CPU. Na Xbox One este tipo de tarefas pode ser 1 milhão de vezes mais lento porque a aplicação de desenvolvimento usa mais variáveis com muito maior tamanho.

Mas a Microsoft não anda a dormir. Todos os kits de desenvolvimento que foram lançados antes e depois do lançamento da Xbox One estão com funções de pedido de objectos cada vez mais rápidas. Foram adicionadas montes de novas funcionalidades para tentar dar a volta ao modelo da aplicação do DX11. Até disponibilizaram uma aplicação para DX12/GNM do estilo "faça você mesmo". Contudo não a lançamos com o Redux porque não houve tempo.

Metro Last Light Redux comparado na PS4 e Xbox One. Para uma melhor experiência de visualização, por favor selecione 1080p e veja o vídeo em full screen.Ver no Youtube
Digital FoundryOs jogos da saga Metro têm uma reputação de puxar pelos gráficos, mesmo em PC's topo de gama é difícil de manter 60fps constantes. Joguei Metro Last Light durante horas a fio tanto na Xbox One como na PS4 e os 60 fps são basicamente fixos. Obviamente que alguns aspectos que estão presentes na versão PC devem de ter sido retirados ou desligados, mas numa era em que a própria Naughty Dog consegue correr o seu título da geração antiga a 1080p com 60fps constantes, qual é o segredo deste vosso sucesso?
Oles Shishkovstov

Não é segredo nenhum. Apenas adaptamos o jogo para correr assim nas consolas em questão.

Se nestas novas consolas as ferramentas que usamos não lidam bem com interpoladores, mudamos um espaço tangente de vórtices para um espaço baseado em pixeis. Se as tarefas são demasiado rápidas para o processador, tentamos juntar todas essas tarefas. Se são tarefas demasiado lentas, usamos computação paralela. Se a GPU não gosta de um tipo de programação por causa dos números de contagens em cada ciclo, usamos velhos truques para dar a volta à situação. E por aí em diante.

Simplesmente usamos a arte da optimização, que aliás também beneficia a versão PC, principalmente em na parte do CPU, visto que é onde as consolas tem menos poder, logo é onde mais otimizações deste tipo fazemos.

Digital FoundryMas certamente que era mais fácil fixar o jogo a 1080p e 30fps e depois concentrarem-se em puxar pelo máximo de detalhes visuais possíveis, certo? Porque é que apontaram para os 60fps em vez da aposta segura nos 30fps?
Oles Shishkovstov

Pelo simples facto de que conseguimos fazê-lo. Mas para o nosso próximo projecto, que ainda não foi anunciado, os designers querem o máximo de detalhe, efeitos, o máximo de tudo possível, por isso estamos a apontar para os 30fps.

Enviamos para as lojas um jogo com 60 fps constantes com uma qualidade visual equivalente àquilo que se vê no PC entre o alto e o muito alto. Em cada frame, temos um "custo" fixo de 30% desse tempo para pós processamento, o que nos deixa apenas 11ms para processar tudo aquilo que aparece no ecrã. Agora imaginem que tínhamos apenas 30fps, isso daria para termos visuais mais ricos, cerca de 2.5 vezes melhores.

Digital FoundryMetro Redux não é apenas um port, foi melhorado. Como é que escolheram as melhorias que iam fazer e como é que o design das novas consolas influenciou essas escolhas?
Oles Shishkovstov

Desde que o Metro Last Light foi para as prateleiras fomos colecionando sugestões dos nossos jogadores de forma a incluí-las em Metro Redux. O poder das novas consolas também nos permitiu melhorar o jogo em termos de gameplay, especialmente em termos de tiroteios e em envolvência geral - por exemplo o combate e as cinemáticas ficaram muito mais fluídos, e os controlos muito mais responsivos. Para além disso, a nova encarnação de Metro 2033 goza de muitas das melhorias introduzidas em Metro: Last Light: novas armas e as suas melhorias, um modo stealth mais viável e takedowns, AI melhorada com comportamento mais realista e todo o aspecto visual melhorado, entre outras coisas.

Digital FoundryQuais são os elementos de Redux que vos deixam mais satisfeitos?a
Oles Shishkovstov

Estamos bastante contentes com o facto de que os jogos estão muito mais equilibrados: correm melhor, mais rápido e parecem jogos mais "frescos". E o facto de que conseguimos por todo o universo de Metro com todos os DLC, modos de jogo e definições de dificuldade num único e definitivo pacote.

Análise de performance a Metro 2033 na Xbox e PS4. Ambos os jogos operam a 60fps com uma ou outra pequena perda de frames que passa despercebida.Ver no Youtube
Digital FoundryOs jogadores tem discutido muito a tese de que os produtores deviam de estar a fazer novos jogos em vez de andarem a converter estes jogos antigos para a Xbox One e PS4. O que é que tem a dizer sobre isso?
Oles Shishkovstov

Estamos a fazer as duas coisas. Temos estado a trabalhar num jogo novo e também em Redux. Tínhamos recursos livres para tratar de Redux enquanto o nosso novo projecto ainda estava numa fase de pré-produção e agora já precisamos de toda a equipa de Redux no novo projecto que já está a todo o vapor! Mas como viram, Redux não é um mero port, é uma experiência completamente nova, especialmente a parte de 2033!

Digital FoundryO vosso novo jogo vai ser um jogo melhor por causa do tempo que passaram a criar Redux?
Oles Shishkovstov

Sem dúvida.

Digital FoundryMelhoraram os dois jogos da saga Metro, mas Redux são dois jogos com o mesmo cerne. Da última vez que falamos, deu nos algumas pistas sobre o futuro, mais especificamente sobre animação de personagens baseadas em física. Agora que já estão a trabalhar na nova geração de consolas, podem dar mais algumas pistas sobre aquilo em que estão a trabalhar.
Oles Shishkovstov

Para os jogos em que estamos a trabalhar, os nossos designers estão a pensar mais numa experiência do tipo sandbox - menos linear mas ainda muito focada num grande enredo. Não vou entrar em detalhes, mas também vai exigir muito dos nossos programadores. Também estamos a melhorar os gráficos em muitos aspectos, por exemplo recentemente desenvolvemos uma nova técnica de oclusão ambiente global baseada em física (ao invés de oclusão global, como SSAO). Não vou ainda falar do nosso motor de renderização baseado em física porque os nossos artistas ainda se estão a adaptar ao mesmo.

Digital FoundryConsta que todos os grandes títulos next-gen que estão a ser lançados no mercado tem todos alguma forma de trabalho com luz modelada de acordo com princípios físicos. Qual é a vossa escolha para o vosso primeiro jogo nesta nova vaga de consolas?
Oles Shishkovstov

Para que serve essa técnica e para que é que a usamos? Primeiro significa que não temos de ajustar tanto os conteúdos para que eles fiquem "bonitos". Como resultado, os artistas que tratam da luz adoram esta técnica, mas os artistas que tratam das texturas odeiam-na. Tecnicamente é uma técnica que visa preservar a imagem espelhada em cada pixel. Na verdade, Redux vem com uma técnica que visa preservar a energia desta imagem espelhada, que é um pequeno mas importante aspecto neste tipo de técnicas, mas deixamos todos esse tipos de ajustes para os artistas. De qualquer das maneiras, estamos a pensar em adoptar essa técnica para o nosso próximo título para não depender tanto dos artistas, pelo menos por agora.

Digital FoundryO que é que acham do Directx 12 e do Mantle da Nvidia? Tem tudo a ver com o estreitar de laços entre o desenvolvimento de jogos para PC e para Xbox One e PS4?
Oles Shishkovstov

À parte do facto de que estas aplicações nos permitem programar a um nível mais baixo, muito mais perto do hardware, essas aplicações representam uma mudança de paradigma naquilo que toca ao seu próprio design. O DX11 dava conta do recado por nós enquanto que o DX12 volta a meter a responsabilidade toda nas nossas mãos, o que nos permite programar numa abordagem de muito mais baixo-nível. Quanto ao Mantle, na minha modesta opinião, acho que é uma aplicação temporária.

Digital FoundryAté que ponto é que o DX12 é importante na Xbox One? O processador já não está demasiado limitado quando se tratar de endereçar a GPU?
Oles Shishkovstov

É importante. Todos trabalho de tracking de dependências requer uma fatia enorme do poder do CPU. E quando estamos a falar do buffer de comandos com múltiplas threads que tínhamos com o DX11, estamos a falar de um autêntico flop, enquanto que o da DX12 já é a escolha acertada.

Testes de frame-rate no título mais exigente, Metro Last Light, revelam que a tanto Xbox One e a PS4 dão uma boa resposta, mantendo-se constantemente nos 60fps. Esta consistência admirável é sem dúvida um grande ponto a favor.Ver no Youtube
Digital FoundryVoltando à reserva destinada ao Kinect no GPU que fez correr muita tinta em Junho - pelo que percebi isso fez com que vocês passassem de uma resolução de 900p para 912p, que parece algo modesto. O quão importante é que foi esta atualização? Acha que foi sobrevalorizada?
Oles Shishkovstov

O problema é mais complicado que isso. Não do género : "Tomem lá mais 10% de performance que vos roubamos", às vezes podemos usar 1.5%, outras vezes 7% e por aí fora. Podíamos ter apontado para uma resolução mais alta, mas apontamos antes para uma estabilidade 100%, com o frame e v-sync fixos. Isso não quer dizer que pudéssemos ter feito mais com mais tempo, e o kit de desenvolvimento continua a ser melhorado todos os meses.

Digital FoundryPode-se dizer que os produtores de jogos para PC apontam para níveis de performance da arquitectura Nehalem quando estão a fazer os jogos? Será que a parelha DX12/Mantle sugere que aquilo que interessa é ter níveis de performance mais altos ao invés de incentivar o consumidor a comprar processadores mais rápidos?
Oles Shishkovstov

Bem, a performance dos processadores neste momento estagnou devido a vários factores - sendo o económico um deles. Eu diria que os produtores de jogos para PC se deve de focar na performance dos CPUs que estão nas consolas.

Digital FoundryO desenvolvimento de jogos para consolas tem sempre um impacto no desenvolvimento de jogos para PCs. Se tivesse que construir agora um PC para gaming com o futuro em mente, que escolha faria?
Oles Shishkovstov

É difícil de responder a essa sem provocar guerras entre os fãs. Comprem sempre os componentes mais poderosos que a vossa carteira consegue suportar, com um particular ênfase na placa gráfica.

Digital FoundryA Nvidia anunciou um conjunto de memórias unificadas para o PC. O quão importante é isso para o futuro desta plataforma?
Oles Shishkovstov

O problema com memória unificada é a coerência. Mesmo nas consolas, onde vemos componentes altamente integrados, temos a opção de mapear a memória ora para o CPU, ora para o GPU ou então "completamente coerente". E ser completamente coerente não é útil porque significa que vamos perder performance. Quanto ao PC tradicional? Ter que recorrer a algum tipo de bus externo só para recolher as caches, vai ser muito lento.

Digital FoundryAlguma coisa a dizer do SteamOS? Sei que têm o Metro Last Light a correr em Linux com uma versão antiga do OpenGL, mas pelo que ouvi dizer estão a trabalhar numa versão mais avançada....
Oles Shishkovstov

Sim, o Metro Last Light em Linux era baseado em OpenGL 3.2 - é estável mas não suporta nenhuma das funcionalidades "topo de gama". Para o Redux estamos a replicar a versão DX11, com quase todas as funcionalidades. O problema disso é que a vossa placa gráfica terá de suportar OpenGL 4.

Digital FoundryAgora com a o Tegra K1 da Nvidia nas plataformas móveis temos uma situação onde temos um CPU com um poder razoável combinado com capacidades gráficas ao nível da geração passada de consolas, bem como acesso a uma aplicação de desenvolvimento completa em OpenGL. Vêm nas plataformas móveis como uma potencial opção para os vossos jogos?
Oles Shishkovstov

Definitivamente. K1 é uma autêntica estrela brilhante no mundo das plataformas móveis. Quem me dera que o céu estivesse cheio de estrelas como a K1 para que fosse economicamente viável para nós produzir para essas plataformas!

Lê também