Capteur en grille et test de jeux automatisé

Comment définir des observations indépendantes de la vision pour des agents autonomes destinés au test de jeux. 

Il est de plus en plus difficile pour les sociétés de l’industrie du jeu vidéo de garantir la qualité de leurs productions. Jusqu’ici, cette charge incombait aux testeur·euse·s, qui jouent en continu ou créent des comportements scriptés afin de s’assurer que le jeu s’affiche et se comporte comme prévu. Cependant, les jeux devenant toujours plus vastes et complexes, l’assurance qualité par les êtres humains et les actions scriptées ne suffisent plus. L’apprentissage par renforcement (RL pour Reinforcement Learning), ajouté aux méthodes de test actuelles, pourrait résoudre ce goulot d’étranglement. En effet, les agents de RL sont capables d’apprendre en jouant au jeu sans intervention humaine. Cependant, bien qu’intéressants, les prouesses médiatisées de l’apprentissage par renforcement appliqué aux jeux AAA ont requis une masse incroyable de temps et de données, et un niveau tout aussi impressionnant dtravail technique. Le développement d’un jeu AAA étant en soi une entreprise colossale, minimiser le coût pour mettre en place un système permettant d’entraîner et d’utiliser des agents de RL pour le test de jeux est crucial pour la réussite du projet. De plus, le jeu doit être testé en parallèle avec son développement, ajoutant à la difficulté. De ce fait, des fonctionnalités peuvent être ajoutées, modifiées ou supprimées indépendamment des graphismes du jeu, eux-mêmes constamment sujets à des itérations rapides et drastiques. Ainsi, afin de régler le problème grandissant de l’assurance qualité des jeux AAA au moyen de l’apprentissage par renforcement, les modèles employés doivent être faciles à entraîner et robustes aux changements. 

La recherche en RL porte le plus souvent sur des domaines où on peut présupposer un espace où on peut faire des observations. Par exemple, dans ses débuts, la recherche sur l’apprentissage par renforcement via l’apprentissage profond (deep learning) se basait sur les pixels rendus de jeux Atari 2600. D’importants progrès ont été ainsi faits sur les méthodes d’entraînement à partir de données de grande taille telles que des images.  

Un agent aléatoire jouant au jeu Breakout, implémenté à l’origine sur la console Atari 2600. 

De toutes les leçons tirées de cette avenue de recherche, la plus évidente est que la représentation des observations peut avoir un effet significatif sur le comportement de l’agent. Plus concrètement, le choix de ce qu’un agent peut observer affecte intrinsèquement le type de comportement dont cet agent va faire preuve. Pour cette raison, les voitures autonomes sont dotées de capteurs photographiques et de télédétection par laser (LIDAR) coûteux qui permettent aux modèles d’apprentissage automatique embarqués de mieux observer leur environnement. Dans le jeu vidéo, les capteurs des agents de RL étant virtuels, leurs observations ne sont limitées que par leur coût en puissance de calcul. Le dépôt dUnity bien connu ML-Agents, avec des agents d’apprentissage automatique dotés de capteurs virtuels qui accumulent des observations pour entraîner et exécuter des modèles.  

Jusqu’à la fin du mois de septembre 2020, il n’existait que deux types de capteurs disponibles pour les agents automatiques de Unity : les capteurs photographiques et le raycasting (lancer de rayons). Comme dans l’environnement Atari, les capteurs photographiques fournissent une image RVB ou en niveaux de gris à l’agent, tandis que le raycasting permet d’observer et de collecter les données relatives à un objet de jeu en ligne de mire. Une fois l’objet de jeu référencé, le développeur peut contrôler les attributs de cet objet (par exemple, la santé) qui peuvent demandés et observés par l’agent d’AR. Bien que ces deux types de capteurs aient été utilisés dans divers environnements, ils mettent en évidence certaines limites dans l’entraînement des agents.  On trouve une description détaillée de ces limites dans un article de blog dUnity (en anglais) décrivant comment EidosLabsen collaboration avec Matsuko, a développé le capteur en grille (Grid Sensor) afin de remédier à ces problèmes. 

