Automatisez vos tests de jeu : Créer des joueurs virtuels pour la simulation de jeux

DYLAN SCANDINARO Anonymous
Dec 11, 2020|6 Min
Automatisez vos tests de jeu : Créer des joueurs virtuels pour la simulation de jeux
Cette page a été traduite automatiquement pour faciliter votre expérience. Nous ne pouvons pas garantir l'exactitude ou la fiabilité du contenu traduit. Si vous avez des doutes quant à la qualité de cette traduction, reportez-vous à la version anglaise de la page web.

Il est facile d'automatiser les tests de jeu en créant un joueur virtuel (un agent de jeu), puis en utilisant la simulation de jeu pour exécuter des tests de jeu automatisés à grande échelle. Découvrez trois études de cas décrivant comment iLLOGIKA, Furyion et Ritz Deli ont créé des joueurs virtuels - en transférant près de 40 000 heures (environ 4,5 ans) de tests de jeu automatisés à la simulation de jeu.

Les jeux sont difficiles à tester pour la même raison qu'ils sont amusants : les joueurs ont la liberté de façonner leur propre expérience. Les jeux disposent donc d'une surface énorme pour l'apparition de bogues et de défauts de conception. Les développeurs doivent tester fréquemment et avec une couverture étendue pour résoudre les problèmes et respecter les délais de manière fiable.

Dans le passé, les développeurs choisissaient entre des tests à faible couverture et à haute fréquence (tests unitaires dans un pipeline de CI) et des tests à haute couverture et à faible fréquence (playtests avant une version majeure).

Nous avons construit Unity Game Simulation pour aider les développeurs à tester avec la couverture des playtests et la fréquence des tests unitaires. Unity Cloud Game Simulation permet aux développeurs d'effectuer des playtests automatisés dans le cloud. Pour utiliser Unity Game Simulation :

Créer un joueur virtuel (un agent qui joue).

Utilisez le package Game Simulation pour instrumenter votre jeu en vue d'une simulation.

Mettre en œuvre des paramètres configurables à distance pour simuler différentes variantes de votre jeu. Mettre en place des mesures pour enregistrer les données nécessaires pour répondre aux questions de conception.

Utilisez le paquet Simulation de jeu pour créer et télécharger une version de votre jeu sur nos serveurs.

Exécutez votre jeu des milliers de fois à partir de l'interface utilisateur de la simulation de jeu.

Cet article de blog se concentre sur l'étape 1 - la création d'un lecteur virtuel pour les tests automatisés. Les étapes 2 à 4 sont simples et couvertes par la documentation sur la simulation de jeux. Vous pouvez essayer Game Simulation gratuitement maintenant.

La création d'un joueur virtuel pour la simulation d'un jeu Unity est facile

Un joueur virtuel émule l'entrée d'un joueur réel pour tester certains aspects de votre jeu. Pour les tests simples, tels que la validation du fait que votre jeu peut fonctionner pendant 60 minutes sans déclencher d'exception, un lecteur virtuel peut être aussi simple qu'un script C# avec quelques lignes de code qui lance une scène et exécute des actions aléatoires.

Pour des tests plus complexes, tels que la vérification que toutes les armes ont à peu près la même force ou que chaque niveau peut être complété, un joueur virtuel peut être créé avec les mêmes méthodes que celles couramment utilisées pour créer des personnages non joueurs (PNJ). Il s'agit notamment de

  • Scénarios heuristiques : Un script avec une règle ou un algorithme très simple
  • Arbres de comportement : - Représentation visuelle d'un plan composé de conditions et de tâches.
  • Machines à états finis : Un script avec quelques états entre lesquels le joueur virtuel alterne, par exemple, recherche et attaque.
  • Planificateur d'IA d'Unity: Un cadre de planification visuelle avec une interface utilisateur Unity UI intuitive
  • Apprentissage par renforcement et par imitation à l'aide de la boîte à outils ML-Agents d'Unity: Découvrez comment nous avons créé un lecteur virtuel pour le Snoopy Pop de Jam City à l'aide de ML-Agents.

Nous expliquons ci-dessous comment trois studios ont créé des joueurs virtuels, en transférant collectivement près de 40 000 heures de tests de jeu dans Unity Game Simulation. Ce qui est particulièrement remarquable, c'est que les trois studios ont été en mesure d'obtenir une valeur immense avec la simulation de jeu tout en s'appuyant sur des approches relativement simples pour créer leur joueur virtuel.

Ritz Deli : Heuristique (algorithme gourmand)

