Vamos calcular as latências em Portugal para o Google Stadia e o Xcloud

Para este exercício vamos precisar de saber a latência local, a velocidade mínima exigida de conexão aos serviços e a latência aos servidores. Felizmente… temos como, aproximadamente, calcular isso tudo.

Basicamente a latência que podemos esperar de um jogo que corre sob streaming é fácil de ser calculada.

O ciclo que cria latência e que se repete constantemente é o seguinte:

1 – Ao tempo que o controlador e o sistema demora a aceitar o Input vamos adicionar a latência dos dados de ida pela internet até chegarem ao servidor ao servidor.

2- No servidor temos de render o fotograma de acordo com o input e codificar/comprimir o mesmo para envio.



3- Transmitir o fotograma para o cliente o que acrescenta a latência da transmissão dos dados do fotograma aos quais se somam novamente a latência dos dados de volta pela internet até chegarem ao sistema.

4- Descomprimir o fotograma e apresentar o mesmo no ecrã.

Naturalmente estes valores mudam de jogo para jogo, sendo que certas situações dependem da performance do hardware que está a ser usado do lado do cliente, como é o caso total do ponto 4 que depende não só da capacidade do processador usado, como igualmente do delay que o ecrã introduz, assim como a primeira parte do ponto 1 que depende igualmente da capacidade do hardware, bem como do controlador usado. O ponto 2, esse depende completamente do hardware do servidor.

Ora apesar de não ser possível sabermos os valores exactos individuais de cada um dos passos descritos nos pontos acima, podemos saber mais ou menos tudo de outra forma. É que se analisarmos bem o que está em cima, basicamente o que ali se passa é exactamente o mesmo que temos no jogo local, sendo que somente se acrescenta o tempo de envio e recepção pela internet, bem como o tempo de codificação do fotograma enviado e o tempo de envio do mesmo.

O tempo de codificação do fotograma é basicamente negligenciável, assim como o tempo que o fotograma demora a passar podemos considerar que é igualmente super reduzido. Basicamente os tempos que realmente importam ali ter em conta são os da latência da rede, que varia conforme o tipo de ligação é Fibra, Cabo, ADSL, ou rede móvel.

Para termos então uma ideia bastante precisa do que teremos de latência, precisamos então de ver a latência normal que um jogo a correr localmente possui, e somar a latência das ligações. Todo o processamento realizado nos servidores será considerado semelhante ao local, uma vez que o número de fotogramas é fixo em 30 ou 60 e como tal demorará 33.33 ms ou 16.66 ms a calcular cada um, dependendo se o jogo corre a 30 ou 60 fps.

Felizmente para nós, em 2007 a Eurogamer fez um pequeno artigo onde mediu a latência local de vários jogos, ou seja o tempo que verificávamos ter em cada um deles, entre o pressionar do controlador, e a visualização do efeito no ecrã. E será com base neles que vamos verificar a diferença entre o jogo local e o streaming

Uma boa lista para partirmos, e como se percebe, temos aqui já latências elevadas, mesmo sendo jogos locais. Basicamente, com excepção da versão Single Player de Killzone Shadow Fall, todos os restantes jogos correm a 60 fps, o que quer dizer que cada fotograma é rendido em 16.66 ms. Isto quer dizer que cada um dos jogos apresenta a seguinte demora, em fotogramas, entre o pressionar do botão, e a visualização do resultado.

Esta é uma medição complexa, e que obrigou a Eurogamer a vários testes e médias, sendo que o motivo de tal é simples.

No exemplo de 60 fps, cada fotograma acontece a 16.66 ms, o que quer dizer que só nos é possível visualizar resultados nesses espaços de tempo. Logo, o tempo  entre o pressionar do  botão e a visualização é afectada por isso.

Eis um exemplo – f representa o fotograma, os traços o tempo de cálculo (cada  um = 1 ms), p o pressionar do botão, e v a visualização do resultado:

