Explicando a importância do Frame Rate (aka aquele velho debate dos 60fps)

Olá amigos, hoje vamos falar de um tema muito debatido nos dias de hoje nos fóruns e sessões de comentários de sites de jogos eletrônicos: O FRAME RATE.

O frame rate pode também ser conhecido como FPS (frames per second), taxa de quadros ou ainda cadência de acordo com a Wikipédia, como preferir. Muito se fala na importância de um jogo ter um frame rate alto, mais especificamente que ele rode a 60fps. A ideia deste texto é explicar pra você o que exatamente isso significa e qual a real importância disso. É muito provável que você já tenha uma boa noção do assunto, mas nem todo mundo tem, então, vamos começar do básico:

Um filme é composto por um monte de quadros estáticos passando bem rápido. Até aí ok, né? A taxa de quadros diz pra gente o quão rápido passam esses quadros. Aqui, por exemplo, temos o Faquinho dando tchau em 2 quadros por segundo:

E aqui em 4 quadros por segundo:

A regra básica é que quanto mais quadros por segundo você tem, mais fluida e natural fica a sua animação. Aumentando o número de quadros a coisa fica ainda mais natural e eventualmente você não consegue mais perceber com tanta facilidade quando acontece a troca de um quadro pro outro:

Aqui está em 24fps e eu esqueci de animar a volta

Na vida real não existe exatamente uma taxa de quadros, as coisas simplesmente se mexem. Mas no cinema, depois de alguns anos de experimentação, se chegou a um consenso de que 24fps era uma taxa boa o suficiente. Com 24 fps já fica bem difícil pro público perceber as trocas de quadro e é uma taxa boa pra se sincronizar o áudio. Inclusive esse padrão só foi definido quando o cinema com som começou a se popularizar e se percebeu que era bom ter um padrão pra isso (inicialmente, as câmeras eram a manivela e era comum o operador girar mais rápido ou mais devagar pra mudar a velocidade do filme, criando tensão ou humor na cena. Doido, né?).

E, obviamente, quanto mais quadros tem um filme, mais caro é o custo dos rolos de filme. Mesmo na era digital, mais espaço de armazenamento é necessário pros quadros extras, então eu imagino que dinheiro tenha influenciado bastante na escolha deste padrão.

A trilogia “O Hobbit” teve uma versão filmada em 48fps e só foi exibida em cinemas com projetores especiais. É uma tentativa de mudança aí que talvez pegue com o tempo, mas por enquanto o padrão deve continuar em 24.

Mas enfim, VIDEO GAMES!

Video games normalmente rodam em 30 ou 60fps, provavelmente porque nos EUA e no Japão as TVs funcionam com uma frequência de 60Hz. Mas a princípio as mesmas regras se aplicam: quanto maior a taxa de quadros, mais “real” e “fluida” fica a animação das coisas na tela. Mas os jogos têm algumas coisinhas a mais que o cinema não tem.

Enquanto em um filme os quadros já estão todos desenhados e basta trocar um pelo outro, em um jogo o próximo quadro tem que ser desenhado na hora de acordo com os comandos dados pelo jogador e com os cálculos feitos pelo jogo.

Simplificando bastante a coisa, se um jogo roda a 60fps, isso significa que a cada 1 segundo o estado atual do jogo é atualizado 60 vezes e a tela tem que ser redesenhada 60 vezes pra mostrar o que está acontecendo no momento. A cada atualização, o jogo precisa pegar informações vindas dos botões que o jogador apertou, calcular a movimentação dos bonecos, a inteligência artificial, a colisão, a física e seja lá mais o que estiver acontecendo no jogo, calcular coisas como incidências de luz, sombras, acertar as posições de tudo na tela e aí desenhar a cena toda na sua TV.

fps

O loop principal de um jogo, de forma BEM resumida

Se o jogo for multiplayer, em algum momento o jogo vai ter que enviar e receber coisas da Internet também.

Enfim, é bastante coisa que acontece. Quanto mais complexo o jogo, quanto mais detalhados os gráficos, mais cálculos tem que ser feitos, e às vezes 1/60 segundos não é tempo suficiente pra que o hardware consiga calcular isso tudo. Quando o hardware não aguenta o tranco, o frame rate começa a cair e o jogo fica instável, mais lento e travando. Ou então acontece o que é conhecido como “screen tearing” (rasgamento de tela, em tradução livre), que é quando o jogo começa a desenhar a próxima tela sem ter terminado de desenhar a anterior. A opção do Vertical Sync, ou só VSYNC, como aparece escrito na maioria da tela de opções dos jogos de PC, força o jogo a esperar que uma tela seja desenhada inteira antes de começar a desenhar a próxima, evitando o tearing, mas às vezes deixando o jogo mais lento e causando uma queda no frame rate.

