Games para Android estão ficando cada vez maiores. Aqui no Mobile Gamer já fizemos um artigo com os jogos mais “pesados” de 2020. Títulos como Fortnite ocupam facilmente 9 GB de dados. E há maiores, dependendo da “idade” da instalação do jogo.
Há muito tempo, a Google oferece um sistema para baixar um APK e depois baixar mais “APKs Expansions” (que na realidade são arquivos OBB).
Para quem quer saber quais os limites do Google Play Console atualmente, ou qual o tamanho máximo de um APK Android?
Estes são os valores: 1 APK de 100 MB + 2 APKs Expansions (arquivos OBB) de até 2 GB cada. Então fica 1 APK + 4 GB de dados.
Claro que isso é “por meios oficiais”. Pois, como sabemos, é possível contornar esse limite e instalar um jogo de quantos gigabytes o desenvolvedor quiser. Para não ficar preso a esse limite, muitos desenvolvedores de games criam um “instalador dentro do jogo”, que vai baixando os assets atualizados.
Mas essa gambiarra tem um custo para os desenvolvedores. Sai caro! Se você é um desenvolvedor independente e seu jogo “bombar”, sua conta de hospedagem para armazenar seus assets extras vai “bombar” também (mas em custos).
É justamente aí que a Google quer melhorar a vida dos devs. Ao invés de brigar para compactar seus jogos em até 4.1 GB (limite máximo da Google Play), a criadora do Android está expandindo o acesso a ferramenta Play Asset Delivery.
O Play Asset Delivery traz algo que já vimos em consoles de videogame. O jogo carrega o essencial para iniciar e depois baixa o restante.
A animação abaixo ajuda a ter um entendimento melhor:
Na esquerda, o modelo tradicional e na direita, o Play Asset Delivery em ação.
Em outras palavras, para começar a jogar um jogo pesadísimo como Fortnite ou Black Desert Mobile (apenas xemplos), você não terá mais que esperar o jogo baixar os 4.1 GB dos APKs iniciais. Bastaria baixar uma versão reduzida do game e já ir jogando, enquanto o Android baixa o resto do APK e Assets (sem OBB, a Google deixa bem claro no artigo que pretende descontinuar esse forma de suporte de assets).
Uma explicação: asset é tudo aquilo que não é código no jogo como: texturas, vídeos de intro, arquivos de áudio e etc.
“Para lidar com as necessidades exclusivas dos jogos, Play apresenta o Play Asset Delivery, oferecendo entrega dinâmica dos recursos certos para os dispositivos certos, no momento certo, sem custo adicional. Para conseguir isso, estendemos o formato de publicação do Android App Bundle adicionando pacotes de ativos (asset packs).“
O sistema já esteve em testes para algumas produtoras como a Gameloft, e agora será expandido para qualquer desenvolvedor, através de plugins para Unreal Engine, Unity e outros. Veja como vai funcionar:
Suporte do Play Asset Delivery à engines
- A versão 4.25 da Unreal Engine suporta a criação App Bundles com asset packs ao invés de arquivos de expansão APK (os OBB) e inclui um plug-in que fornece chamadas de função para gerenciar downloads e solicitar informações do Play Asset Delivery.
- Criamos um plug-in para Unity que cuida de empacotar Unity Asset Bundles em asset packs e permite criar um Android App Bundle que os inclua. O plug-in agora está disponível em nosso Registro de pacotes e é compatível com o Unity 2017.4 e superior.
- Para outros mecanismos, a versão do plugin Android Gradle 4.0 permite combinar seus asset packs e seu binário em um App Bundle. Atualize sua versão do plug-in gradle e configure o modo de entrega no arquivo build.gradle para cada asset packs individual.
O Play Asset Delivery é mais uma ferramenta que vai ajudar os desenvolvedores a criar versões mais especializadas dos seus jogos, evitando downloads de assets desnecessários.
Fonte: Blog Android Developers
Muito bom.