>f<—————->f<—————->f<—————->f<—————->f<

>p<—————————————<+++++++++>v<

No exemplo de cima temos um caso de Input lag de 39 ms para fotogramas de 16 ms (valores arredondados), e como podem ver, o caso em que a visualização deveria ser vista, e em que se dá a representação do novo fotograma que a possui, coincidirem é rara. Daí que estas medidas feitas pela Eurogames são extremamente difíceis de ser feitas. Seja como for, o que é relevante que se perceba é que se o que a Eurogamer nos mostra é o tempo de resposta real do sistema, e não o tempo que o utilizador vai percepcionar uma vez que este é superior, dado que, salvo coincidências muito raras, ele terá de esperar (representado em cima pelos +) até ao novo fotograma para ver o efeito da sua acção. Daí que, tendo essa realidade em mente, vamos calcular aquela que é a espera mais espectável, em fotogramas, partindo dos valores da Eurogamer.

E para isso vamos dividir a latência pelo tempo de cálculo dos fotogramas (16.66 ms para jogos 60 fps e 33.33 em jogos 30 fps), arredondando o resultado ao fotograma posterior.

Jogos com 16.66 ms entre fotogramas

COD: Infinite Warfare – 39.3 ms- 2,35 fotogramas => 3 fotogramas
COD: Modern Warfare Remastered – 40.3 ms – 1.49 => 3 fotogramas
Battlefield 1 – 56.1 ms – 3.378 => 4 fotogramas
Halo5 – 63 ms – 3.78 => 4 fotogramas
Battlefield 4 – 63,7 ms- 3,83 => 4 fotogramas
Titanfall 2 – 71.8 ms – 4.3 => 5 fotogramas
Overwatch – 76.8 ms -4.66=> 5 fotogramas
Doom 2016 – 86.8 ms – 5.22 => 6 fotogramas
Killzone SF  Multi – 89.8 ms – 5,39 => 6 fotogramas

Para a versão single de Killzone SF, com cada fotograma a ser calculado em 33,33 ms, temos:

Killzone SF  Single – 110 ms – 3.3 => 4 fotogramas

Vamos agora ver quanto teríamos de acrescentar para o jogo em Streaming. E para isso vamos medir a latência para os servidores da Google e para a Azure da Microsoft. Eventualmente estes valores podem ser melhorados no futuro, mas isso é uma suposição, pelo que vamos contar com os valores reais actuais, usando as ferramentas oficiais dadas pelas duas empresas. Nesse sentido vamos usar os seguintes links, e considerar o melhor dos casos possíveis (o que pode não corresponder depois à realidade da conexão que pode forçar uma ligação a um servidor com piores latências pela saturação do que possui a latência mais baixa), quer para rede fixa, Wi-Fi e 4G.

Latências para os servidores

Para a Google vamos a www.gcping.com:

Esta página apresenta valores que ao fim de alguns segundos ficam praticamente fixos. Basicamente ela apresenta a média das latência que vão sendo medidas, e sendo essas relativamente estáveis, essa média estabiliza bastante rapidamente.

Os melhores valores encontrados foram na ligação para a Bélgica, e onde medimos o seguinte usando ligações da NOS.

Rede fixa: 47 ms
Rede Wi-fi: 52 ms
Rede 4G: 65 ms

Eis uma captura de ecrã da leitura na rede fixa.De notar que com variações de poucos ms há algumas alternativas ao servidor Belga, o que quer dizer que para Portugal a Google apresenta algumas alternativas que terão pequeno impacto nos resultados.

Para a Azure, vamos usar o azurespeedtest.azurewebsites.net. Tal como no caso anterior, este website dá-nos a média que vai sendo medida de latências ao servidor. No entanto uma situação salta-nos logo à vista, o facto que estas medidas possuem por vezes saltos para cima muito elevados, voltando depois a descer. Como consequência, ao contrário das medidas da Google, aqui temos variações pontuais elevadas.

