Passar para o conteúdo principal

Programadores Secretos: o que o equilíbrio no equipamento de nova geração significa para os jogos

A nova série do Digital Foundry onde os criadores de jogos discutem os tópicos que mais os apaixonam.

Alguma vez pensaram sobre o que pensam realmente os programadores sobre as mais recentes notícias de videojogos e controvérsias? Nesta nova série de artigos do Digital Foundry, são os próprios criadores que assumem o protagonismo, oferecendo uma perspetiva única e fresca sobre os problemas atuais, livres para escrever o que querem sobre os assuntos que mais gostam, com uma confiança sólida de nossa parte que o seu anonimato será protegido. Resumindo, uma opinião fresca e informada de pessoas que criam jogos que gostamos, com zero envolvimento do pessoal do marketing ou RP.

Neste primeiro artigo, um programador multi veterano oferece a sua visão sobre o equilíbrio do equipamento - não só em termos da atual luta Xbox One/PlayStation 4, mas mais importante sobre a constituição tecnológica das duas consolas que vão definir os jogos que jogamos nos próximos anos. Se és um criador de jogos que gostaria de contribuir para a série Programadores Secretos, sente-te à vontade de nos contactar em digitalfoundry@eurogamer.net e fica tranquilo que quaisquer discussões serão lidadas com a maior das confidências.

Com apenas semanas até chegar a PS4 e XO, parece haver um tipo particular de mania em redor das capacidades técnicas destas suas máquinas muito similares. As especificações em bruto revelam números aparentemente a anos luz de distância, que claramente favorecem uma consola sobre a outra, mas para mim parece que a nível mais geral, as pessoas não conseguem ver o quadro geral. As diferenças nas especificações são relevantes, claro, mas muito mais importante é o design central - o equilíbrio do equipamento - e como isso define, e limita, os jogos de nova geração que vamos jogar nos próximos 8 a 10 anos.

Provavelmente deveria apresentar-me aqui. Sou um programadores de jogos que trabalhou durante anos numa variedade de géneros de jogos e consolas, tendo enviado mais de 35 milhões de unidades no total de um conjunto de jogos, incluindo principais AAA que tenho a certeza que jogaram. Trabalhei na PlayStation 2, Xbox, PlayStation 3, Xbox 360, PC, PS Vita, Nintendo DS, iPhone, Wii U, PlayStation 4 e Xbox One. De momento estou a trabalhar num jogo de alto perfil para a nova geração.

No meu tempo na indústria vi uma grande variedade de motores de jogo, abordagens ao desenvolvimento, revelações de consolas e apresentações nos bastidores de fornecedoras de consolas - tudo isto deu-me uma perspetiva particular sobre o atual estado da nova geração e como o desenvolvimento de jogos se adaptou para encaixar nas consolas que nos são fornecidas pelas suas fabricantes.

Foi motivado a escrever este artigo após ler um par de citações recentes que apanharam a minha atenção:

"Para desenhar uma boa e bem equilibrada consola tens mesmo que considerar todos os aspetos do equipamento e programas. É realmente sobre a combinação dos dois para alcançar um bom equilíbrio em termos de performance...O objetivo de um sistema 'equilibrado' é por definição não estar constantemente engarrafado em qualquer área. No geral com um sistema equilibrado deve raramente haver um só engarrafamento no percurso de qualquer fotograma - Andrew Goossen - amigo técnico na Microsoft

Tido por muitos como uma explicação de RP para as deficiências técnicas quando comparada com a PS4, a realidade é que o equilíbrio é de importância crucial - a sério, quando estás a desenvolver um jogo, alcançar um rácio de fotogramas sólido é o objetivo máximo. Não importa o quão bonito é o teu jogo, ou quantos jogadores tens no ecrã, se o rácio de fotogramas está continuadamente a cair, tira o jogador da experiência de volta para o mundo real, fazendo com que deixem o jogo se isso persistir.

Manter este rácio de fotogramas sólido conduz muitas das decisões técnicas e de design feitas durante as fases iniciais do projeto de um jogo. Por vezes são cortadas funcionalidades, não porque não podem ser feitas, mas porque não podem ser feitas dentro do rácio de fotogramas desejado.

"Se o rácio de fotogramas está continuadamente a cair, tira o jogador da experiência de volta para o mundo real, fazendo com que deixem o jogo se isso persistir."

Alcançar um rácio de fotogramas absolutamente sólido num AAA em várias plataformas não é fácil. Dead Space 2 e a sua sequela, apresentada aqui, conseguiram o sonho.Ver no Youtube

