Tout commença par un smartphone Samsung A5 non compatible...
Pré-requis: des bases sur les paramètres de build dans Unity
Lors de la sortie du jeu Bacteria Breaker sur Google Play et Apple Store, certaines personnes nous ont tristement annoncé que leur smartphone n'était pas supporté (compatible donc) ! Rageant, non ?
Du coup, de fait, ces personnes ne pouvaient pas télécharger le jeu, afin de le tester.
Dans ce tutoriel nous ne ferons pas:
- Comment déployer son application sur Google Play ou l'App Store
- Comment faire un build pour Android ou iOS
Par contre nous allons voir comment régler le souci et surtout pourquoi certains smartphones n'étaient pas supportés lors des premiers build du jeu Bacteria Breaker.
Recherche du problème
Récolter des données
A toutes les personnes qui nous faisaient remonter ce même souci, nous demandions systématiquement le modèle de smartphone... par exemple Samsung J6, Samsung A5, Huawei P20...
ET tout commença par un Samsung A5 !
En effet ce fut le premier smartphone incompatible qui a éveillé ma curiosité...pourquoi un A5 ne supporterait pas Bacteria Breaker, qui ne possède en soit aucune fonctionnalité de ouf, comme le multiplayer, un rendering particulier, ou encore un shader crée avec URP !
Ce modèle est récent, enfin pas trop vieux surtout ! Il faut en effet être conscient que les versions vont de plus en plus vite sur les smartphones, donc un modèle devient vite vieux. Mais ce "vieux" là ne veut pas dire que votre smartphone ne fonctionne plus ! Obsolescence quand tu nous tiens .
Bref ce n'était pas logique.
Fouiller les données techniques
Armé des remontées des utilisateurs frustrés de leur jeu , je commence à regarder sur la Google Play Developer Console, qui est rattachée à un compte GMail.
Choisissez votre Application, puis choisissez dans le menu gauche, Gestion des Release et enfin Catalogue d'Appareils ... vous y êtes !
Là entrez un nom d'appareil afin de filtrer plus vite !
Le fameux Samsung A5 est bien non pris en charge
En faisant cela sur les différents modèles, il apparaît que tous sont en effet bien listés comme incompatibles au yeux de Google Play.
En entrant sur la fiche technique (clic sur le modèle), on trouve tout un tas d'informations détaillées.
C'est une mine d'informations...la mémoire, le CPU, le GPU, le SDK, la taille de l'écran .. bref excellent !
Et surtout l'information que je cherchais à ce moment ... le type d'architecture du processeur.
ARMv7 ! (armebi-v7a plus exactement )
Là je percute ! Ayant déjà une piste en tête depuis le début, je fonce illico dans Unity...
Avant tout une histoire de build
Depuis un petit moment déjà pour publier sur Google Play, il faut ajouter systématiquement un build pour les architecture de type ARMx64.
Du coup exit les build x86, bienvenue le scripting backend IL2CPP, et d'autres ajustements nécessaires qui feront l'objet d'un prochain Atelier regroupant le "build pour Android".
Mais déjà dans Unity, au niveau des paramètres du build, on trouve une zone pour les Target Architectures, et lors des premiers build on voit bien que seule l'architecture ARM64 est sélectionnée !
Ayant ciblé le problème, il devient ainsi plus facile de le régler ! Puisque tous les smartphones ayant une architecture de processeur de type ARMv7 sont non compatibles chez Google Play, il suffit de ....
Cocher en plus dans les paramètres, ARMv7, puis de refaire un nouveau build, suivi d'un nouveau dépôt en production chez Google Play.
Aussitôt dit, aussitôt fait et quelque temps plus tard notre fameux Samsung A5 (et tous ses comparses ) devient compatible !
Les Galaxy A5 sont de retour dans la course
Bilan
En étendant le nombre d'architectures pris en charge dans le build final de Unity, on prend ainsi en charge plus de smartphones.
Par contre gardez bien à l'esprit que si votre jeu nécessite par exemple une version élevée d'Android, vous serez obligés d'enlever très probablement les smartphones les plus anciens, et donc très probablement l'architecture ARMv7.