Esta situação torna a média fornecida pouco fiável. Nas nossas medições, mantendo a página aberta por alguns minutos, visualizamos máximos de 110 ms e mínimos de 50 ms. Qual usar? Dado que a latência estabilizou no valor mais baixo, era esse que íamos usar, mas o que verificamos foi que subitamente esse valor subia, e por vezes voltava a saltar para os 110. Nesse sentido, optamos por usar um valor intermédio que nos apareceu mais vezes, os 76 ms.

Uma visita a www.azurespeed.com, um outro programa de medições de latência para o azure, que nos dá medições mais pontuais, permite-nos perceber melhor estas variações. A Azure, pelo menos nas ligações NOS, é extremamente instável a nível de latências, com constantes oscilações para cima e para baixo, e tal torna-a muito instável a nível de médias.

Eis então os valores médios medidos no primeiro website:

Rede fixa: 76 ms – França central
Rede-Wifi: 89  ms – Sul do Reino Unido
Rede 4G: 115 ms –  Irlanda do Norte

Eis a captura para a rede fibra:

Tanto os valores obtidos na Google como na Azure, se fossem medidas para um jogo local online seriam valores perfeitamente aceitáveis e dos quais não iriam existir queixas. A grande questão é que aqui não estamos a falar da latência a que estamos habituados a medir para um servidor de jogo, mas sim uma latência que vai ser metida no interior do nosso processamento. Isso quer dizer que o impacto será diferente, e teremos de ver em que é que tal afecta a jogabilidade num serviço de streaming. A latência para o servidor será outra coisa à parte, aqui não considerada, mas que caso a quiséssemos acrescentar ela teria ainda de acrescentada aos valores aqui encontrados. Aqui apenas verificamos a interferência no processamento e consequente alteração do tempo de resposta aos comandos, não a interacção com outros jogadores num servidor que só acontece depois disso.

Teremos então as seguintes latências de resposta para os dois serviços, nas diversas ligações:

Latências globais

Google – Rede fixa Fibra:

Com 16 ms por fotograma

COD: Infinite Warfare – 86.3 ms- 5.18 fotogramas => 6 fotogramas
COD: Modern Warfare Remastered – 87.3 ms – 5.24 => 6 fotogramas
Battlefield 1 – 103.1 ms – 6.18 => 7 fotogramas
Halo5 – 110 ms – 6.60 => 7 fotogramas
Battlefield 4 – 110.7 ms- 6.60 => 7 fotogramas
Titanfall 2 – 118.8 ms – 7.13 => 8 fotogramas
Overwatch – 123.8 ms – 7.43=> 8 fotogramas
Doom 2016 – 133.8 ms – 8.03 => 9 fotogramas
Killzone SF  Multi – 136.8 ms – 8.21 => 9 fotogramas

Com 33.33 ms por fotograma

Killzone SF  Single – 157 ms – 4.71 => 5 fotogramas

Basicamente o que vemos é que pela rede fixa, o Streaming da Google, dento do que é o streaming, até se deverá portar muito bem. No entanto tal não impede que ele deverá acrescentar em média uma resposta de 3 fotogramas adicionais nestes jogos 60 fps e 1 fotograma no jogo Single Player a 30 fps (a nível de tempo de espera, equivale-se a 2 fotogramas a 60 fps).

De notar que, apesar de podermos, pelo número de medições, considerar que esses 3 fotogramas poderá ser o que poderemos esperar acontecer em basicamente todos os jogos 60 fps que venham a correr neste serviço, nos jogos single a amostra,  ao ser demasiado pequena, não permite concluir nada. Convêm no entanto reforçar a ideia que 1 fotograma A 30 fps representa uma espera equivalente a 2 fotogramas em multi.