Le capteur en grille allie la généralité de l’extraction de données à partir du raycasting à l’efficacité de calcul des réseaux de neurones convolutifs. Le capteur en grille collecte les données des objets de jeu en récupérant leurs propriétés physiques, puis structure ces données dans une matrice de type « hauteur x largeur x canal ». Cette matrice est semblable à l’image d’une caméra orthographique, à ceci près qu’au lieu de représenter les valeurs rouge, vert, bleu des objets, les « pixels » (ou cellules) du capteur en grille représentent un vecteur de données arbitraires de ces objets par rapport au capteur. Un autre avantage est que la grille peut afficher une résolution moindre, permettant des temps d’entraînement plus courts. Cette matrice peut ensuite être envoyée à un réseau de neurones convolutif soit pour de l’analyse de données ou pour entraîner des agents de RL. 

For information about the Grid Sensor implementation in Unity, see EidosLabs’s Pull Request on the ML-Agents repository.  

Pour en savoir plus sur l’implémentation du capteur en grille dans Unity, consultez la pull-request d’EidosLabs sur le ML-Agents (en anglais).

Au-delà d’un temps d’apprentissage plus court et de modèles de taille réduite, l’utilisation du capteur en grille avec les agents de RL présente d’autres avantages moins évidents. Le capteur en grille emploie des étiquettes, comme «Ennemi» ou «Collectable», afin de filtrer les aspects du jeu à observer. Pouvoir abstraire de tels concepts communs à plusieurs jeux minimise de travail nécessaire au transfert de l’agent d’un jeu à l’autre et permet de se concentrer sur la tâche d’ajuster les hyperparamètres. En outre, le capteur en grille pouvant être lié à un personnage contrôlé par un·e être humain, il permet de récolter facilement les données de sessions de jeu. Ces données peuvent ensuite être utilisées à des fins variées dépassant le cadre des tests, comme comprendre les dynamiques de jeu, la prédiction des comportements des joueur·euse·s et l’apprentissage de politiques par imitation, tout en restant indépendantes des graphismes du jeu. 

Récemment, le capteur en grille a été adapté à Unreal, validant son succès préalable dans Unity. Lors de cette adaptation du capteur en grille, il est devenu apparent qu’être en mesure de faire une requête d’objet par le type plutôt que par étiquettes permettrait de tirer parti de la hiérarchie des classes des objets tout en évitant des comparaisons de chaînes de caractères coûteuses.  

Vous trouverez ci-dessous un exemple d’agent entraîné dans Unreal à se déplacer vers une cible dans un environnement de test simple. On fournit à l’agent une observation du capteur en grille ainsi qu’un vecteur contenant la direction de la cible, l’orientation spatiale de l’agent et la distance de l’objectif par rapport à la distance de départ. Les actions sont des entrées clavier envoyées directement au PlayerController d’Unreal. Cet exemple simpliste constitue une première étape vers l’automatisation des procédures de test indépendantes du rendu graphique du jeu et des actions exclusives au jeu. 

Un environnement de test minimal implémenté dans le moteur de jeu Unreal où un agent navigue au travers d’obstacles pour atteindre un but donné. L’agent se déplace vers son but en sélectionnant virtuellement des touches du clavier, qui sont relayées à la composante PlayerController. 

Bien que le capteur en grille règle certains des problèmes liés à l’utilisation de l’apprentissage par renforcement dans le cadre des tests de jeux, il dépend de certaines hypothèses quant aux types de tâches qu’on peut lui attribuer. Comme n’importe quel outil, il ne constitue pas une solution à tous les problèmes mais fait la lumière sur le potentiel et les limites de l’apprentissage automatique dans le cadre du jeu vidéo. Chez EidosLabs, notre but à travers ce sujet de recherche est d’améliorer l’expérience des équipes de développement, de conception, et des joueur·euse·s.

 

Auteur

Jaden Travnik rejoint Eidos-Montréal en 2018 en tant qu’expert en apprentissage automatique. Il obtient sa maîtrise en sciences informatiques en 2018 sous la supervision du Dr Patrick Pilarski en menant des recherches centrées sur l’apprentissage par renforcement appliqué aux dispositifs prothétiques. Jaden constate que, lorsque bien utilisé, l’apprentissage automatique peut éliminer les obstacles rencontrés par certaines personnes tout en leur offrant un contrôle accru sur des choses qui leur sont chères. Le développement de jeux vidéo fait l’objet de tels obstacles, et il est intéressant de voir dans quelles mesures l’apprentissage automatique permet de les surmonter.

Llama