Um exemplo bem nervoso de screen tearing, diretamente da wikipédia

Sobram aí 3 opções pro desenvolvedor: diminuir a taxa de quadros e dar mais tempo pro hardware calcular tudo, manter a taxa mas diminuir a complexidade e o nível dos detalhes (o que às vezes implica em diminuir a resolução do jogo) ou tentar otimizar o código de algum jeito.

A terceira opção funciona mas nem sempre é viável. Não é sempre que os desenvolvedores têm tempo ou conhecimento necessário do hardware pra sair varrendo o código procurando o que melhorar e tentando umas gambiarras, e muitas vezes simplesmente não dá pra otimizar mais do que já está.

A escolha entre diminuir o frame rate ou deixar o jogo “mais feio” acaba dependendo do que se julga mais importante. Uma taxa de quadros mais alta também traz como benefício um controle mais preciso já que o input consegue ser registrado mais vezes por segundo e em um jogo de luta ou em um jogo de ação mais rápido como os da Platinum, manter o jogo em 60fps acaba sendo prioridade.

Mas tem vezes que a prioridade é impressionar o jogador com o visual e aí meio que se dane a taxa de quadros. O primeiro Star Fox, no SNES, tinha como grande chamariz ser um jogo em 3D (algo muito impressionante pra época) e rodava em aproximadamente 20fps. Na época ninguém ligava porque MEU DEUS O TROÇO É 3D! Então, acho que valeu a pena.

Em 1993 isso era sensacional… e era bem mais lerdo do que este gif. Inclusive, se você jogou Star Fox em um emulador, você jogou uma versão mais rápida do jogo.

The Order 1886 impressionou muita gente pelo nível dos detalhes e foi feito basicamente pra mostrar pra todo mundo o quão bons os gráficos do PS4 podiam ser. Pra manter um alto nível de detalhes, não só o jogo roda em 30fps como também com barras pretas em cima e em baixo, numa resolução um pouco mais baixa, dando ao hardware menos coisas pra calcular na tela durante cada atualização.

Nos dois casos, os jogos não sofrem com isso porque a jogabilidade não exige tanta precisão quanto um jogo como Bayonetta exigiria, e também porque eles provavelmente foram projetados com essa taxa de quadros em mente. Simplesmente aumentar o fps sem fazer ajustes pode causar problemas como o que Dark Souls II tem no PC, onde as armas se deterioram duas vezes mais rápido. Isso acontece porque a taxa de quadros foi dobrada mas o jogo não foi rebalanceado pra isso, logo o cálculo da deterioração das armas é feito duas vezes mais do que deveria.

Mortal Kombat X mantém a taxa de quadros em 60fps durante a luta, quando a responsividade dos controles e das animações é importante, mas força o jogo a rodar em 30fps durante os fatalities e x-rays, momentos em que a câmera se aproxima mais e o nível de detalhes dos personagens passa a ser mais importante pra garantir uma cena bem nojenta.

Durante a luta mesmo o rosto e os ossos do pescoço do Kung Lao não precisam ser tão bem definidos (eu tentei escolher um fatality mais light)

E mesmo baixando a taxa de quadros e tirando coisas do jogo ele ainda fica instável. E nenhuma gambiarra é suficiente. Aí o jeito é deixá-lo com frame rate meio instável mesmo ou transformar num exclusivo do new 3DS.

Falar de gambiarras pra fazer um jogo funcionar com uma taxa de quadros razoável mantendo o máximo de detalhes possível é um assunto que eu gosto muito e poderia passar mais uns parágrafos falando disso, mas acho que já deu pra entender como funciona.

Resumindo, seria legal se tudo pudesse rodar com uma taxa de quadros alta, mas existem outros fatores importantes no desenvolvimento de um jogo que não permitem que isto aconteça sempre e muitas vezes nem precisa. Jogar um jogo em 30fps não é o fim do mundo, alguns dos melhores jogos dos últimos anos rodam em 30fps e eu imagino que os desenvolvedores tenham bons motivos pra isso. Se preocupem menos com números e mais com o conteúdo dos jogos de vocês.

Espero que este artigo tenha sido útil, mesmo que seja só para melhorar o nível dos debates nas seções de comentários, inclusive nessa aqui embaixo.

E até a próxima!

Tuba

Sobre

Arthur “Tuba” Zeferino é co-criador do site, programador e brother indie.

Visit the best review site wbetting.co.uk for William Hill site.