I. Introduction▲
Kate Compton, développeuse de Tracery, explique comment mettre en place une génération procédurale des contenus simplement.
II. Vidéo▲
GDC 2017 - La génération procédurale pour tous
III. Résumé▲
Kate Compton a travaillé sur Spore (notamment la génération des planètes) et SimCity et a beaucoup travaillé sur la génération procédurale (Tracery, un langage pour générer des textes).
La génération procédurale permet d'aboutir à la création d'une multitude de contenus :
- règles d'un jeu de plateau ;
- terrains ;
- quêtes ;
- phrases ;
- arts ;
- générations de titres ;
- robots Twitter ;
- …
Souvent, la génération de contenu est gérée par une intelligence artificielle sophistiquée, mais il est aussi possible d'arriver à un résultat convaincant simplement. La partie la plus compliquée du processus est le design.
III-A. Méthodologie▲
Pour démarrer votre projet de génération procédurale, vous devez suivre quelques principes :
- comprendre l'espace de conception (ce qui doit être produit) ;
- énumérer les contraintes ;
- comprendre le processus de création ;
- choisir une méthode de génération ;
- être itératif dans le processus (et flexible).
Kate explique deux grandes méthodes :
- construire uniquement des objets adéquats (méthode cumulative) ;
- retirer tout ce qui n'est pas adéquat (méthode par suppression).
III-A-1. Méthode cumulative▲
Les six catégories suivantes reposent sur l'accumulation de contenu :
- les tuiles (Diablo 2, Spelunky, Civilization…) : efficaces lorsque vous avez un contenu pouvant se diviser en régions (tuiles) et que vous pouvez assembler sans contrainte ;
- les grammaires (Tracery, L-Systems) : permettent de créer du contenu récursivement à partir d'un autre ;
- les distributions (No Man's Sky, Spore) : remplissent le niveau d'objets ;
- les paramètres (Spore, No Man's Sky) : définissent la forme de votre contenu ;
- les interprétations (squelette des créatures de Spore, Pokemon Go) : l'algorithme commence avec un ensemble de données et cherche un résultat grâce à celles-ci ;
- les simulations (textures de Spore) : la traînée des particules peut être réutilisée pour produire/décorer un objet.
III-A-2. Méthode par suppression▲
La méthode consiste à supprimer le contenu qui n'est pas intéressant. Pour cela vous pouvez :
- sauvegarder les graines de la génération de nombres aléatoires (les planètes de Spore). Assurez-vous qu'aucun contenu ne dépend du nombre d'images par seconde ou des entrées utilisateur) ;
- tester le contenu. Il faut une méthode pour déterminer si le contenu est bon ou non ;
- explorer toutes les possibilités (efficace pour les générations paramétriques) ;
- trouver la solution aux contraintes (n'implémentez jamais votre propre solveur).
III-B. Mots finals▲
Vous avez votre générateur et vous êtes en mesure de produire énormément d'objets, mathématiquement uniques, mais qui peuvent aussi énormément se ressembler. Cela peut être un problème comme cela peut être un avantage.
Il est aussi important que les joueurs puissent s'approprier les objets générés aléatoirement (par exemple en les nommant) et qu'ils puissent partager leurs « découvertes ».
Finalement, afin de vous rendre la vie plus facile, vous pouvez faire en sorte que les structures de données de vos générateurs soient aisément lisibles. Aussi, visualisez le contenu généré.
IV. Commenter▲
Vous pouvez commenter et donner vos avis dans la discussion associée sur le forum.