Na maioria dos jogos os principais contribuidores para o rácio de fotogramas são:

  • Podes simular toda a ação que decorre no ecrã - físicas, animação, HUD, IA, gameplay etc?
  • Podes renderizar toda a ação que decorre no ecrã - objetos, pessoas, ambiente, efeitos visuais, pós efeitos etc?

O primeiro ponto diz respeito a todas as coisas que geralmente são geridas pela CPU e o segundo a todas as coisas processadas tradicionalmente pela GPU. Ao longo de sucessivas gerações de plataformas a tecnologia que as sustentam mudou, cada geração dá-nos a sua mistura única de problemas:

  • Gen1:A PlayStation original tinha uma CPU com pouco poder e podia desenhar um pequeno número de objetos sombreados de forma simples.
  • Gen2: A PlayStation 2 tinha uma CPU com relativo pouco poder mas podia preencher o ecrã de definição padrão com centenas de milhares de triângulos transparentes.
  • Gen3:A Xbox 360 e a PlayStation 3 tiveram que lidar com a passagem para a alta definição, mas apesar das cPUs (especialmente as SPUs) serem rápidas, as GPUs tinham pouco poder em termos do suporte das resoluções HD com o tipo de efeitos que queríamos produzir.

Em todas estas gerações foi difícil manter um rácio de fotogramas estável pois a quantidade a acontecer no ecrã poderia fazer com que a CPU ou a GPU fossem um engarrafamento e o jogo perderia fotogramas. A forma como a maioria dos programadores corrigia estes problemas foi alterar a forma como se pareciam os jogos, ou se jogavam, para compensar a falta de poder numa área ou outra e manter o todo importante rácio de fotogramas.

Esta mudança começou perto do final da Gen2 quando os programadores perceberam que não podiam simular o mundo no nível de fidelidade que os designers queriam, pois as CPUs não eram rápidas o suficiente - mas poderiam passar mais tempo para o renderizar. Esta mudança no foco pode ser vista com clareza por volta de 2005/2006 quando jogos tais como God of War, Fight Night Round 2 e Shadow of the Colossus chegaram. Estes jogos eram graficamente fantásticos, mas a gameplay era limitada e geralmente usavam posições de câmara fortemente cortadas para restringir a quantidade de simulação necessária.

Depois, consoante progredíamos para a Gen3 a situação começou a reverter-se. A passagem para HD teve o seu impacto na GPU pois haviam agora mais do que 4x o número de pixeis para renderizar no ecrã. Portanto a não ser que os novos chips gráficos fossem 4x mas rápidos que os da anterior geração, não éramos capazes de ver quaisquer grandes melhorias visuais no ecrã, a não ser objetos de aspeto mais nítido.

"Perto do final da Gen2 quando os programadores perceberam que não podiam simular o mundo no nível de fidelidade que os designers queriam... mas poderiam passar mais tempo para o renderizar."

Shadow of the Colossus - aqui comparado na PS2 e na sua versão HD na PS3 - é um dos jogos mais avançados tecnologicamente da era Gen2 - e construído em redor do equilíbrio e limites da arquitetura PS2.Ver no Youtube

Novamente, os programadores começaram a perceber isto e refinaram a forma como eram feitos os jogos, o que influenciou o design geral. Eles começaram a compreender como tirar o máximo da arquitetura das máquinas e adicionaram mais camadas de simulação para tornar os jogos mais complicados e fortes em simulação, usando o poder CPU, mas isto significou que estavam muito limitados quanto ao que podiam desenhar, especialmente a 60fps. Se querias alta fidelidade visual no teu jogo, tinhas que criar uma mudança drástica fundamental na arquitetura do jogo e passar para 30fps.

Baixar um jogo para 30fps era visto como uma admissão de falhanço por muitos programadores e o público de jogadores no geral na altura. se o teu jogo não conseguia manter 60fps, reflectia-se mal na tua equipa de desenvolvimento, ou talvez a tua tecnologia de motor simplesmente não estava à altura. Ninguém fora da indústria naquela altura compreendia realmente o significado da mudança, e o que iria significar para os jogos, apenas podia ver que era um sinal de derrota. Mas era?

Passar para 30fps não significa necessariamente que o jogo fica muito mais lento, ou que acontece menos coisas. Significa na verdade que apesar da simulação do jogo pode estar na mesma a correr a 60fps para manter a resposta, o rácio de fotogramas permite aquela tempo extra de renderização e aumenta imenso a qualidade visual. Esta mudança liberta muito dos títulos para aumentar a qualidade visual sem se preocupar em alcançar a marca dos 60fps. Sem esta mudança não teríamos alcançado a qualidade visual que temos no conjunto final de jogos Gen3 - um nível de conquista que é na mesma espantoso se pensares que a GPU que dá vida a estes jogos foi lançada há mais de sete anos atrás. Agora se dizeres à imprensa especializada, ou até aos jogadores dedicados, que o teu jogo corre a 30fps, ninguém pestaneja, todos compreendem a contra-partida que isto significa para um jogo.

