Test de jeux Unity : un guide pratique, propre au moteur

Unity propulse certains des plus grands titres de la planète, et les déploie sur téléphones, consoles, navigateurs et ordinateurs de bureau à partir d’un seul et même projet. Cette portée est précisément ce qui rend le test de jeux Unity délicat, car un même build doit survivre sur iPhone, Android, console et bureau, et chacune de ces cibles échoue à sa manière.

Un code qui se comporte parfaitement sur votre machine de build peut ramer sur un téléphone milieu de gamme, et une fonctionnalité qui a passé toutes les vérifications dans l’éditeur peut s’effondrer dès qu’un vrai joueur y touche. Les joueurs abandonnent vite un jeu qui rame ou qui plante, si bien que les points faibles que vous manquez deviennent les avis que vous regrettez.

La vraie question pour quiconque développe avec Unity n’est donc pas de savoir s’il faut tester, mais comment détecter les points de défaillance spécifiques au moteur sans y laisser une fortune. C’est là que des services de test de jeux expérimentés trouvent leur utilité. Ce guide vous présente l’essentiel :

  • Ce que fait le Test Framework
  • Les deux types de vérifications qu’il exécute
  • Comment l’automatisation s’intègre à un vrai calendrier de sortie
  • Les particularités qui sabotent discrètement les lancements

Poursuivez votre lecture pour découvrir tout l’essentiel du test de jeux Unity !

Comment tester un jeu Unity ?

Tester un jeu Unity fonctionne sur trois niveaux :

  • Les vérifications automatisées écrites dans le moteur détectent tôt les problèmes de code, pendant qu’un build est encore bon marché à corriger.
  • Les séances de jeu pratiques sur de vrais appareils détectent les problèmes humains et confus que l’automatisation ne voit jamais, comme un tutoriel qui perd les joueurs ou un menu qui donne une mauvaise impression.
  • Le contrôle de conformité, où vous vérifiez que le jeu respecte les règles fixées par des plateformes comme l’App Store et PlayStation avant le lancement.

Ces niveaux correspondent aux types de test de jeux plus larges que chaque studio jongle, des vérifications fonctionnelles et de compatibilité aux tests de performance et de stabilité.

La plupart des équipes se concentrent trop sur un seul niveau et négligent les autres en conséquence. Par exemple, un studio composé essentiellement d’ingénieurs a tendance à tout automatiser et à négliger le jeu réel, puis se demande pourquoi les critiques se plaignent des sensations de jeu. À l’inverse, une petite équipe indépendante joue souvent son jeu jusqu’à l’épuisement à la main, néglige l’automatisation, puis casse d’anciennes fonctionnalités à chaque ajout d’une nouvelle. Un projet sain devrait utiliser les trois, et un bon test de jeux Unity revient à savoir combien de chacun un titre nécessite.

Qu’est-ce que l’Unity Test Framework ?

L’Unity Test Framework est un outil gratuit intégré à l’éditeur qui permet à vos programmeurs d’écrire de petites vérifications automatisées et de les exécuter sur le code du jeu sans quitter le logiciel. En coulisses, il repose sur NUnit, une bibliothèque open source largement reconnue pour le langage de programmation C#, si bien que ses vérifications suivent une norme que la plupart des développeurs connaissent déjà. Vous pouvez lire le compte rendu complet dans la documentation officielle d’Unity.

Considérez-le comme un inspecteur automatisé des règles de votre jeu. Par exemple, si une barre de vie doit baisser de dix points lorsqu’un personnage encaisse un coup, le framework peut confirmer que c’est bien le cas, à chaque fois, en une fraction de seconde. Ce qu’il ne peut pas faire, c’est vous dire si le coup a semblé satisfaisant ou si l’animation avait l’air correcte. Il vérifie la mécanique, pas la magie, et cette distinction façonne tout le reste du test de jeux Unity.

Test de jeux Unity : un guide pratique, propre au moteur

Edit Mode et Play Mode : pourquoi l’écart compte

Le framework exécute deux types de vérifications, et la différence entre les deux est là où beaucoup de studios trébuchent :

  • Les vérifications en mode édition s’exécutent pendant que le jeu est éteint, comme si vous inspectiez un plan plutôt que de conduire la voiture. Elles sont rapides et peu coûteuses, et conviennent à tout ce qui n’a pas besoin que le jeu tourne réellement, comme les calculs de score, les règles d’inventaire ou la logique des fichiers de sauvegarde.
  • Les vérifications en mode jeu s’exécutent pendant que le jeu est actif, ce qui permet d’évaluer la façon dont une personne le vit réellement. Elles sont plus lentes et plus délicates à mettre en place, mais elles détectent les problèmes qui n’apparaissent qu’en mouvement, comme une physique qui se comporte mal, des dérives de timing, ou des objets qui n’apparaissent pas quand ils le devraient. Unity détaille le fonctionnement des deux dans son guide des tests automatisés.

