La génération procédurale, on en entend de plus en plus parler depuis quelques temps et on sait qu’elle sera implantée dans Star Citizen, notamment pour la création de planètes.
Mais au fait, qu’est-ce donc la génération procédurale ?
Souvent confondue avec une génération aléatoire, la génération procédurale dans un jeu vidéo peut être utilisée dans de nombreuses branches et en ce qui nous concerne, particulièrement dans le level design. Ici dans le jeu qui nous intéresse, Star Citizen, il s’agit d’une technique qui va permettre d’obtenir de nombreuses planètes, sans pour autant les avoir à travailler une par une à la main. Les développeurs vont entrer des données de surface, d’atmosphère, d’éléments de décors etc… Toutes ces données seront comprises entre telles et telles fourchettes, comme par exemple, une montagne peut faire entre 1.000 m et 12.000 m, un continent pourra contenir entre 0 et 10 lacs etc.. Mais alors, cela signifierait que la génération procédurale est également aléatoire ?
Oui et non, en fait, on pourrait exprimer cela par une sorte de « aléatoire contrôlé ». Pour obtenir des planètes en technique procédurale, les développeurs enregistreront des algorithmes dans l’univers Star Citizen et le serveur se contentera d’en générer une infinité correspondant à ces normes prédéfinies.
Normalement les devs ne devraient pas utiliser cette technique sur les planètes phares, importantes au jeu; mais pour générer des planètes sauvages à découvrir ou avec un avant-poste et des éléments simplifiés, cela va grandement leur faciliter la tache.
Sachant que, contrairement à ce que croient de nombreux joueurs, la génération procédurale ne signifie en rien que chaque joueur verra un décor différent d’un autre joueur, du tout. Tous les joueurs verront exactement la même planète, les mêmes paysages, les mêmes décors, les mêmes mobs et pnj s’il y en a. Si c’est la nuit pour l’un, il fera nuit pour tous les autres aussi. En fait, c’est le premier joueur qui découvrira la planète en question, qui la fera générer par le serveur; ensuite, la planète sera identique pour tous les autres joueurs et pnj quels qu’ils soient.
Cette technique n’est pas nouvelle, on la voit dans de nombreux jeux vidéo déjà et pas des moindre, comme Minecraft par exemple ou bien Spore, ou encore Left 4 Dead (pour son intelligence artificielle) ou No Man’s Sky, parmi tant d’autres…
La génération procédurale simplifie énormément la tache des développeurs tout en réduisant le temps de production du jeu vidéo. Mais si cette technique a ses avantages, elle possède également des inconvénients. Tout d’abord en ce qui concerne les bugs. Lorsqu’un programmeur ou designer va effectuer son travail sur une zone, il va la construire et la voir de ses propres yeux et va repérer les bugs en observant. Avec la génération procédurale, il n’est pas possible de voir si tout va se faire de manière parfaitement cohérente avant que cela ne soit généré. Même si en théorie, on fera tout pour que l’ensemble soit le plus réussi possible. C’est d’ailleurs la raison pour laquelle Chris Roberts privilégie un univers entre guillemets plus petit, c’est à dire pour le moment avec une centaine de systèmes planétaires (tout de même hein) à un univers immense et finalement pas très utile dans le sens où tous les joueurs se retrouveraient trop éparpillés dans des millions et des millions d’étoiles et de systèmes dont le contenu sera incertain.
Autres inconvénients, la possibilité, même infime, d’avoir un environnement buggé et aux patterns apparents. Et puis bien entendu, les possibilités de nos machines, est-ce que nos pc pourront supporter tout cela sans broncher ? Rien n’est moins sûr. Du coup les devs préféreront sélectionner des points précis de leur jeu à générer de façon procédurale, pour le reste, rien ne remplacerait le soin de leurs propres cerveaux et mains.
A noter que sur Star Citizen, il n’y a pas que certaines planètes qui utiliseront la génération procédurale, les missions en elles-mêmes peuvent également utiliser cette méthode dans l’univers persistant; par exemple à tel et tel endroit, peuvent apparaître tels et tels types de missions, d’ennemis etc..
Voir la vidéo d’introduction au système de planètes générées de façon procédurale dans Star Citizen