Falando de GPUs, lembro-me bem cedo no ciclo de vida das consolas que a Microsoft deu a saber que a tecnologia gráfica na 360 era "melhor" que a da PS3 e que tinham as especificações para o provar - algo que soa bem familiar em relação a recentes discussões XO/PS4. Este pequeno facto foi escolhido e repetido em muitos artigos e tornou-se parte do argumento padrão da consola que ocorria na altura:

  • "A PS3 é melhor que a 360 devido às SPUs."
  • "a 360 tem um chip gráfico melhor."
  • "A PS3 tem um melhor d-pad comparado com o da 360."
  • "O Xbox Live é melhor para conversa em grupo."

O problema com estes factos, isolados, é que são mesmo verdade - mas não pintam uma imagem correta de como é desenvolver jogos de atual geração. Uma das primeiras coisas que tens que abordar ao desenvolver um jogo é, qual a tua plataforma alvo?

"Como programador, não podes ser motivado pela consola mais poderosa, mas antes pelo meio termo alto que permite ao teu jogo brilhar e atuar em várias máquinas."

Será que o equilíbrio importa? Não é só sobre o design do equipamento, é sobre os programadores ajustar a sua tecnologia de jogo de acordo - é também a base pela qual o Criterion Games produziu um dos jogos de corrida com melhor aspeto desta geração, sem menosprezar os donos PS3, 360 ou Wii U.Ver no Youtube

Se a resposta a essa questão é "múltipla", estás efetivamente a obrigar-te a comprometer certos aspetos do jogo para assegurar que corre bem em todas. Não vale a pena ter um jogo que corre bem na PS3 e se engasga na 360, tens que olhar para o equilíbrio geral do equipamento. Como programadores, não podes ser motivado pela consola mais poderosa, mas antes pelo meio termo alto que permite ao teu jogo brilhar e atuar em várias máquinas.

Apesar de uma consola poder ter uma GPU melhor, as probabilidades são que este aumento na performance será desequilibrado pelos engarrafamentos noutras partes do motor de jogo. Estas podem estar relacionadas com as velocidades de transferência da memória, velocidades CPU ou faixa de conectividade em bruto. Em último caso não interessa onde ocorrem esses engarrafamentos, só o facto que ocorrem. Vamos olhar para uma frase de um estúdio que é bem conhecido pela sua abordagem altamente bem sucedida em multi-plataformas:

"A vasta maioria do nosso código é completamente idêntico. Muito muito pouco código personalizado. Escolhes um ponto de equilíbrio e depois ajustas cada um de acordo. Irás descobrir que um positivo contraria outro negativo..." - Alex Fry, Criterion Games

E outra recente declaração de uma grande figura no desenvolvimento de videojogos:

"É quase espantoso o quão próximas são nas capacidades, o quão comuns são...E que as capacidades que dão são essencialmente as mesmas." - John Carmack sobre a Xbox One e a PS4

A parte principal nessa declaração é que tem capacidades similares. Não performance, mas capacidades. Leio isso como Carmack a reconhecer que as diferenças no poder entre as duas são insignificantes ao considerar o desenvolvimento multi. Nenhuma delas está à frente da outra, e que ambas oferecem o mesmo tipo de experiência para o utilizador final com mínimo compromisso.

"Nesta geração de consolas parece que as CPUs não acompanharam o ritmo...o que significa que podemos ter que fazer compromissos novamente no design de jogos para manter os rácios de fotogramas."

A perspetiva da Microsoft sobre o conjunto CPU na XO. A nível geral, a PS4 é muito do mesmo. A noção de oito núcleos CPU x86 nas duas consolas de nova geração soa impressionante, mas estes são núcleos de baixo poder integrados em gráficas de nível desktop. O salto da atual para a próxima geração é significante no poder GPU que não é igualado por um aumento no processamento CPU.

Com as novas consolas a chegar em Novembro, o equilíbrio mudou novamente. Parece que teremos GPUs muito melhores, pois melhoraram significativamente nos últimos sete anos, enquanto a resolução HD alvo subiu de 720p para 1080p - um aumento bem mais pequeno. Apesar destas GPUs no papel não serem tão rápidas quanto as gráficas PC de topo, temos alguns benefícios ao ser capaz de falar diretamente com as GPUs com ligações ultra-rápidas. Mas nesta geração de consolas parece que as CPUs não acompanharam o ritmo. Apesar de serem mais rápidas que na anterior geração, não são muito mais rápidas, o que significa que podemos ter que fazer compromissos novamente no design de jogo para manter o rácio de fotogramas.