Le studio indépendant Ritz Deli a développé Eraser Blast, un jeu de puzzle de type linker comprenant plus de 50 personnages, chacun ayant des caractéristiques de jeu uniques. Ritz Deli a utilisé Unity Game Simulation pour exécuter des centaines de simulations afin de s'assurer que chaque personnage génère des scores et un nombre de pièces croissants au fur et à mesure que son niveau d'XP augmente.

Eric Jordan, directeur technique de Ritz Deli, devait créer un lecteur virtuel capable de résoudre des énigmes de type "linker". Il a mis en œuvre un lecteur virtuel avec un script C# basé sur un algorithme heuristique simple. Pour le souffle de la gomme, l'algorithme fait correspondre la plus longue chaîne possible de bulles du même type :

Créer l'ensemble de toutes les sélections possibles d'une seule bulle.

Type de bloc inconnu "__block", veuillez spécifier un sérialiseur pour ce type dans la propriété `serializers.types`. Type de bloc inconnu "__block", veuillez spécifier un sérialiseur pour ce type dans la propriété `serializers.types`.

Sélectionnez la bulle de l'ensemble des bulles valides qui a le plus grand nombre de correspondances disponibles.

Répétez les étapes 1 et 2 jusqu'à ce qu'aucune bulle disponible ne soit une correspondance valide.

Mettre à jour les métriques pour le score total et les pièces récompensées.

iLLOGIKA : Arbre de comportement scénarisé

iLLOGIKA est le studio à l'origine de Rogue Racers, un jeu de course joueur contre joueur (PvP). Les joueurs créent des paquets de cartes qui contiennent des bonus qu'ils utilisent pendant la course. iLLOGIKA a utilisé la simulation de jeu pour tester toutes les combinaisons de cartes afin de s'assurer qu'aucune carte ou paquet n'est trop puissant.

Les développeurs d'iLLOGIKA ont créé un lecteur virtuel à l'aide d'un script C# :

Permettre au joueur virtuel de réussir à naviguer jusqu'à la fin de la course en effectuant des rayonnements pour repérer les obstacles à venir, puis en les évitant en changeant de voie, en esquivant ou en sautant.

Ajoutez une série de règles décrivant quand utiliser les cartes en fonction de l'état du jeu, y compris la santé actuelle du joueur, les positions relatives des autres joueurs, les capacités de leurs cartes, etc.

Type de bloc inconnu "__block", veuillez spécifier un sérialiseur pour ce type dans la propriété `serializers.types`.

Pour chaque action décrite aux étapes 1 et 2, choisissez une action incorrecte mais possible pour tenir compte de l'imprévisibilité d'un joueur réel.

Furyion : Arbre de comportement Behavior Designer

Furyion est le développeur de Death Carnival, un jeu de tir en vue de dessus doté d'un système unique de prises d'armes qui permet au joueur de choisir parmi plus de cent mille combinaisons possibles d'armes, de munitions et de modules d'armes - chaque combinaison définissant une expérience de jeu unique.

Herbert Yung, fondateur et directeur de Furyion, a utilisé un outil de création d'arbres de comportement appelé Behavior Designer pour créer un joueur virtuel afin d'estimer le temps moyen d'achèvement d'un niveau pour chaque combinaison d'armes, de munitions et de modules d'armes. Herbert a ensuite effectué des milliers de simulations avec Unity Game Simulation pour tester chaque combinaison de prises d'armes, économisant ainsi plus de 600 heures de jeu.

Herbert a tiré parti de l'interface intuitive de Behavior Designer et de nombreuses tâches prêtes à l'emploi dans Behavior Designer pour créer un lecteur virtuel :

Si un ennemi est à portée, attaquez-le.

Si aucun ennemi n'est à portée, déplacez-vous vers la sortie jusqu'à ce qu'un ennemi apparaisse à portée.

Répétez les étapes 1 et 2 jusqu'à ce qu'il ne reste plus d'ennemis.

Naviguez jusqu'à la porte à la fin du niveau et une fois le niveau officiellement terminé, appelez Application.quit().

Pour plus d'informations sur la création d'un bot avec Behavior Designer, consultez la documentation sur la page Asset Store de Behavior Designer.

Avant-première en accès anticipé : Simulation de jeu Unity pour les tests d'assurance qualité

L'équipe de simulation de jeux Unity s'engage à vous aider à créer des joueurs virtuels pour les tests automatisés, en commençant par les joueurs virtuels pour les tests d'assurance qualité. N 'hésitez pas à nous contacter si vous souhaitez être parmi les premiers à essayer nos nouveaux outils et fonctionnalités pour créer des joueurs virtuels pour les tests d'assurance qualité.

Commencer

Découvrez comment démarrer avec Unity Game Simulation - vous pouvez même l'essayer gratuitement. N 'hésitez pas à contacter l'équipe de la simulation de jeux pour toute question.