Mal utiliser ces modes est une erreur facile à commettre et coûteuse à corriger. Ainsi, une équipe qui écrit beaucoup de vérifications en mode édition parce qu’elles sont rapides voit un mur rassurant de coches vertes, et suppose que le jeu est solide. Cependant, les joueurs rencontrent ensuite des bugs qui n’apparaissent qu’en mode jeu et qui n’ont jamais été vérifiés. Ces « coches vertes » ne sont fiables qu’à hauteur des tests qui les sous-tendent.

Le travail de configuration qui grignote discrètement un sprint

Avant que le test de jeux Unity puisse exécuter tout cela, votre projet doit être organisé en sections étiquetées. C’est ainsi que les vérifications savent quelles parties du code examiner. Faire cela proprement est simple au début d’un projet et véritablement pénible à ajouter après coup. Par conséquent, les équipes qui ajoutent les tests après coup perdent des jours à démêler la situation.

Il existe un second piège à connaître. Unity peut vous montrer quelle proportion de votre code a été atteinte par les vérifications. Cependant, un taux de couverture élevé indique seulement quelles lignes ont été exécutées, pas si chaque chemin qui les traverse a été correctement mis à l’épreuve. Ainsi, le jeu peut afficher un chiffre impressionnant et cacher malgré tout un bug dans un chemin que personne n’a pensé à vérifier.

Comment automatiser les tests dans Unity ?

L’automatisation dans Unity commence dans le moteur, où vos programmeurs écrivent des tests avec l’Unity Test Framework. Ils envoient ces vérifications via le Test Runner intégré et les relient à l’intégration continue. Le système automatisé reconstruit et revérifie votre jeu à chaque modification de code, si bien qu’une fonctionnalité cassée est signalée en quelques minutes au lieu d’apparaître dans une revue des semaines plus tard. Nos services de test automatisé sont construits exactement autour de ce rythme.

Le hic, c’est que l’automatisation n’est pas gratuite une fois écrite. Chaque test nécessite un entretien à mesure que le jeu évolue, et une suite négligée se dégrade en un tas de fausses alertes que tout le monde apprend à ignorer. L’automatisation ne porte ses fruits que si quelqu’un s’en occupe.

Test de jeux Unity sur iPhone et Android

L’habitude la plus importante dans le test de jeux Unity est d’exécuter votre titre sur le matériel que les joueurs utiliseront réellement, pas seulement dans l’éditeur sur un ordinateur puissant. L’éditeur est indulgent d’une façon qu’un téléphone dans la poche de quelqu’un ne l’est jamais.

Tester un jeu Unity sur Android signifie couvrir une multitude d’appareils aux puces, tailles d’écran et mémoires radicalement différentes, si bien qu’un build qui tourne sans accroc sur un téléphone haut de gamme peut ramper sur un modèle d’entrée de gamme que des millions de personnes possèdent. Tester un jeu Unity sur iPhone est plus restreint côté matériel mais plus strict côté règles, car le processus de validation d’Apple rejette des builds pour des raisons qui n’apparaissent jamais sur la machine d’un développeur. Un titre qui semble abouti dans l’éditeur peut encore trébucher sur les deux plateformes, pour des raisons complètement différentes, ce qui explique pourquoi les équipes sérieuses construisent et exécutent leurs jeux sur de vrais appareils iOS et Android bien avant le lancement. Notre liste de contrôle pour le test de jeux mobiles détaille ce qu’il faut couvrir sur chaque appareil avant la soumission.

Les outils de test de jeux Unity au-delà du Test Framework

L’Unity Test Framework excelle au niveau du code, mais il n’a jamais été conçu pour naviguer dans vos menus, terminer un niveau, ou se comporter comme une personne tenant une manette. Pour ce type de test de bout en bout, et pour piloter des builds sur de vrais téléphones à grande échelle, il vous faut des outils de test de jeux Unity dédiés, en plus de ce qui est fourni de base. Nous comparons ceux que les studios utilisent réellement dans notre guide des outils d’automatisation du test de jeux, afin que cet article reste centré sur le moteur lui-même.

Les particularités du test de jeux Unity qui piègent les équipes QA