Ambas as consolas tem CPUs Jaguar com alguns reservados para o SO e outros disponíveis para os programadores de jogos usarem. Esses núcleos, no papel, são mais lentos que nas anteriores gerações de consola mas tem algumas vantagens principais. A maior é que agora suportam Out of Order Execution (OOE), o que significa que o compilador pode remarcar trabalho para acontecer quando a CPU está à espera que uma operação termine, tal como uma busca da memória.

Remover essas "bolhas" no encadeamento CPU combinado com a remoção de alguns problemas bem feios da anterior geração como load-hit stores significa que a contagem de Instruções Por Ciclo (IPC) das CPUs será muito maior. Um número maior de IPC significa que a CPU está efetivamente a trabalhar mais por cada ciclo do relógio, portanto não precisa correr tão rápido para fazer o mesmo trabalho que uma CPU da anterior geração. Mas não nos vamos enganar aqui - ambas as novas consolas estão efetivamente a juntar CPUs de baixo poder com núcleos gráficos de classe desktop.

Portanto o quanto vai tudo isto afetar os primeiros jogos nas novas consolas? Bem, penso que a primeira ronda de jogos provavelmente tentará ser impressionante graficamente (esta é uma "nova geração" afinal de contas) mas em alguns casos, isto poderá ser com o sacrifício da complexidade do jogo. A dificuldade inicial será usar eficazmente o poder CPU para prevenir que fotogramas da simulação caiam e até os estúdios conseguirem mesmo descobrir como melhor usar estas máquinas, os jogos não vão brilhar. Vão precisar começar a descobrir o ponto ideal onde tem um motor de jogo equilibrado que pode suportar a desejada complexidade de jogo em várias consolas. Isto aplica-se igualmente à XO e PS4, apesar dos pontos de equilíbrio serem diferentes, tal como eram na 360 e PS3.

"A primeira ronda de jogos provavelmente tentará ser impressionante graficamente (esta é uma "nova geração" afinal de contas) mas em alguns casos, isto poderá ser com o sacrifício da complexidade do jogo."

Ryse da Crytek podia ser descrito como um essencial e emblemático jogo de lançamento na Xbox One - pesado na GPU e uma forte declaração de intenção sobre os visuais de nova geração, mas sem o tipo de complexidade de jogo que podemos esperar ver mais tarde no ciclo do equipamento.

Uma área de crescimento que iremos provavelmente ver é no uso de GPGPU (descarregamento efetivamente tarefas CPU para o núcleo gráfico), especialmente em estúdios que não trabalharam no PC antes e não foram expostos à abordagem. Todas as consolas atuais tem GPUs com menos poder comparadas com PCs, portanto muito do tempo e esforço é investido a tentar passar tarefas da GPU para a CPU (ou SPUs no caso da PS3). Isto iria libertar valioso tempo na GPU para renderizar o mundo. E devo dizer que por todas as vantagens na GPU da 360 sobre o RSX da PS3, no final do dia, o equilíbrio do equipamento era na mesma basicamente o mesmo a nível global. Occlusion culling, backface culling, shader patching, efeitos pós-processamento - todos ouviram sobre o processo de mover trabalho gráfico da GPU para a CPU na PS3, mas a realidade é que - sim - também o fizemos na 360, apesar do seu famoso núcleo gráfico mais forte.

Então, onde nos deixa isto a curto prazo? Para resumir:

Irá a baixa velocidade do equipamento no geral da tecnologia das consolas afetar os jogos que são criados nas consolas?

A maioria dos estúdios, especialmente terceiros, não irá puxar pelas consolas assim tanto nos seus títulos de lançamento. Isto será devido a várias razões relacionadas com tempo, acesso ao equipamento (geralmente demora mais de dois anos a criar um jogo e tivemos equipamento de nova geração em Fevereiro) e para manter igualdade entre versões de consola diferentes.

Sim, a igualdade importa e o design em feito a pensar nela. Olhando para os primeiros dias da era 360/PS3, uma das vantagens chave que a Microsoft tinha era um ano isolada, portanto tivemos mais tempo com o ambiente de desenvolvimento. A paridade entre versões aumentou não só porque fomos ficando familiares com a PS3, mas também porque a tivemos ativamente em conta no design - exatamente na forma como Alex Fry do Criterion mencionou antes. Com as consolas de nova geração a chegar ao mesmo tempo, essa forma de pensar irá continuar.

