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 confiar na 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 nesta página se concentre em jogos, os princípios se aplicam a qualquer app que contenha recursos grandes.

Preparação

Ao pensar em dividir seu app para a entrega 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 ao iniciar 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 ao iniciar

Após o início do jogo, é preciso que o usuário consiga jogar imediatamente. O Google Play Instant exige que os usuários possam começar 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 a abertura do jogo a um tamanho não muito grande, para que seja compatível com a experiência inicial. Por exemplo, um download rápido logo após a inicialização 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 e conforme necessário, cairá nesta 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.

Compatibilidade com o 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. A compatibilidade com 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.

Entrega de recursos do Google Play (por meio de pacotes de apps)

Se você publicar seu app como um pacote de apps (que é o método recomendado), será possível usar módulos de recursos para buscar recursos adicionais além do APK de base. Para seu app instantâneo, cada módulo de recursos precisa definir dist:instant="true" no manifesto. Não é possível usar a propriedade dist:on-demand. Ela é usada principalmente para módulos sob demanda em APKs instalados. Além disso, cada módulo de recursos 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 de recursos no ambiente de execução usando a biblioteca PlayCore.

Cocos Creator

O Cocos já é compatível com a entrega de recursos na nuvem desde a versão v2.0.4. O Cocos faz o download de recursos sob demanda, renderizando marcadores caso esse download não tenha sido feito 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 compatibilidade inata com 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 por padrão. 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 boas opções para começar. Alguns mecanismos oferecem a busca simples de arquivos HTTPS que podem ser suficientes para suas necessidades.

Hospedagem de 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 em qualquer serviço que você quiser, desde que ele tenha distribuição e disponibilidade globais razoáveis. Os usuários do app Google Play Games jogam no mundo inteiro. Por isso, os recursos hospedados na nuvem precisam ser oferecidos rapidamente em qualquer lugar.