SporeMania - Les Pages

L’animation procédurale

Le samedi 4 août 2007 par Captain_cookies, Soph.


Textes & Crédits d’origine : ( Bona Fide Reviews )
Procedural Programming : The Secret behind Spore

Si vous êtes un adepte des studios MAXIS, vous aurez sans aucun doute
déjà ouie parler de leur nouveau projet « Spore ».

Le jeu qui en premier lieu fut intronisé sous le nom de «  Sims Everything » vous permettra accessoirement de faire juste tout ce que vous désirerez et ce à quoi vous songerez évasivement, empruntant le stade de la simple forme de vie cellulaire pour accomplir ce à quoi l’humanité est arrivée et bien plus encore : former une civilisation aux ouvertures spatiales entièrement personnalisées.

Peut-être l’un des éléments les plus fantasmagoriques de ce jeu est-il la véritable diversité qui rend impossible à deux joueurs de créer deux monstres, bâtiments, OVNI ou encore planètes identiques, mais toutes seront entièrement fonctionnelles. Comment cela pourra-t-il fonctionner alors que les blocs de fabrication de ces constructions sont eux-mêmes des polygones ?

Bien, avant de passer directement par ce chemin nous allons couper notre itinéraire par une escale afin d’examiner le jeu lui-même…

Spore est un jeu d’éditeurs. Dans chaque étape du jeu, vous allez dépenser vos points en vue de modifier et d’améliorer certains aspects du jeu. Il va de soi que vous débuterez avec l’éditeur cellulaire, puis vous enchaînerez avec l’éditeur de créature, puis celui d’objet, celui de véhicule, jusqu’à ce qu’enfin vous soyez en mesure de terraformer des planètes entières. La chose la plus admirable au sujet de ces éditeurs : Leur flexibilité. Un certain nombre de parties du corps, assemblées avec un nombre de jointures et de diverses autres choses peut être morphé et sa taille modifiée puis ajoutée presque n’importe ou sur votre créature. Le même procédé fonctionne également pour les cellules au stade impliquant celles-ci, et les parts d’interactions pour les éditeurs de bâtiments et de véhicules. La clef permettant de faire tourner un tel moteur ? La programmation procédurale.

La programmation procédurale est légèrement complexe à expliquer, mais je vais tâcher d’en donner un bref aperçu. Notre premier regard se tournera vers ce que la programmation procédurale n’est pas et ne prétend pas être. De nombreux jeux et softwares que vous avez l’habitude d’utiliser ont mené à la programmation dite « séquentielle ». La programmation séquentielle est essentiellement une gigantesque pièce de théâtre brouillée mettant en scène une série de phrases « If/Then ». Cela parait ridicule au premier regard, mais il n’en est rien.

Prenons un exemple simple, retournons quelques années dans le passé, à un jeu comme « Street Fighter 2 ». Avec la mise en forme « If/Then », la boule de feu de Ryu ressemblerait à cela : Si appuie successivement sur « Bas », « Bas arrière », « Arrière », « Frapper », ENSUITE lance une boule de feu, ou encore Si boule de feu atteint l’adversaire, ENSUITE celui-ci encaissera un certain nombre de dommages.

La programmation séquentielle est entièrement orientée objet. Afin d’expliquer cela en profondeur, la base de ce bloc de construction est un objet, ou une chose. Dans l’exemple précédent, les objets étaient la touche sur laquelle appuyer, l’adversaire et la boule de feu. Les programmes peuvent vérifier si certains objets font certaines choses en comparant leurs valeurs numériques. Par exemple, si un certain espace dans l’écran de jeu est assigné à un nombre, tout comme une grille de sudoku, le programme peut utiliser plus ou moins les comparaisons afin de déterminer ou se trouvait les personnages, la boule de feu, le sol, etc..

Eh bien, pourquoi ne pourrait-on pas faire usage de telles méthodes dans un jeu comme Spore ? Car dans un jeu avec autant d’options, les seules «  If/Then » se rallongent à tel point qu’elles en deviennent brouillées. Plusieurs appels aux points précédents dans la liste sont effectués et le résultat en devient totalement flou. Quelque chose que les développeurs appellent affectueusement « le codage Spaghetti ». Alors, autant de code et autant de variables en font quelque chose d’absolument monstrueux. Même si la technologie de l’information a crû de manière exponentielle, il y a toujours une limite physique spatiale qui restreint le stockage sur CD ou sur DVD.

