Implémenter la livraison d'éléments dans le cloud

Lorsque vous réduisez votre application pour répondre aux exigences de taille, essayez d'abord les techniques standards d'optimisation de la taille des APK. Si vous devez encore réduire la taille, vous devrez peut-être compter sur la diffusion des éléments dans le cloud. Ce document décrit comment préparer les éléments pour la diffusion dans le cloud et présente les options d'assistance des différents moteurs de jeu. Bien que les conseils de cette page se concentrent sur les jeux, ils s'appliquent à toute application contenant des éléments volumineux.

Préparation

Lorsque vous envisagez de diviser votre application pour la diffusion d'éléments dans le cloud, réfléchissez à la manière dont vous pouvez diviser vos fichiers d'application en sections en fonction du moment de leur disponibilité pour l'utilisateur. Ce calendrier se divise en trois catégories: nécessaires toujours, nécessaires au lancement et nécessaires ultérieurement.

Toujours requis

Certains éléments sont difficiles à diviser en plus petits blocs ou doivent être regroupés dans l'APK de base. Le code de votre jeu et ses dépendances de bibliothèque ou de moteur en sont des exemples. Bien que Google Play Core soit compatible avec les app bundles pour le code, de nombreux moteurs ne sont pas compatibles avec le code téléchargé ultérieurement.

Requis lors du lancement

Une fois le jeu lancé, l'utilisateur doit pouvoir jouer immédiatement. Google Play Instant exige que les utilisateurs puissent commencer à jouer à votre jeu en moins de 15 secondes via une connexion LTE ou 4G (voir la checklist Google Play Instant). Par conséquent, limitez tout téléchargement secondaire après le lancement pour qu'il soit aussi volumineux que nécessaire pour permettre l'expérience initiale. Par exemple, un téléchargement rapide immédiatement après le lancement peut inclure le premier niveau de jeu et des éléments de lieu, ou tout code requis pour exécuter les premières minutes de jeu.

Requis plus tard

Tout ce que vous pouvez vous permettre de télécharger plus tard, en arrière-plan si nécessaire, relève de cette catégorie. Cette catégorie inclut la plupart des éléments pour les jeux longs. En téléchargeant ces assets par la suite, vous pourrez réduire au maximum la taille de votre application.

Moteurs compatibles

Cloud Asset Delivery est le principal moyen d'autoriser votre jeu à dépasser la limite de 15 Mo pour les jeux instantanés. La possibilité de télécharger des éléments varie selon le moteur de jeu. Consultez les cas les plus courants ci-dessous, ainsi que les options d'hébergement des éléments.

Notez qu'un nombre réduit d'éléments nécessaires au lancement permet à l'utilisateur d'entrer plus rapidement dans le jeu, ce qui se traduit par un taux d'abandon plus faible et une meilleure fidélisation des joueurs pour ce premier lancement.

Play Feature Delivery (via les app bundles)

Si vous publiez votre application en tant qu'app bundle (méthode recommandée), vous pouvez utiliser des modules de fonctionnalités pour extraire des ressources supplémentaires au-delà de l'APK de base. Pour votre application instantanée, chaque module de fonctionnalité doit définir dist:instant="true" dans le fichier manifeste. La propriété dist:on-demand ne doit pas être utilisée. Elle est principalement utilisée pour les modules à la demande dans les APK installés. De plus, chaque module de fonctionnalité doit être inférieur à la limite de l'APK instantané de 15 Mo, que le module contienne ou non du code. Si vous ne définissez pas chaque module en dessous de cette limite, la publication en version alpha ou de canal de publication sera bloquée. Une fois la configuration terminée, vous pouvez extraire des modules de fonctionnalités au moment de l'exécution à l'aide de la bibliothèque PlayCore.

Cocos Creator

Cocos prend en charge la livraison d'éléments dans le cloud depuis la version v2.0.4. Cocos télécharge des éléments à la demande et affiche les espaces réservés si les éléments n'ont pas été téléchargés à temps. Cocos génère des fichiers d'éléments qui doivent être hébergés avec un service en ligne, car Cocos ne fournit pas ses propres services.

Unity

La diffusion dans le cloud est compatible avec le plug-in Unity Google Play Instant pour les versions 5.6, 2017.4 ou 2018.2 d'Unity. Les versions ultérieures de Unity présentent d'autres avantages pour la suppression du moteur. Il peut donc être utile d'effectuer une migration pour libérer plus d'espace. Les éléments cloud Unity sont hébergés dans des fichiers AssetBundle créés par Unity. L'importation de ces éléments sur un serveur cloud permet la diffusion des éléments dans le cloud, car Unity offre une compatibilité naturelle avec le téléchargement des bundles d'éléments.

Autres moteurs

Que vous utilisiez un moteur personnalisé ou une collection de bibliothèques natives, votre choix peut accepter le téléchargement d'éléments prêts à l'emploi dans le cloud. Si vous avez suffisamment d'éléments pour les télécharger depuis le cloud, vous devez coder ou intégrer un moyen de télécharger les éléments à la demande pour votre jeu. Les API Firebase Hosting ou les API Firebase Cloud Storage constituent un bon point de départ. Certains moteurs proposent une simple extraction de fichiers HTTPS, qui peut également répondre à vos besoins.

Éléments hébergés

Si vous n'utilisez pas d'app bundles Google Play pour télécharger vos éléments via Play, vous devez les héberger ailleurs. Vous êtes libre de les héberger avec n'importe quel service de votre choix, à condition que celui-ci dispose d'une distribution et d'une disponibilité mondiales raisonnables. Les utilisateurs de l'application Google Play Jeux jouent dans le monde entier. Par conséquent, les éléments hébergés dans le cloud doivent leur être fournis rapidement n'importe où.