Chaque moteur a sa propre personnalité, et celle d’Unity se manifeste à plusieurs endroits qui prennent les équipes au dépourvu :

  • La physique peut se comporter différemment selon la vitesse à laquelle un appareil fait tourner le jeu, si bien qu’un saut qui atterrit parfaitement sur un PC rapide peut projeter un personnage à travers un mur sur un téléphone plus lent. Ne tester que sur du matériel haut de gamme cache complètement cette catégorie de bug.
  • Unity s’arrête de temps en temps pour nettoyer la mémoire inutilisée, et cette pause peut se manifester par un accroc visible au pire moment possible, comme en plein combat de boss. Ces à-coups apparaissent rarement sur une machine de développement puissante, ce qui explique pourquoi ils passent inaperçus jusqu’aux joueurs. Détecter les chutes d’images et les pics de mémoire avant les joueurs est au cœur du test de performance des jeux, en particulier sur les appareils moins puissants.
  • Une même scène peut avoir une apparence sensiblement différente selon les diverses options de rendu d’Unity, si bien qu’un graphisme validé sous une configuration peut ressortir trop sombre ou cassé sous une autre. Une équipe qui vérifie les visuels sur une seule configuration ne teste qu’une fraction de ce que les joueurs verront.
  • Lire les messages d’erreur est facile dans l’éditeur et malaisé une fois que le jeu tourne sur un vrai appareil. Les testeurs sans la configuration appropriée finissent par signaler des bugs sous forme de capture d’écran sans aucune explication de ce qui s’est mal passé, et un développeur passe alors des heures à essayer de reproduire un problème qui n’a jamais été correctement documenté.

Aucun de ces problèmes n’est un bug exotique ; ce sont plutôt des conséquences ordinaires du fonctionnement d’Unity, et ce sont précisément les points qu’un testeur qui connaît le moteur recherche en premier.

En interne, automatisé ou externalisé : choisir votre modèle de test de jeux Unity

Il n’existe pas une seule bonne réponse, seulement celle qui convient à votre jeu et à votre équipe. Constituer une QA en interne vous donne des personnes qui connaissent intimement le projet, ce qui vaut beaucoup, même si c’est lent à recruter et coûteux à occuper entre les sorties. Si vous optez pour cette voie, notre guide sur la constitution d’une équipe de test de jeux détaille qui recruter et quand. S’appuyer sur l’automatisation apporte rapidité et cohérence, à condition que quelqu’un entretienne les vérifications et accepte que les machines passent à côté de tout ce qui touche aux sensations et au plaisir de jeu.

Faire appel à une équipe externe est particulièrement pertinent dans quelques situations bien précises :

  • Vous approchez d’un lancement et avez besoin d’une large couverture d’appareils rapidement.
  • Vos ingénieurs sont compétents mais n’ont jamais mis en place les vérifications en mode jeu d’Unity ni un pipeline d’intégration continue, et vous préférez ne pas perdre un sprint à l’apprentissage.
  • Votre propre équipe est tout simplement trop proche du jeu pour repérer les aspérités qu’un regard neuf détecte en un après-midi.

La démarche pragmatique pour la plupart des studios consiste en un mélange : l’automatisation pour les vérifications répétitives qui s’exécutent mieux sans intervention humaine, et des testeurs manuels compétents pour les jugements qu’un script ne peut pas rendre. Trouver le bon équilibre pour un jeu donné constitue l’essentiel du travail, et c’est là qu’un partenaire expérimenté justifie ses honoraires.

Unity vous offre une portée extraordinaire, et cette envergure s’accompagne d’une facture de test qu’aucun conseil générique ne couvrira. Les studios qui sortent des jeux propres sont ceux qui vérifient tôt les véritables points faibles du moteur, sur de vrais appareils, avec des personnes qui ont déjà vu ces bugs auparavant.

C’est exactement ce que nous faisons, alors parlez-nous de votre titre, et nous vous montrerons où se cachent les risques.

FAQ

L’Unity Test Framework est-il gratuit ?

Oui, l’Unity Test Framework est intégré à l’éditeur sans coût supplémentaire, si bien que n’importe quelle équipe peut commencer à écrire des vérifications automatisées sans rien acheter.

Peut-on automatiser le test de l’interface utilisateur dans Unity ?

Oui, c’est possible, mais pas avec le seul Test Framework. Piloter les menus et les boutons comme le ferait un joueur nécessite un outillage supplémentaire, en plus des vérifications intégrées d’Unity.

Faut-il tester un jeu Unity sur de vrais appareils iPhone et Android ?

Oui, l’éditeur masque les défauts propres à chaque plateforme, si bien que la seule façon fiable de voir ce que les joueurs obtiennent est d’exécuter le jeu sur de véritables appareils iOS et Android.

Le test manuel reste-t-il nécessaire si l’on automatise ?

Oui, l’automatisation est imbattable pour les vérifications répétitives, mais elle ne peut pas dire si un jeu est amusant, si un niveau paraît équilibré, ou si une animation a l’air correcte, et ce sont ces jugements qui déterminent les avis.

Quand un studio Unity doit-il faire appel à des testeurs externes ?

Les déclencheurs habituels sont un lancement imminent nécessitant une large couverture d’appareils, une équipe sans expérience de test spécifique au moteur, ou un jeu que ses propres créateurs connaissent trop bien pour le juger objectivement.

Découvrez comment nous avons aidé Couple Up! à atteindre des performances serveur optimales avant sa sortie

Veuillez saisir votre adresse courriel professionnelle n'est pas un courriel professionnel