Passar para o conteúdo principal

Jogos e Consolas: O Factor Latência

Chegar a conclusões com a latência em jogo, com a ajuda da Infinity Ward e amigos.

O jogo não responde. Tem um certo atraso. O comando assume o papel de um mero conselheiro. Os controlos são lixo. Os críticos e jogadores podem ser rápidos a derrubar um jogo - e com razão, se merecer - mas no mínimo deveria existir uma maneira de quantificar o que ficou conhecido como a latência do controlador. A percepção humana é um instrumento impreciso, e similar à forma retrógrada como se estima a frame-rate que por vezes assombra as análises, uma aproximação mais científica é necessária para que se chegue ao coração do problema.

Se comparações rígidas podem ser feitas e uma compreensão mais aprofundada alcançada, situações mais marcantes podem ser anexadas a experiências de jogo mais específicas. Se uma metodologia comprovada pode ser criada, os críticos de videojogos podem informar mais correctamente os leitores, mas mais importante, os criadores podem beneficiar com esta ajuda e eliminar atrasos desnecessários do código. O resultado? Os jogadores têm jogos melhores, mais suaves e com um menor tempo de resposta.

"O nosso cântico de '60FPS 60FPS 60FPS!' seria em vão se tivéssemos um atraso na resposta das indicações dadas ao jogo," diz Drew McCoy da Infinity Ward. "Ajuda bastante estar apto a ver o resultado físico, medido, do que se passa no nosso jogo - especialmente se as coisas mudarem ou se alguém no escritório reclama que as coisas 'não parecem certas'. Se alguém se preocupa acerca da experiência do utilizador no jogo, eles deveriam ter um forte investimento na redução do atraso de resposta dos comandos dados ao jogo."

Alex Fryd, engenheiro sénior da Criterion, concordou com a nossa extensa entrevista tecnológica de Burnout. "Tentámos diminuir o atraso de resposta ao mais baixo possível, somente por ser uma melhor experiência. É uma das razões pela qual Burnout corre a 60FPS."

Basicamente, o atraso de resposta do controlador é bem fácil de definir. É a diferença de tempo, normalmente medido em frames por milissegundo, entre o momento em que se carrega no botão no controlador e a acção apropriada a ocorrer no ecrã durante o jogo. Quanto mais tempo demorar, menos resposta existe dos controladores, e menos satisfação se sente do jogo.

A metodologia para medir o atraso de resposta durante o jogo é bastante directo e foi primeiramente usado pelo co-fundador da Neversoft, Mick West, neste artigo do Gamasutra, que combinava a explicação das suas técnicas com medidas numéricas para os videojogos mais populares. Conseguir uma leitura bem precisa era bastante simples: coloca uma câmara capaz de gravar a 60FPS à frente do monitor e grava o videojogo enquanto filmas o controlador no mesmo plano. West usou uma Canon digicam para o efeito, enquanto que eu usei uma Kodak Zi6 devido ao seu preço reduzido e capacidade de gravação a 720p60 em HD. Assim que tenhas gravado os teus vídeos, basta contares os frames entre o momento em que carregas no botão e o resultado no ecrã. Como cada frame mantém-se no ecrã por 16.67ms, basta multiplicares esse valor pelo número de frames e - boom - é essa a latência.

Claro que existem complicações na teoria. Os televisores LCD têm uma latência própria. O processamento e redimensionamento pode demorar algo como cinco frames, dependendo da idade e do uso do ecrã. A solução de West foi algo engenhosa: calcula uma medida base usando um ecrã CRT (sem latência) e usa a mesma medida para calcular a latência do teu ecrã. Com isso em mente, consegui ver que o meu velho, ainda assim excelente, Dell 2405FPW tem uma latência de três frames (50ms!) a 720p, e dois frames a 1080p (o que não surpreende já que 1080p está bem mais próximo da resolução nativa de 1920x1200 do meu monitor). Belo televisor, latência bem terrível.

Como a Neversoft é responsável pelos últimos Guitar Hero, onde a latência é muito importante, não é de admirar que Mick West tenha mostrado tanto interesse no assunto, e as suas conclusões são intrigantes.

  • A latência mais baixa que um videojogo pode ter é 50ms (três frames) - a XBM da PlayStation 3 corre a essa frame-rate, mas poucos jogos a alcançam.
  • A maioria dos jogos a 60FPS têm uma latência de 66.67ms - Ridge Racer 7 é um exemplo.
  • Videojogos a 30FPS têm uma potencial de latência de 100ms, mas muitos excedem este valor.
  • Os criadores de videojogos deveriam testar os seus próprios jogos usando a técnica da câmara a fim de apanhar estes erros - West diz que o tempo de resposta abranda para os 300ms apenas por melhorar a personagem, e reconhece que é um problema que deveria ter sido resolvido antes de terminar a produção do jogo.
  • Usando GTAIV como exemplo, West sugeriu que uma reposta de 166ms é quando os jogadores notam um atraso nas acções, que pode também explicar o furor à volta de Killzone 2.
  • Os críticos de videojogos deveriam medir com precisão a latência para as suas análises onde o tempo de resposta é um problema, na esperança que os tempos de resposta possam passar a ser vistos mais minuciosamente

Acreditando na palavra de West no último ponto, decidi experimentar e além dos testes iniciais terem sido bem sucedidos, depressa me cruzei com um grande problema, tal como os comentadores da EG previram. Enquanto a metodologia soa perfeita, o problema da contagem das frames resume-se a qual será o "frame zero": isto é, o momento em que o botão do controlador é totalmente pressionado, e quando precisas de começar a contar. Descobri que a única maneira de verificar os resultados era testar continuamente até que surgisse um resultado comum que se evidencie. Aqui estão os meus esforços iniciais, usando o Killzone 2.

O vídeo conta os frames, mas todos os resultados precisam da redução de três frames. Neste caso, Killzone 2 aparenta ter uma latência de 12 frames entre o momento em que carrego no botão até ao momento em que a arma dispara. Mas analisar o 'frame zero' é difícil portanto a medida é apenas uma estimativa...

Baseado no vídeo, podemos ver que a latência, no actualizado Killzone 2, é de 12 frames. Reduz-se a latência de três frames do televisor em si e ficamos com 150ms de latência entre o momento em que o jogador toma uma acção e o momento em que o jogo responde. Várias pessoas reclamaram acerca da falta de resposta dos controlos nos jogos da Guerrilla Games no momento que o jogo foi actualizado (já agora, isto é capturado da última codificação), além de que baseado nas minhas experiências, acredito que os pontos mortos dos joysticks era o principal foco dos melhoramentos.

Mas o trabalho em conseguir uma medida que me deixou consideravelmente contente (mas não 100 por cento confiante) foi suficiente para fazer uma pausa. Num conteúdo onde a precisão tinha de ser a melhor, não senti que poderia continuar sem uma reflexão.

Felizmente, mentes melhores que a minha fizeram isso por mim. A Infinity Ward - criadores da saga Call of Duty - adoraram o artigo de Mick West e usaram as suas técnicas para eliminarem latências desnecessárias dos seus videojogos. Eles também procuraram melhorar a metodologia, removendo o problema do "frame zero" da equação e tornaram todo este processo mais fácil.