GDC 2017 - La génération procédurale pour tous

L'auteur

Liens sociaux

Viadeo Twitter Facebook Share on Google+   

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.

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

  

Copyright © 2017 Rubrique 2D/3D/Jeux. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.