Iremos ver muitos jogos a usar um tamanho de framebuffer mais pequeno?

Sim, provavelmente iremos ver muitos jogos sub-1080p (com conversão via equipamento) numa ou nas duas novas plataformas, mas isto porque provavelmente não existe tempo suficiente para aprender a GPU quando o ambiente de desenvolvimento, e por vezes as velocidades do relógio, estão a mudar. Se um estúdio lança um jogo sub-1080p, é porque não o conseguem correr a 1080p? É porque não tem a capacidade ou experiência internamente? Ou é uma escolha de design para colocarem o jogo a correr num rácio de fotogramas estável para o lançamento?

Esta escolha espelha a situação que tivemos anteriormente com a discussão 60fps vs. 30fps. Pode não ser o que a companhia quer para a parte de trás da capa, mas é a decisão certa para colocar o jogo a correr no rácio de fotogramas desejado. Novamente, é muito fácil apontar este facto e extrapolar daí para o conhecido "poder" das consolas, mas não leva em conta todas as decisões de design e o calendário de lançamento em conta.

"A resolução do ecrã é uma mudança fácil de fazer que tem um efeito dramático no rácio de fotogramas. 900p, por exemplo, é apenas 70 por cento do número de pixeis num ecrã 1080p."

Muita discussão rodeia a resolução de renderização nativa de Battlefield 4 nas novas consolas. Atualmente, podemos dizer que a resolução 1080p foi sacrificada em prol de rácios de fotogramas maiores e uma melhor sensação da experiência de jogo.

Compreender porque esta decisão foi feita e qual o impacto que tem num jogo quando é lançado ainda não está lá na psique do público dos videojogos. As pessoas ainda estão muito focadas nos números, mas consoante mais jogos começam a chegar às consolas e as pessoas começam a ter contacto com os jogos, penso que as opiniões vão mudar. A resolução back-buffer em si irá ser muito menos importante nas discussões comparado com a experiência geral do jogo em si, e muito merecidamente.

Então porque estão os estúdios a apressar os jogos quando sabem que poderiam fazer melhor com mais tempo?

No que diz respeito à escolha da consola, a maioria dos jogadores irá comprar baseado em factores tais como a consola anterior que compraram, as opiniões da imprensa especializada (até a algum ponto), quais as consolas que os amigos compram para os jogos multi-jogador, quais os exclusivos lançados (Halo, Uncharted etc). Isto significa que os estúdios estão debaixo de muita pressão para lançar jogos com novas consolas, pois ajudam a aumentar as vendas de consolas. E, se um estúdio lança um jogo no lançamento, provavelmente vão vender mais cópias pois os compradores de consolas precisam de jogos para mostrar as suas novíssimas consolas aos amigos.

Então, com tempo limitado, recursos limitados e acesso limitado a equipamento de desenvolvimento antes das consolas para venda chegarem, os estúdios tem que tomar uma decisão. Querem que um jogo tenha bom aspeto, que se jogue bem e mantenha um rácio de fotogramas sólido? Se sim, tem que ser feitos compromissos e a resolução do ecrã é uma mudança fácil que tem um efeito dramático no rácio de fotogramas (900p, por exemplo, é apenas 70 por cento do número de pixeis num ecrã 1080p). Isto irá provavelmente ser a principal razão por detrás da escolha da resolução nos títulos de lançamento e não um indicador qualquer do "poder" das consolas - comparem a apresentação sub-nativa de Project Gotham Racing 3 com a sua sequela, por exemplo.

Como programador sinto que sou demasiado crítico em relação aos jogos de outras pessoas e isto afetou o apelo de jogar novos jogos. Ao invés de os desfrutar como os programadores esperavam, estou demasiado ocupado mentalmente a apontar problemas na renderização, ou simulação de físicas, ou objetos a surgir pelos ambientes. É difícil ignorar algumas destas coisas, pois afinal de contas é o que estou treinado para ver e eliminar antes do jogo ser lançado. Mas espero que a primeira ronda de jogos seja capaz de ver além das coisas menores e desfrutar dos jogos tal como desejaram.

No entanto, duvido que vá jogar um jogo de nova geração e diga a mim mesmo, "Hmm, podes ver a diferença que a velocidade do canal frontal faz neste jogo" ou "Se pelo menos tivessem velocidades de memória ligeiramente maiores então este teria sido um grande jogo". Vamos apenas esperar que as consolas sejam lançadas, desfrutar da primeira vaga de jogos de nova geração e ver para onde nos leva. Podem ficar surpreendidos onde vamos dar...

Lê também