Na realidade a explicação é bem simples e é um pouco o que vemos nas consolas face ao PC!
Quem experimentou Fortnite num topo de gama Samsung, equipado com um recentissimo Snapdragon 845, tendo igualmente uma Switch, certamente percebeu claramente que a versão Android não está forçosamente superior à da consola da Nintendo, podendo até parecer inferior, o que parece chocar dada a disparidade de performances dos sistemas a favor do smartphone.
Se nunca viram isso, o vídeo de baixo comprova-o:
Ora isto pode parecer muito estranho… como é que se pode explicar uma coisa destas quando o Hardware da Switch é um Tegra X1, modelo T210, um SOC de 2015 e que , actualmente, fica para trás face às novas ofertas.
Já os telefones Samsung suportados, como o Galaxy S9, S8 ou mesmo o S7, estão equipados com processadores Snapdragon 845, 835 e 820. E se o Snapdragon 820 está ela por ela com o X1, os 835 e 845 superam-no de forma clara!
Deveríamos por isso, teoricamente, ver resultados superiores aos da Switch.
No entanto, como se pode constatar, mesmo o S9 não consegue esmagar de forma clara a Switch. E com excepção deste telefone, os anteriores chegam mesmo a ter quebras de FPS a níveis que não se verificam na Switch. Como se explica isto?
Bem, na realidade a comparação tem muito que se lhe diga: Apesar de a Switch bater modelos de Smartphone como uma S7, num Galaxy S9 corre o jogo a 1480×720 conseguindo correr a 30 fps fixos com o detalhe em épico.
Ora a Switch perante isto nem sequer devia conseguir concorrer com o seu hardware menos capaz… mas consegue! E apesar de resoluções inferiores, até passa o que o S9 apresenta em alguns casos!
A Switch em modo portátil corre a 720 mas não fixos. Felizmente ela usa reconstrução temporal e consegue manter a qualidade de imagem extremamente aceitável. As distâncias de visualização são também inferiores, mas a consola consegue manter os 30 fps quase constantes (note-se o quase).
Onde a Switch brilha é no facto que, apesar do seu hardware inferior, vai buscar coisas que só existem nas versões consola. A iluminação e animação da relva por exemplo, apesar de uma distância de desenho reduzida, é ao nível das consolas de mesa, sendo que nos smartphones esta característica é basicamente nula (menus excluídos). Da mesma forma, as construções possuem um nível de qualidade superior na Switch.
Como consegue então a Switch, com o seu hardware inferior, fazer isto?
Bem, de forma muito simples. Eis então uma lista dos motivos:
1 – Optimização para hardware único.
Tal como em qualquer consola que ganha vantagens face a hardware PC igual ou até superior, o facto de os programadores poderem programar para tirar partido de um hardware específico permite melhorias e ganhos tremendos de performance.
A versão Android do jogo, apesar de inicialmente ter sido lançada apenas para telefones Samsung, não respeita essa situação ao ter de suportar não só os Snapdragon, mas igualmente os Exynos da Samsung. E esta diferença acaba por ser prejudicial ao rendimento da programação.
O termos uma variedade de hardware com especificações e performances bem diferentes, e não havendo a intenção de se criar diferenças de maior entre esses modelos, a programação acaba por não conseguir optimizar para nenhum deles.
Mas mais do que isso, o jogo planeia suportar bastantes mais telefones com hardwares e especificações diferentes, e chipsets como os NVIDIA Tegra e o Kirin 970, o que desde logo implica uma programação que acaba por ser incomparavelmente mais genérica do que a da Switch.
2 – Diferenças no tipo de API usado.
Tudo o que vai ser dito de seguida necessitaria de uma análise bem mais profunda, com dados que não possuo, mas perante o pouco conhecido, eis como a programação parece ter sido realizada no Android.
Mas pelo que consigo apurar nos foruns onde as pessoas estão a tentar colocar o jogo a funcionar em smartphones não suportados, o requisito para correr o jogo no Android é o Opengl ES 3.1.
Ora apesar de os smartphones capazes de correr o Opengl ES 3.1 são capazes de correrem APIs de baixo nível como o Vulkan, e de o jogo suportar o Vulkan, o suporte Vulkan não existe forçosamente em todos esses aparelhos. E nesse sentido o suporte do Vulkan não parece ter sido feito de raiz, mas apenas existindo para se conseguir melhorias gráficas (níveis de detalhe superiores) nos telefones que o suportam.
A confirmar-se este tipo de implementação tal mostra que, por questões de compatibilidade, a base do motor está feita em OpenGL ES, usando apenas as extensões do Vulkan para mais detalhe, e tal, apesar dos ganhos no GPU, tem implicações no desempenho base do CPU.
Ou seja, há melhorias no GPU, mas não há ganhos do CPU, algo que na Switch acontece. E como o CPU ao atingir os limites, limita sempre o GPU, a Switch ganha vantagens graças ao seu API NVN de baixo nível muito bem conseguido.
3 – Diferenças no uso dos recursos do aparelho
Se a Switch reserva a 100% os seus recursos para os jogos, um smartphone não!
Mesmo quando a correr jogos um smartphone continua com todos os serviços activos e a correrem em fundo. Tal não só limita o uso da RAM, como do GPU e do CPU. Basicamente todos os recursos do smarthone acabam reduzidos.
É um problema que tambem existe nos PCs. Os recursos do OS e das aplicações instaladas são elevadas, e se a nível de memória a situação pode ser ultrapassada, a nível da ocupação dos recursos do CPU é algo mais problemático. Um smartphone será sempre um smartphone e não uma consola de jogos e a utilização dos seus recursos não pode ser dedicada aos jogos, ignorando tudo o resto.
Já na Switch… o que há disponível é para ser usado pelo jogo. Não há serviços dispensáveis pelos jogos, não há a necessidade de monitorizar toneladas de aplicações instaladas, não há ocupação indevida e indesejada do CPU. É uma consola e é dedicada a jogos.