Seja como for, sendo todos estes jogos 60 fps, são jogos online e de precisão, pelo que se pode perceber que com 3 fotogramas de atraso (49.98 ms adicionais), os jogadores que se confrontarem com outros a jogar localmente, estão com um grande handicap. Numa altura em que cada vez mais os jogadores procuram ecrãs com baixo input lag e periféricos com baixa latência, para ganhar alguma vantagem sobre o adversário, o que este serviço traz é uma negação dessas situações. Note-se que nesses jogos temos ainda de acrescentar a latência da ligação ao servidor.

Google Wi-fi

COD: Infinite Warfare – 91.3 ms- 5.48 fotogramas => 6 fotogramas
COD: Modern Warfare Remastered – 92.3 ms – 5.54 => 6 fotogramas
Battlefield 1 – 108.1 ms – 6.90 => 7 fotogramas
Halo5 – 115 m s- 6.96 =>7 fotogramas
Battlefield 4 – 115.7 ms- 6.48 => 7 fotogramas
Titanfall 2 – 123.8 ms – 7.43 => 8 fotogramas
Overwatch – 128.8 ms – 7.73=> 8 fotogramas
Doom 2016 – 138.8 ms – 8.33 => 9 fotogramas
Killzone SF  Multi – 141.8 ms – 8.51 => 9 fotogramas

Killzone SF  Single – 162 ms – 4.85 => 5 fotogramas

O Wi-fi, desde que de qualidade, não traz grande alteração à realidade da fibra. Com excepção de Doom 2016 que subiu 1 fotograma, o resto manteve-se sem grande alteração ao tempo de espera espectável.

Google 4G

COD: Infinite Warfare – 101.3 ms- 6.26 fotogramas => 7 fotogramas
COD: Modern Warfare Remastered – 105.3 ms – 6.32 => 7 fotogramas
Battlefield 1 – 121.1 ms – 7.26 => 8 fotogramas
Halo5 – 128 m s- 7.68 =>8 fotogramas
Battlefield 4 – 128.7 ms- 7.68 => 8 fotogramas
Titanfall 2 – 136.8 ms – 8.21 => 9 fotogramas
Overwatch – 141.8 ms – 8.51=> 9 fotogramas
Doom 2016 – 151.8 ms – 9.47 => 10 fotogramas
Killzone SF  Multi – 153.8 ms – 89.23 => 10 fotogramas

Killzone SF  Single – 175 ms – 5.25 => 6 fotogramas

O que se pode ver é que a Google está relativamente bem servida de servidores para Portugal. E a diferença entre a rede fixa e a rede móvel acaba por se traduzir em apenas 1 fotograma. Isso não invalida que um seu serviço de streaming terá uma latência adicional face ao jogo local, o que representa perda de qualidade no jogo. Mas o certo é que o seu serviço apresenta aquilo que nos parece ser o impacto mínimo que poderíamos esperar para estas situações.

Vamos agora ver a Microsoft:

Azure – Rede fixa Fibra:

COD: Infinite Warfare – 115.3 ms- 6.92 fotogramas => 7 fotogramas
COD: Modern Warfare Remastered – 116.3 ms – 6.98 => 7 fotogramas
Battlefield 1 – 132.1 ms – 7.92 => 8 fotogramas
Halo5 – 139 ms – 8.34 => 9 fotogramas
Battlefield 4 – 139.7 ms- 8.38 => 9 fotogramas
Titanfall 2 – 147.8 ms – 8.87 => 9 fotogramas
Overwatch – 152.8 ms – 9.17=> 10 fotogramas
Doom 2016 – 162.8 ms – 9.77 => 10 fotogramas
Killzone SF  Multi – 165.8 ms – 9.95 => 10 fotogramas

Killzone SF  Single – 186 ms – 5.58 => 6 fotogramas



A Azure, claramente tem uns valores médios bastante acima da concorrência. Se a Google mostra que com fibra duplica o número de fotogramas de espera face ao jogo local, aqui na Azure esses valores sobem bastante, comprometendo seriamente a jogabilidade. Basicamente a Azure sobre Fibra apresenta os mesmos resultados que a Google sobre 4G.

