Lançado no começo do mês passado para Android, Fortnite ainda não chegou a todos os dispositivos que rodam o sistema. E a culpa por isso é da fragmentação de software, conforme explicou a desenvolvedora Epic em um novo post em seu blog.
Segundo a empresa, o ecossistema do Android é bastante peculiar, a começar pelo hardware. Em termos de SoCs, os processadores, o mercado é dominado pela Qualcomm, cujos Snapdragons estão presentes em 71% dos aparelhos do mercado. Mas os outros 29% ficam divididos entre modelos com Exynos da Samsung, Kirins da Huawei e Helios da MediaTek. Em termos de CPU, a maioria usa núcleos ARM, mas há uma diferença crucial nas GPUs, que podem Adrenos (Qualcomm) ou Malis (os outros).
A diferença no hardware é acentuada pelo software. “Cada dispositivo vem com uma versão levemente diferente do Android, e a maioria das fabricantes customiza os recursos de escalonamento e gerenciamento de energia”, explica a Epic.
Além disso, “dispositivos que têm uma mesma GPU também vêm com diferentes versões de driver”. Ou seja, ainda que dois aparelhos de duas empresas diferentes tenham as mesmas especificações, os modelos são diferentes por dentro — e um jogo que funciona em um pode não funcionar no outro.
Foi preciso adaptar Fortnite para cada cenário, portanto, e criar perfis de uso diferentes para combinações distintas de GPU e software. Assim, além dos tradicionais “Low”, “Mid”, “High” e “Epic”, a desenvolvedora criou outros automáticos com base no chip gráfico.
APIs e a questão da memória
A isso, ainda se somou a questão do suporte a APIs gráficas. Conforme explicou a Epic, para permitir que jogadores em um smartphone pudessem jogar contra alguém no PC ou em um console, era precisa renderizar objetos na mesma velocidade em todas as plataformas.
A API Vulkan, que é padrão no Android desde 2016, seria perfeita para isso. Mas nem todos os aparelhos a suportam até hoje. Foi preciso, então, adaptar o jogo e dar suporte para diferentes versões do OpenGL, que é mais usada e mais versátil, mas também mais simples.
Fora os dois pontos, a Epic ainda esbarrou nas limitações de memória. O sistema é programado para encerrar um aplicativo sempre que ele começa a ocupar muita RAM, mas o valor é diferente em cada aparelho. Como os desenvolvedores foram descobrir no meio do caminho, enquanto um Galaxy S8 deixa um app alocar até 3 dos seus 4 GB da memória antes de “matá-lo”, um Pixel 2 só libera 1,8 GB dos 3,6 totais. E isso para ficar só em dois exemplos.
Levando tudo isso em conta, o fato de ter conseguido disponibilizar Fortnite para tantos modelos diferentes e ainda permitir o cross-platform já é digno de nota. No mesmo post, a Epic fala que vai focar, por ora, em continuar otimizando o jogo para os aparelhos já suportados. Só depois de corrigir problemas neles é que a empresa vai lançar o game para outros dispositivos — então pode ser que ainda leve alguns dias para Fortnite chegar a novos smartphones.