Implementar entrega de recursos na nuvem

Ao reduzir seu app para atender aos requisitos de tamanho, primeiro teste as técnicas padrão de otimização de tamanho do APK. Se for preciso reduzir ainda mais o tamanho, talvez seja necessário depender da entrega de recursos na nuvem. Este documento descreve como preparar recursos para a entrega na nuvem e as opções de suporte de vários mecanismos de jogos. Embora a orientação neste documento se concentre em jogos, os princípios se aplicam a qualquer app que contenha recursos grandes.

Preparação

Ao pensar em dividir o APK para fornecimento de recursos na nuvem, pense em como dividir os arquivos do app em seções com base em quando eles precisam estar disponíveis para o usuário. Esse tempo tende a se enquadrar nas três categorias a seguir: necessário sempre, necessário no lançamento e necessário mais tarde.

Necessário sempre

Alguns recursos são difíceis de separar em blocos menores ou devem ser agrupados no APK de base. Exemplos incluem o código do jogo e as dependências da biblioteca ou do mecanismo. Embora a Google Play Core seja compatível com pacotes de apps para código, muitos mecanismos não são compatíveis com o download de códigos posteriormente.

Necessário no lançamento

Após o início do jogo, o usuário poderá jogar imediatamente. O Google Play Instant exige que os usuários comecem a jogar em menos de 15 segundos em uma conexão LTE ou 4G. Consulte a lista de verificação do Google Play Instant. Portanto, limite qualquer download secundário após o lançamento para que seja tão grande quanto necessário para oferecer suporte à experiência inicial. Por exemplo, um download rápido após o lançamento pode incluir os primeiros recursos de nível e local do jogo ou qualquer código necessário para executar os primeiros minutos do jogo.

Necessário mais tarde

Qualquer download que possa ser feito mais tarde, em segundo plano, conforme necessário, cairá nessa categoria. Esta categoria inclui a maioria dos recursos para jogos de longa duração. Fazer o download desses recursos mais tarde ajudará a diminuir o tamanho do seu app o máximo possível.

Suporte ao mecanismo

A exibição de recursos do Cloud é a principal maneira de permitir que seu jogo ultrapasse o limite de 15 MB para os Instant Play Games. O suporte para o download de recursos varia de acordo com o mecanismo de jogo. Veja os casos mais comuns abaixo, bem como as opções de hospedagem de recursos.

Observe que menos recursos necessários no lançamento permitem que o usuário entre no jogo mais rapidamente, o que resulta em menor desistência e melhor retenção de jogadores para esse primeiro lançamento.

Módulos de recursos dinâmicos (por meio de pacotes de apps)

Se você publicar seu app como um pacote de apps, é possível usar módulos de recursos dinâmicos para buscar recursos adicionais além do APK de base. Para seu app instantâneo, cada módulo de recurso dinâmico precisa definir dist:instant="true" no manifesto. A propriedade dist:on-demand não pode ser usada. Ela é usada principalmente para módulos sob demanda em APKs instalados. Além disso, cada módulo de recurso dinâmico precisa estar abaixo do limite de APK instantâneo de 15 MB, independentemente de o módulo conter ou não o código. A falha em manter cada módulo abaixo desse limite impedirá a publicação em alfa ou em faixas de lançamento. Depois de configurado corretamente, você pode buscar módulos dinâmicos no ambiente de execução usando a biblioteca PlayCore.

Criador de Cocos

O Cocos já oferece suporte à entrega em nuvem de recursos desde a versão v2.0.4. O Cocos faz o download de recursos sob demanda, renderizando marcadores se os recursos não tiverem sido baixados a tempo. O Cocos gera arquivos de recursos que precisam ser hospedados com algum serviço on-line, já que o Cocos não fornece um.

Unity

A entrega em nuvem é compatível com o Plug-in do Google Play Instant para Unity versões 5.6, 2017.4 ou 2018.2. As versões posteriores do Unity oferecem mais benefícios para a remoção de mecanismo. Portanto, pode ser útil migrar para liberar mais espaço. Os recursos de nuvem do Unity são hospedados em arquivos AssetBundle que o Unity cria para você. Enviá-los a um servidor de nuvem permite a entrega de recursos na nuvem porque o Unity tem suporte inato para o download de pacotes de recursos.

Outros mecanismos

Independentemente de você usar um mecanismo personalizado ou um conjunto de bibliotecas nativas, sua escolha pode ser compatível com o download de recursos da nuvem. Se você tiver recursos suficientes para fazer o download deles pela nuvem, será necessário codificar ou integrar uma forma de fazer o download de ativos sob demanda para seu jogo. O Firebase Hosting ou as APIs Firebase Cloud Storage são bons lugares para começar. Alguns mecanismos oferecem a busca simples de arquivos HTTPS que podem ser suficientes para suas necessidades.

Hospedar recursos

A menos que você use pacotes de apps do Google Play para fazer o download de seus recursos por meio do Google Play, será necessário hospedar seus recursos em outro lugar. É possível hospedá-los com qualquer serviço que quiser, desde que tenha uma distribuição e disponibilidade global razoáveis. Os usuários do app Google Play Games jogam no mundo inteiro. Por isso, os recursos hospedados na nuvem precisam ser exibidos rapidamente em qualquer lugar.