Deprecated: Constant FILTER_SANITIZE_STRING is deprecated in /home/dzencomb/dozebits/wp-content/plugins/wordpress-seo/src/conditionals/third-party/elementor-edit-conditional.php on line 22

Deprecated: Return type of Requests_Cookie_Jar::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Cookie/Jar.php on line 63

Deprecated: Return type of Requests_Cookie_Jar::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Cookie/Jar.php on line 73

Deprecated: Return type of Requests_Cookie_Jar::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Cookie/Jar.php on line 89

Deprecated: Return type of Requests_Cookie_Jar::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Cookie/Jar.php on line 102

Deprecated: Return type of Requests_Cookie_Jar::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Cookie/Jar.php on line 111

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetExists($key) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 40

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetGet($key) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 51

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetSet($key, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 68

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::offsetUnset($key) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 82

Deprecated: Return type of Requests_Utility_CaseInsensitiveDictionary::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/dzencomb/dozebits/wp-includes/Requests/Utility/CaseInsensitiveDictionary.php on line 91
FPS: Nunca Vi, Nem Comi, Eu Só Ouço Falar
Deprecated: strtolower(): Passing null to parameter #1 ($string) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/wordpress-seo/src/generators/schema-generator.php on line 185

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/functions.compat.php on line 77

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/modules/photon-cdn.php on line 80

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/functions.compat.php on line 77

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/modules/photon-cdn.php on line 80

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/functions.compat.php on line 77

Deprecated: preg_match(): Passing null to parameter #2 ($subject) of type string is deprecated in /home/dzencomb/dozebits/wp-includes/formatting.php on line 1591

Deprecated: strip_tags(): Passing null to parameter #1 ($string) of type string is deprecated in /home/dzencomb/dozebits/wp-includes/formatting.php on line 2235
Artigos Nintendo Opinião PC Playstation Xbox

FPS: Nunca Vi, Nem Comi, Eu Só Ouço Falar O que significa , como isto influencia os seus jogos e por que os consoles ainda miram nos 30 fps?

Com o fim da E3, a poeira assentando e a mídia e os jogadores enxergando os anúncios com olhos mais críticos, parece que o FPS virou a bola da vez quando se trata da discussão sobre os lançamentos que veremos no futuro. Tudo isto influenciado pelo lançamento dos consoles de meia geração (Playstation 4 Pro e Xbox One X), mais poderosos que seus antecessores.

Mas você sabe o que é FPS e como isto afeta seus jogos? Entende o que seria necessário para se obter os idealizados 60 quadros por segundo ou porque a maioria dos desenvolvedores ainda se prende à taxa de 30? Venha comigo, pois vou tentar explicar.

O que é FPS?

Não, não estamos falando aqui dos jogos de tiro em primeira pessoa, ou first person shooter, mas sim do termo frames per second, em português: quadros por segundo. A sigla FPS diz respeito à quantidade de quadros que são transmitidos à TV a cada segundo de jogatina. Menos frequentemente, o termo pode ser substituído por frequência de quadro, expressada em hertz.

Assim como acontece nos filmes e animações, o que vemos na tela durante um jogo não está realmente se mexendo, mas sim é composto por uma série de imagens estáticas que, quando reproduzidas em alta velocidade, dão a impressão de movimento fluído. Quanto mais imagens estáticas temos neste espaço de tempo de um segundo, mais suave, fluído e realista parece o movimento da cena (em termos de suavidade, e não necessariamente de qualidade da animação).

 

O que você vê na tela é resultado de uma série de imagens estáticas.

Parece ser um caso simples de “quanto mais, melhor”, mas a situação é um pouco mais complicada.

A Sétima Arte e os Quadros por Segundo

Sempre que vai ao cinema (salvo exceções), você está vendo um filme que foi capturado na taxa de 24 quadros por segundo (ou fps), que tornou-se um padrão no final dos anos 20. A reprodução, por sua vez, é feita em 48 ou 72 imagens por segundo, com cada quadro sendo reproduzido na tela duas ou três vezes (respectivamente), reduzindo a fadiga visual.

Mas se “quanto mais quadros, melhor”, porque os filmes não são capturados em 48 ou 72 quadros, já que os projetores oferecem esta capacidade? Algumas pessoas dirão que, assim como a baixa profundidade de campo, o desfoque de movimento e o color grading, a taxa de 24 fps dá ao cinema o “efeito cinematográfico” e gravações com mais quadros perdem a cara de cinema – tanto que a função de interpolar quadros nas TVs modernas, suavizando o movimento, é chamada de “efeito novela (soup opera effect)”. Neste artigo, o cineasta Vincent Laforet fala sobre como O Hobbit – filmado e reproduzido em algumas salas com 48 quadros por segundo – perde parte da magia e envolvimento do espectador por causa da alta taxa de quadros. A experiência de O Hobbit não deu muito certo e o cinema continua focando nos 24 quadros por segundo.

O Hobbit chegou em algumas salas de cinema com 48 quadros por segundo, mas nem todo mundo gostou da novidade.

Entretanto, vou tentar me prender a questões mais práticas e menos subjetivas. O principal motivo para o cinema começar utilizando 24 fps é que não se trata de “quanto mais, melhor”, mas sim de “custo e benefício”.

Filmar em uma taxa maior significa utilizar mais filme (película na qual a captura é gravada), e como para um filme de duas horas são utilizadas muitas e muitas horas de filme, a taxa maior poderia significar o dobro ou triplo de material, aumentando muito os custos tanto de captura quanto de armazenamento. Assim, o cinema optou por encontrar um meio termo entre ter quadros o suficiente para uma animação fluída (onde você fosse incapaz de distinguir os quadros individuais) e o custo de produção. Desenhos animados, que precisam ser desenhados quadro a quadro, utilizam taxas ainda menores, como 12 fps.

Mas o que isto pode nos ensinar sobre jogos eletrônicos?

A Décima Arte: Videogames

No caso do cinema, entre um quadro de filme ser capturado (filmado) e chegar à tela da sua casa ou do cinema, ele passa por diversos processos de pós-produção que podem demorar horas ou dias (em Transformers: A Vingança dos Derrotados, a cena em que o robô broca derruba um prédio exigia cerca de 288 horas de renderização para cada quadro). Não importa o tempo que o quadro leva para ser produzido (embora isto afete os custos), pois no fim todos os quadros estarão prontos e preparados para serem reproduzidos em alta velocidade.

Infelizmente, seu console ou computador não tem este luxo quando se trata de jogos eletrônicos, pois cada quadro precisa ser calculado e produzido em tempo real, enquanto o jogo acontece. Para cada imagem que aparecerá por décimos de segundo na cena, o hardware precisa – de forma bastante simplificada – identificar o input do jogador (quais botões foram pressionados no controle), calcular a reação e animação do personagem, definir o comportamento das inteligências artificiais, processar a física, definir a posição dos objetos e suas texturas na cena, calcular os pontos de luz e sua influência nos objetos e as sombras produzidas e finalmente renderizar (transformar todos estes cálculos matemáticos em uma imagem estática) o quadro.

Quando se trata de jogos eletrônicos, cada quadro precisa ser calculado e produzido em tempo real, enquanto o jogo acontece.

Acha que terminou? Ainda não. Depois de fazer tudo isto, o jogo ainda precisa aplicar efeitos de pós-produção, como motion blur (borrão de movimento), desfoque de profundidade de campo, anti-aliasing, color grading ou mesmo distorções cromáticas, para só então enviar a imagem para a tela da sua TV ou monitor. Todo este processo precisa ocorrer em uma fração minúscula do segundo, pois depois disto este processo se reinicia para o quadro seguinte do jogo¹.

¹: isto é uma simplificação do assunto. De modo geral, enquanto a GPU está processando um quadro, a CPU já está trabalhando no seguinte. Isto coloca um atraso imperceptível de um quadro nos comandos do jogador, mas permite que ambas trabalhem ao mesmo tempo, dando mais tempo para cada processo e evitando ociosidade.
Esta cena é resultado de cálculos complexos, que o console precisa fazer 60 vezes a cada segundo.

Também é importante ressaltar que, diferentemente do cinema, nos games a taxa de quadros não influencia só a animação, mas também o tempo de resposta aos comandos, tornando o jogo mais responsivo. Reduzindo o tempo entre cada quadro, o jogador pode reagir mais rapidamente ao jogo, que responde com mais agilidade aos comandos inseridos. Por isto jogos de luta ou competitivos tendem a favorecer o desempenho.

O Dilema 30 vs. 60 fps

Devido ao fato da maioria das TVs no mundo trabalhar com uma taxa de atualização de 60 ou 120 hertz (quantidade de vezes que a imagem na tela é atualizada), os jogos para console costumam se dividir entre 30 e 60 fps. Como mais nem sempre é melhor – mas sim uma relação de custo/benefício – muitos desenvolvedores para consoles optam por otimizarem seus jogos para a taxa de 30 quadros por segundo.

Faça o teste entre 30 e 60 fps. Clique para ampliar em uma nova aba.

Produzir um título de alto desempenho – aproveitando ao máximo os recursos oferecidos pelo hardware – é um jogo de concessões, como já explicamos em um artigo anterior sobre resolução. Ao escolher entre 30 e 60 fps, a desenvolvedora precisa medir o que ela consegue fazer a máquina produzir, em termos de imagem e lógica (física, AI e etc), em 0,033 ou 0,016 segundo, respectivamente. Com metade do tempo para trabalhar, isto significa abrir mão de resolução, anti-aliasing, distância de visualização e muitos outros recursos que podem deixar o jogo mais bonito. Colocando de forma simplista, é uma escolha entre gráficos e desempenho.

Os belos jogos que você tem hoje rodando a 30 fps nos consoles, como Uncharted 4, The Witcher 3 Wild Hunt, Forza Horizon 3, seriam “menos bonitos” com a exigência de rodarem a 60 fps, devido às concessões necessárias para reduzir o tempo de produção de cada quadro.

Para rodar a 60 fps, Horizon: Zero Dawn teria de abrir mão de parte da sua beleza e resolução.

Mas isto não significa que não existam títulos rodando a 60 fps nos consoles, pois alguns desenvolvedores optam por fazerem estas concessões para terem jogos mais fluídos, como o caso de Titanfall 2, que abre mão da resolução (rodando em 900p e 720p no PS4 e Xbox One, respectivamente) em prol do desempenho. Podemos citar ainda diversos jogos competitivos, onde a necessidade de uma maior precisão nos controles exige uma taxa maior de quadros, como Overwatch, Street Fighter V ou Tekken 7, ou mesmo jogos single-player, como Wolfenstein, Doom e Nioh.

Não existe nenhum impedimento ou proibição por parte do fabricante do hardware quanto ao target de 30 ou 60 fps. Nem Sony, nem Microsoft, nem Nintendo impedem os desenvolvedores de abrirem mão de parte dos gráficos em prol do desempenho – cabe aos programadores esta decisão. Também não é uma questão simplesmente do console ser capaz ou não, visto que o Playstation 2 já tinha jogos em 60fps (Devil May Cry 3, Gran Turismo e muios dos jogos de luta) ou mesmo o Playstation 1 com Tobal.

Em 1997, Tobal já rodava a 60 fps no Playstation.

Tudo é uma questão de “orçamento de desempenho” e relação custo/benefício. O quanto vale a pena, aos olhos dos desenvolvedores, abrir mão de recursos que seriam utilizados para melhorar visualmente os jogos em prol de permitir uma maior taxa de quadros. E não trata-se apenas de gráficos, pois a lógica do jogo, como cálculos de física ou AI, também precisa caber no espaço de tempo de renderização do quadro, que é menor quando falamos em 60 fps. Dependendo das necessidades do jogo, isto pode significa menos inimigos na tela, uma AI menos complexa ou abrir mão da quantidade de elementos na cena com física realista.

Podemos considerar ainda o fato de que algumas técnicas de pós-processamento, como o motion blur (desfoque de movimento), ajudam a reduzir a sensação de intervalo entre os quadros, aumentando mais ainda a fluidez percebida, mesmo em 30 quadros por segundo.

No artigo “O Quanto Importa a Taxa de Quadros?”, publicado em 2009 pela Insomniac, responsável por títulos que rodam a 60 fps como a série Ratchet and Clank no Playstation 3, a desenvolvedora avalia através de estatísticas internas que uma maior taxa de quadros não afeta significativamente as vendas ou as avaliações de um jogo. Como resultado, os títulos seguintes da empresa abriram mão dos 60 fps para obter de gráficos melhores, como em Sunset Overdrive e o novo Ratchet and Clank.

Com base nisto – e até que as coisas mudem – é possível imaginar que mesmo que os consoles atuais fossem mais potentes, os desenvolvedores continuariam optando por investir esta potência em melhores gráficos, em vez de um melhor desempenho.

Super Mario Odyssey roda a 60 fps, mas elementos distantes são animados com taxas menores, aliviando a carga de processamento nas áreas onde o jogador não irá focar sua atenção.

A taxa de quadros só é realmente considerada um problema quando, por falta de otimização ou algo assim, o jogo não consegue manter uma taxa constante de quadros. Mesmo acima dos 30 fps, uma taxa flutuante de quadros altera de forma imprevisível a resposta dos controles e o ritmo visual do jogo, afetando gravemente a experiência do jogador e fazendo a animação “trepidar” ou “engasgar”. Este efeito, sim, costuma a ter impacto nas avaliações, como foi o caso de The Last Guardian, para Playstation 4, que pode se transformar em pouco mais que uma apresentação de slides em alguns momentos do jogo.

O Mundo dos Computadores

Muita gente utilizará o PC como prova de que é possível atingir gráficos incríveis e desempenho acima dos 60 fps, o que é uma verdade. Porém, é muito difícil comparar o universo dos PCs e dos consoles, por diferencias cruciais entre ambos os sistemas.

A principal – e crucial – diferença é que nos PCs cabe ao jogador, não ao desenvolvedor, determinar o equilíbrio entre gráficos e desempenho. Enquanto ao proprietário do console chega um pacote fechado e pré-definido pelo desenvolvedor, os jogadores de PC lidam com uma tela de ajustes na qual é possível buscar o equilíbrio preferencial entre gráficos e desempenho.

Nos PCs, cabe ao jogador determinar o equilíbrio entre gráficos e desempenho de sua preferência.

A combinação teclado e mouse também é um fator importante, pois sua sensibilidade e precisão enfatizam a diferença na resposta aos comandos. Por isto, a maioria dos jogadores de PC tendem a preferir desempenho acima dos 60 fps.

Finalmente, os proprietários de PC não estão presos a um hardware pré-definido, colocando nas mãos deles o controle também sobre o custo da equação “custo/benefício”. Se você ainda não encontrou o equilíbrio perfeito entre gráficos e desempenho, nada o impede de investir mais alguns “trocados” em memórias, processadores e placas de vídeo. O céu é o limite, tanto em termos de custos, quanto de desempenho, permitindo que o jogador extrapole em muito o target visado como alvo pelos desenvolvedores.

Novos Consoles: Pague pelo seu Desempenho

Entretanto, parece que as fabricantes de hardware decidiram – devido à popularização de TVs com resolução 4K – dar um gostinho do universo dos PCs aos jogadores de consoles, oferecendo a eles a possibilidade de investirem um pouco mais de dinheiro em troca de uma máquina com melhor desempenho. Com a entrada do Playstation 4 Pro e do Xbox One X no mercado, temos agora faixas distintas de desempenho, com faixas igualmente distintas de preço.

Mas ainda precisamos medir o impacto destes consoles no mercado (o Xbox One X será lançado apenas no final do ano, enquanto a aceitação do Playstation 4 Pro ainda parece tímida e pouco significante) e a resposta das desenvolvedoras a eles. No momento, a resposta não parece ser um aumento no desempenho para um alvo de 60 fps.

O Xbox One X é um console extremamente potente, mas os anúncios inicias parecem ainda estar mais concentrados no aumento de resolução do que no target de 60 fps.

O avanço das TVs para a resolução 4K complicam as coisas, pois só o aumento de resolução (com 4x mais pixels que a resolução 1080p) já aumenta consideravelmente o consumo de recursos dos consoles. Boa parte da potência adicional destes consoles precisa ser dedicada ao aumento da resolução dos jogos, mesmo considerando-se técnicas como o checkerboarding.

Além disso, estes consoles tiveram aumentos expressivos em suas capacidades gráficas (GPU), mas menos impactantes em termos de CPU, fazendo com que seja difícil aumentar o desempenho em jogos muito exigentes em termos de física, AI ou outros recursos que dependam do processador, como é o caso – segundo o site Digital Foundry – de Destiny 2. Somando-se a tudo isto, jogos competitivos ainda precisarão manter a paridade de desempenho com seus irmãos mais novos, o Playstation 4 e o Xbox One S.

Em definitivo, continuará cabendo ao desenvolvedor determinar onde melhor investir a capacidade de processamento do console – considerando tanto aspectos técnicos quanto comerciais. Salvo exceções (como Nioh, que oferece ao jogador a opção de priorizar gráfico ou desempenho), é muito provável que a prioridade continuem sendo os gráficos e efeitos visuais, que são elementos que afetam mais as vendas e avaliações de um título.

Nioh oferece ao jogador a opção de priorizar a resolução ou o desempenho, permitindo jogar em 60 fps tanto no Playstation 4 Base quanto no Pro. Para muitos (eu inclusive), a melhor forma de apreciar o jogo.

Uma taxa maior de quadros, e consequentemente uma melhor precisão e resposta aos controles do jogador, poderia beneficiar em muito o mundo dos consoles. Mas quando olhamos para a atual lista de candidatos a jogos do ano e vemos uma série de jogos que miram nos 30 fps (em alguns casos, até com dificuldade para atingir constantemente este alvo, como é o caso do muitíssimo bem recebido Zelda: Breath of the Wild, para Nintendo Switch), parece ficar claro que a busca pelos 60 fps ainda não uma prioridade no futuro dos consoles.


PS.: muita gente tem restrições quanto a certas faixas de desempenhos em jogos, como sentir enjoo de movimento em títulos com baixa ou alta taxa de quadros, ou preferindo a taxa de 30 fps em determinados jogos por conferir ao título um visual mais “cinematográfico”. Neste artigo, dei preferência por me ater a questões mais técnicas, em vez de mergulhar a fundo em características mais subjetivas, embora elas ainda sejam válidas.

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/functions.compat.php on line 77

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/modules/photon-cdn.php on line 80

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /home/dzencomb/dozebits/wp-content/plugins/jetpack/functions.compat.php on line 77