Il existe de nombreux sujets sur le fonctionnement de la génération procédurale, mais je n'ai trouvé aucune information sur la façon de tester et - ce qui est plus important - sur la façon de signaler les bogues pouvant survenir aux niveaux générés par la procédure. Quelle est la meilleure façon de décrire un bug, par exemple lié à la conception de niveaux, sur une carte qui sera différente à chaque fois que vous jouerez à un nouveau jeu? Quelles informations devraient être incluses dans le rapport de bogue afin de les reproduire serait plus facile pour le concepteur de niveau, l'artiste de niveau, etc., puis également pendant le processus de régression?
EDIT: Il convient de mentionner que le jeu, que je me prépare à tester, est dans une phase de développement très précoce et évolue constamment avec les systèmes responsables de la génération des niveaux. Le but de cette recherche est d'apprendre à décrire les bogues (quelles informations inclure dans le rapport) afin que la régression dans un environnement en évolution soit aussi rapide et efficace que possible.
Réponses:
Il peut également être très utile lorsque votre algorithme de génération de carte est déterministe et répétable en fonction d'une valeur initiale de départ. Ainsi, lorsque vous entrez la même valeur de départ, vous obtenez la même carte. Cela pourrait être plus facile à mettre en œuvre que vous ne le pensez. La plupart des API de génération de nombres aléatoires peuvent être initialisées avec une valeur de départ, puis générer toujours la même séquence de nombres aléatoires pour la même valeur de départ. Si vous utilisez l'une des rares plates-formes où ce n'est pas le cas (comme JavaScript basé sur un navigateur), vous pouvez implémenter votre propre générateur de nombres aléatoires. Il existe de nombreux algorithmes qui ne sont pas très difficiles à implémenter et nécessitent généralement une valeur de départ.
Vos testeurs peuvent ensuite mentionner la graine de la carte dans leurs rapports de bogues. Un rapport de bogue comme "Les arbres poussent au milieu d'un lac" peut avoir une instruction de reproduction "Générer une carte avec la graine a4f6dd32 et aller à la position 4321500: 1269100". Après avoir vérifié cela, vous pouvez définir un point d'arrêt conditionnel du débogueur dans votre algorithme de génération de carte qui se déclenche sur le bloc de carte affecté et vérifier exactement ce qui se passe.
Un algorithme de génération de carte déterministe vous permet également de mettre en œuvre un test automatisé. Vous pouvez avoir différentes graines de test avec des sorties connues, puis demander à vos tests automatisés de vérifier si cette sortie est toujours la même après avoir apporté des améliorations de performances dans votre algorithme de génération.
la source