Sur PS1, il y avait 4 disques de jeu, et sur PS2 nous en arrivions à deux ou trois DVD de jeu. Il n’y a que le temps pour nous séparer des jeu requérant deux voire trois HD DVD ou Blue Rays.

La solution ? Changer la manière de penser du jeu, et c’est précisément ce qu’entreprend la programmation procédurale.

La programmation procédurale n’utilise pas des « choses » comme les blocs de programmation habituels, mais prend pour cible des « actions », à la place. En prenant l’exemple de Street Fighter 2 « Lancer une boule de feu » est une action complète, tout comme « Frapper », «  Sauter », « gagner » et « mourir » avec toutes leurs particularités définies tout droit dans l’action elle-même.

La composante intéressante au sujet de la programmation procédurale : la modularité. Pensez à cela selon l’angle de vue suivant : Il y a une action pour sauter et une seconde pour donner un coup, lorsque vous combinez ces deux actions en une, vous obtenez un mix. Il est évident que c’est bien plus complexe au final que cela, mais il s’agit peut-être de la meilleure manière de le décrire.

Si vous avez observé les trailers de Spore, vous avez entendu les développeurs commenter à quel point tout se rapproche de la programmation procédurale, et c’est ce qui rend Spore aussi unique. Il y a de multiples procédures assignées à chaque mouvement d’un membre, qui interagit avec ce qui l’entoure, ce qui inclut l’attaque, la vue, etc… Les mouvements et les parties du corps sont définis par ces actions.

Le résultat ?
Le programme compile et gère la manière d’agir de la créature selon son schéma de construction. Cela permet aux éditeurs du jeu de contenir des possibilités potentiellement illimitées, vous octroyant le droit de modeler votre créature, votre bâtiment, ou votre véhicule, plutôt que le créer par l’intermédiaire des menus avec des choix et des options limités.

La programmation procédurale peut être utilisée dans plusieurs types de jeux et a été utilisée dans l’émulation il y a des années de cela, mais son domaine de prédilection dans lequel elle brille de tous ses feux reste le jeu de simulation, comme Spore, ou encore la série des Sims.

Ou était utilisée une liste complexe de règles et de conditions, sont à présent que quelques assignations à un couple de procédures comme « Aller au travail », ou « conduire votre voiture », par exemple pour l’un des personnage des Sims ou pour l’un des habitants de «  Sim City ».

Bien, mais que cela signifie-t-il pour le futur de la simulation sur jeu-vidéo ?
Premièrement jetez un oeil à des jeux tels que Civilization. La programmation procédurale peut signifier un renouvellement du concept d’unité, par exemple. Vous n’aurez plus davantage de colons, de travailleurs, de soldats et autres. A la place, il pourra s’y implémanter un temps durant lequel tout ce que vous aurez seront des « individus » dont chacun aura ses propres singularités. Et vous pourrez obtenir de ces gens tout ce que vous souhaitez, comme étendre les champs ou patrouiller le long de la bordure frontalière.

Actuellement, le seul jeu étant entièrement ou presque géré par une programmation orientée procédurale est Spore lui-même, mais des block buster comme Doom et Quake ont également été fixés sur des routines procédurales. Cela ajoute une flexibilité accrue dans les FPS. En considérant que la programmation procédurale était à l’origine principalement utilisée dans la gestion du comportement des armes et des munitions, ce type de programmation peut être appliqué aux armes elles-mêmes.

Peut-être dans le futur verrons-nous un jeu à la Counter Strike, ou à la place d’acheter ses armes vous en acheterez les composantes puis les assemblerez rapidement à la volée.

Par dessus tout, il est nécessaire de préciser que la programmation procédurale n’est pas un progrès dans la technologie, mais un progrès dans notre manière de penser à la technologie. La programmation procédurale principalement diminue et rétrécit l’univers de la technologie, nous permettant de compresser encore davantage d’informations dans un espace limité, et permettant à ces informations d’interagir dans des proportions infinies.

Les jeux continueront à devenir de plus en plus procéduraux au fil du temps, augmentant la flexibilité dans le même intervalle.

PS : Merci à tous les retours concernant la terminologie usitée dans cet article. L’auteur utilises le terme Programmation procédurale lorsque peut-être un terme plus approprié pourrait-être mentionné en lieu et place : Génération Procédurale. Nous nous excusons à ce sujet mais espérons que ce article procure un aperçu fort haut de compréhension au sujet de l’incommensurable progression de Spore au stade de révolution vidéoludique.



Commenter cette publication

 
Share
 
Participez vous aussi !

Écrivez votre page !

©2006-2011 SporeMania.com