Azure – Wi-fi:

COD: Infinite Warfare – 128.3 ms- 7.70 fotogramas => 8 fotogramas
COD: Modern Warfare Remastered – 129.3 ms – 7.76 => 8 fotogramas
Battlefield 1 – 145.1 ms – 8.7 => 9 fotogramas
Halo5 – 152 ms – 9.12 => 10 fotogramas
Battlefield 4 – 152.7 ms- 9.16 => 10 fotogramas
Titanfall 2 – 160.8 ms – 9.65 => 10 fotogramas
Overwatch – 165.8 ms – 9.95 => 10 fotogramas
Doom 2016 – 175.8 ms – 10.55 => 11 fotogramas
Killzone SF  Multi – 178.8 ms – 10.73 => 11 fotogramas

Killzone SF  Single – 199 ms – 5.97 => 6 fotogramas

A Azure, por Wi-fi revela-se ainda pior que por fibra, acrescentando em média 1 fotograma adicional à resposta. Neste momento estamos já perante o pior dos testes efectuados.

Azure 4G

COD: Infinite Warfare – 154.3 ms – 9.26 fotogramas => 10 fotogramas
COD: Modern Warfare Remastered – 155.3 ms – 9.32 => 10 fotogramas
Battlefield 1 – 171.1 ms – 10.27 => 11 fotogramas
Halo5 – 178 ms – 10.64 => 11 fotogramas
Battlefield 4 – 178.7 ms- 10.72 => 11 fotogramas
Titanfall 2 – 186.8 ms – 11.21 => 12 fotogramas
Overwatch – 191.8 ms – 11.51=> 12 fotogramas
Doom 2016 – 201.8 ms – 12.11 => 13 fotogramas
Killzone SF  Multi – 204.8 ms – 12.29 => 13 fotogramas

Killzone SF  Single – 225 ms – 6.75 => 7 fotogramas

Claramente o que vemos aqui é surpreendentemente mau. A seres estes os valores da Azure sobre a rede 4G os jogos entram em valores de latência que os tornam pesados e de resposta lenta. 13 fotogramas representa quase 1/4 de segundo, um tempo de resposta que é demasiadamente elevado.

Conclusões:

A manterem-se estes valores de latências para Portugal, a Google está muito melhor servida que a Microsoft no que toca à qualidade das ligações para a disponibilização de um serviço de Streaming. Seja como for, apesar de o caso da Azure ser claramente pior, em ambos os casos a qualidade de jogo sofrerá. Mesmo na melhor das hipóteses da Google, o tempo de resposta em alguns jogos face ao jogo local passa para o dobro dos fotogramas, e nas melhores hipóteses sobe 3 fotogramas, o que na prática se traduz em cerca de 50 ms adicionais face à latência criada naturalmente pelo sistema. É demasiado, basicamente duplica o tempo de resposta, e afecta claramente a qualidade do jogo, particularmente do multi, sendo que a latência será visível e terá implicações.

Nos nossos testes teóricos, não tendo dados para o Assassins Creed Odissey que foi testado por outros websites, nenhuma das medições chegou dos 166 ms que a Eurogamer mediu no serviço da Google, mas dependendo da latência interna do mesmo, e de variações na qualidade da ligação, tal pode vir a acontecer pois em Killzone Shadow Fall Multi a Google sobre fibra chegou aos 9 fotogramas ou 149.94 ms. Muito mais longe ficaram os 500 ms que a Techcrunch verificou, mas claro, o caso específico dos servidores de jogos pode ser diferente. Seja como for, aqui, apenas nos casos piores sobre 4G teremos um acréscimo de 10 fotogramas, o que na prática implica uma latência de 166.66 ms, na Google, mas o caso da Azure chega a ir aos 13 fotogramas ou 216.58 ms.

