Par analogie
Un circuit ne génère pas d'électricité. Une ampoule ne produit pas d'électricité. Une batterie ne génère pas d'énergie. Aucune des choses qui utilisent ou stockent l'énergie produite , ne sont des générateurs d'énergie.
Un générateur à essence est un générateur de puissance . Une configuration de panneau solaire est un générateur électrique . On peut s'attendre à ce qu'ils génèrent spontanément lorsqu'ils sont lancés. D'autres choses peuvent utiliser l' énergie qu'elles génèrent: les réfrigérateurs et les téléviseurs et les PC, les radiateurs et les ampoules.
De même, tout code ou programme qui génère réellement du contenu lui-même au moment de l'exécution est PCG. Les autres ne sont que des utilisateurs de ce contenu généré de manière procédurale (PGC). Maintenant,
Génération de contenu procédural
n'est pas la même chose que
Contenu généré de manière procédurale
PGC est l'artefact résultant d'un processus (programme) qui s'engage dans PCG.
PCG est développé (programmé) à un point où il peut produire de manière autonome du contenu selon certaines spécifications, mais dans (généralement) d'innombrables variations; PGC est ainsi généré comme une seule variation des espaces de contenu possibles autrement illimités dans cette spécification algorithmique plus large. Les PGC sont finis et statiques une fois générés. Les PCG traitent de l' infini (ou assez près).
Adressage des détails
La «génération de contenu procédural» fait référence au code / aux applications qui génèrent du contenu.
Tout jeu peut être considéré comme un jeu PCG si, à l'exécution, il génère dynamiquement du nouveau contenu via une partie de son jeu d'instructions.
Si vous (ou votre moteur) utilisez un autre code de programme qui génère du contenu, puis incluez ce contenu dans votre jeu au moment de la compilation / construction , alors votre jeu (et son code) n'est PAS PCG. Par conséquent:
un moteur de jeu capable d'intégrer une végétation générée automatiquement
... n'est pas PCG, car ce moteur lui-même ne produit pas de nouveau contenu au moment de l'exécution, il utilise simplement du contenu généré d'ailleurs, qui a été manuellement inclus par des artistes, concepteurs ou développeurs.
reconnaît la carte du jeu
PCG n'a rien à voir avec la reconnaissance. Il s'agit de faire le travail actif de création de contenu. En général, les applications PCG produisent leur propre format de données qu'elles peuvent déjà comprendre et utiliser. Ils ne lisent généralement pas dans des sources externes, bien que lorsqu'ils le font, il s'agit simplement d'une vieille logique de programme ... pas de PCG en tant que tel. PCG est une question de génération . D'où PCG et non PCR :)
Perspectives historiques
Ce que nous considérons comme du «contenu» dans ce contexte couvre généralement les choses que, dans le passé, les humains ont dû produire par eux-mêmes. Par exemple, dans les années 70 et 80, à peu près tous les jeux (à l'exception de quelques-uns très spéciaux) devaient avoir leur art, son scénario, sa musique, son nom de personnage et de planète, etc., produit par un être humain . C'était l' opposé polaire de PCG.
PCG a commencé quand les programmeurs jeu réalisé qu'au lieu de l'embrouillamini des artistes d' embauche, musiciens, écrivains , etc. - et encore intégrer leur travail avec le code, ou pire encore, faire tout ce travail eux - mêmes , ainsi que le codage - ils pourraient au lieu d'écrire des programmes pour générer tout ça pour eux. Ces efforts ont été parmi les premières fonctions, modules et programmes véritablement PCG. Un exemple parfait est le XCom / UFO original , où le code du jeu génère un niveau complètement unique pour vous avant le combat. Plus tôt encore (1979) était Temple d'Apshai .
Elite était un cas différent: une partie de son contenu a été générée lorsque le jeu était en cours de développement; non seulement ce code a été écrit par les mêmes auteurs, mais aussi que le contenu pré-généré était généralement utilisé au moment de l'exécution elite.exe
(c.-à-d. lorsque vous le joueur exécutiez le jeu) par d' autres générateurs qui faisaient partie du code du jeu , créant le monde que vous joué.
Un exemple plus récent est Minecraft (et d'autres jeux qui s'en inspirent) où le monde génère littéralement autour de vous lorsque vous vous dirigez vers l'horizon, grâce en grande partie à la puissance de calcul moderne. Comparez cela à Rogue ou Moria joué sur un PC-XT dans les années 1980, pour lequel vous devrez peut-être vous attendre à ce que le niveau soit généré! (en fonction des paramètres de jeu choisis).
Tous les PCG ne sont pas historiquement enracinés dans l'industrie des jeux. Par exemple, il y a ceux qui écrivent des générateurs de fiction. Par exemple, Ken Perlin dans le domaine des graphiques et de la géométrie informatique a créé l'algorithme Perlin Noise, pour lequel il a par la suite reçu un prix académique. Par exemple, le musicien Brian Eno s'est depuis longtemps engagé dans la génération procédurale de partitions musicales. Et comme autre exemple, les jeux de société non numériques comme HeroQuest / Warhammer Quest ont depuis longtemps inventé une dynamique procédurale pour créer un plateau de jeu différent sur chaque jeu.