De acordo com os resultados obtidos, is aqui uma comparação dos fotogramas de espera entre o pressionar de um botão e a visualização do mesmo no ecrã para todos os casos aqui abordados, e em cada um dos jogos.

De referir que o caso 30 fps é aquele que, aparentemente, menos sofre. No entanto, é de se voltar, mais uma vez, a realçar que um fotograma adicional ali são 33.33 ms a mais.

Estes valores foram medidos entre as 21 e as 22h, hora de pixo de tráfego, usando ligações em uma zona livre de constrangimentos, na cidade de Barcelos, o que não é a realidade em todo este país, e usando uma ligação 4G sem limite superior de velocidade definido e uma rede fibra com 200 Mbits de largura de banda. O Wi-Fi foi medido sobre rede 802.11 n, com 300 Mbits de largura de banda usando um Power Router Nos.

A Azure é que se revela decepcionante. Não é de admirar que caso estes valores possam repetir-se em outras zonas, que a latência visualizada na demo apresentada fosse tão visível. Caso não haja melhorias, a rede da Microsoft não deverá ter qualquer tipo de sucesso no nosso país.

Os resultados da Azure são piores em todas as situações, sendo que no caso do 4G os resultados são elevados demais. 13 fotogramas em 60 representa mais de 1/4 de segundo de latência. E de notar que nenhum dos casos de cima, ao serem, com excepção do último, todos jogos multi jogador, possui ainda a latência para o servidor do jogo, que terá de ser acrescentada sobre todos os casos, incluindo o jogo local.

O que se pode perceber aqui é que a qualidade do jogo oferecido pelo Streaming, mesmo no caso da Google que aparenta ter bem maior qualidade que a Azure, não é de forma nenhuma equivalente à do jogo local. Daí que, para o jogador que se preocupa com a qualidade e a resposta do jogo que joga, do não morrer sem perceber o que lhe aconteceu, e o ter a capacidade de discutir um jogo com terceiros, o streaming está totalmente fora de hipótese como alternativa.

Aos leitores interessados, e mesmo tendo-se consciência que este exercício pode não representar a realidade final, gostávamos de pedir a vossa colaboração, repetindo estas contas e calculando a latência para a vossa zona. Caso não queiram entrar em tanto, indiquem-nos apenas o ISP, a zona de acesso e os valores de latência à Google e Azure, indicados nos links fornecidos neste artigo. Solicita-se o cuidado de verificarem eventuais oscilações deixando a página aberta uns bons minutos, e em caso de as detectares usarem valores mais ou menos médios e não máximos ou mínimos.

Nota extra: Sabendo que as latências da rede nunca são constantes e que até duas medições seguidas podem dar resultados algo diferentes, resolvi fazer nova medição de latências para os servidores pelas 7:30 da manha. Na fibra, a Google apresentava 48 ms, um valor em tudo condicente com o anterior. A Azure por sua vez estava pior e oscilava entre os 76 e os 136 ms. Realmente valores muito maus para o serviço da Microsoft, pelo menos na rede NOS, o maior operador nacional.

Testei ainda a latência para os servidores pela rede da vodafone pelas 16h da tarde. Se na Google os valores foram em tudo semelhantes aos obtidos na NOS, variando apenas 1 ou 2 ms, na Azure a coisa foi algo diferente. Nessa rede, os valores para a Fibra Vodafone de 1 Gbit variaram entre os 110 ms e os 57 ms, com o valor mais comum a andar perto dos 70 ms (6 ms melhor que na NOS). Já na rede móvel da Vodafone e ainda na Azure, os valores oscilaram entre os 200 ms e os 139 ms, com o valor mais comum a andar nos 155 ms, ou seja, valores quase 40 ms piores que os da NOS (o que foi uma surpresa dado que a rede móvel Vodafone é incomparavelmente superior à da NOS).