# Jeux vidéo > Jeux vidéo (Discussions générales) > Le coin des développeurs >  Génération procédurale

## Sylvine

Je viens de tomber sur cette vidéo sur un blog Nofrag.


Et ben  :Bave: 

Je suis en train de m'imaginer un BF-like dans une ville de la taille d'un GTA avec tous les bâtiments visitables (et entièrement destructible pendant que j'y suis) avec des vieilles embuscades de mec planqués au 10ème étage, des affrontement d'immeubles à immeubles et des combats dans des bureaux à moitié dévastés avec le plafond qui risque de s'effondrer à tout moment.

 :Bave: 

A votre avis, est-ce que ce genre de technologie pourra être utilisée dans un futur pas trop lointain pour un jeu multi?

----------


## Erkin_

Bof, je ne vois pas énormément d'intêret pour un bf like.
Par contre ça peut être sympa pour un Hitman dans lequel tu dois trouver le meilleur point pour assassiner ta cible en public.

Mais j'ai largement tendance à penser que pour ce genre de chose, la qualité prime sur la quantité.

----------


## Captain_Cowkill

Un BF MMO  :Bave:

----------


## Treith

Je trouve que la vidéo parle pas tant que ça :

Le mec il tire dans un mur , 3balles et ya déja un pan de mur détruit ::huh:: ...

Par contre le fait que tout soit ouvert  :Bave:  fini les portes scellés.

----------


## Sylvine

> Le mec il tire dans un mur , 3balles et ya déja un pan de mur détruit...


C'est une démo technologique, ça c'est juste des problèmes de réglage.
Imagine qu'il ai un lance grenade à la place d'un fusil d'assaut et t'as l'idée.




> Bof, je ne vois pas énormément d'intêret pour un bf like.


Ba comme j'ai dis, ça rajouterais une dimension supplémentaire au jeu.
Tu est en train de marcher dans une rue, dans un FPS classiques, tu sauras pertinemment où regarder, parce que, d'une les maps sont pas très grande, et de deux, souvent il n'y a qu'une poignée de bâtiments visitables.
Avec un système comme ça, à chaque fenêtre il pourrait y avoir un sniper en embuscade, et dans une rue avec plusieurs centaines de fenêtres à vérifier, autant dire que le danger peut venir de n'importe où.

Autre exemple, il faut couvrir un véhicule quelconque. Dans le FPS classiques, les points d'embuscades sont prédéfinis, il suffit de les vérifier au passage et ça roule.
Là, la technique de fourbe consisterait à cacher des hommes dans des étages en hauteurs des 2 cotés de la route et d'attendre que le convoi passe pour l'attaquer par derrière.

Enfin bref, ça révolutionnerait complétement la façon de jouer.

----------


## Nelfe

Un SWAT 5 dedans  :Bave:

----------


## war-p

Le problème du procedural, c'est que tout fini par se ressembler et se répéter à l'infini (c'est le principe même de la chose) il n'y a donc rien de personnel, en revanche, ça peut être utile pour des environnements ouvert genre pour des MMO ou autre RPG, ou autre

----------


## Erkin_

Sylvine : Ce que tu recherches se nomme ARMA  ::): 

Plus sérieusement, il n'y a pas besoin de génération procédurale pour faire des maps avec des bâtiments ouverts et ce genre de gameplay.
Ces sensations de ne pas savoir d'où peuvent venir les attaques, je les aient déjà eu dans divers FPS.

----------


## Nelfe

> Sylvine : Ce que tu recherches se nomme ARMA


Sauf que dans ARMA, tu ne peux pas entrer partout  :;):

----------


## KiwiX

> Sylvine : Ce que tu recherches se nomme ARMA


Il veut peut-être éviter les bugs  ::ninja::

----------


## Erkin_

> Sauf que dans ARMA, tu ne peux pas entrer partout


Je répond au fait d'être au milieu d'une ville et de ne pas savoir d'où peut venir la mort alors qu'il y a 3000 points où se cacher.
Il n'y a pas besoin de fenêtres pour ça  ::): 

Mais comme je disais :



> Mais j'ai largement tendance à penser que pour ce genre de chose, la qualité prime sur la quantité.


Je préfère une map 20 fois plus petite, au level design très travaillé et qui permet de façonner le gameplay.
Et je ne parles même pas du côté artistique.

----------


## Zaraf

Je rêve d'un jeu solo comme ça, avec une I.A qui gère.

Mais comme dit au-dessus il faudrait que les algos qui génèrent l'architecture des niveaux, les modèles, les textures, etc.. soient suffisamment puissants pour restituer des niveaux avec une certaine identité, tout en restant cohérents. Sinon ça risque d'être un peu trop vite répétitif.

----------


## Sylvine

> Le problème du procedural, c'est que tout fini par se ressembler et se répéter à l'infini (c'est le principe même de la chose) il n'y a donc rien de personnel, en revanche, ça peut être utile pour des environnements ouvert genre pour des MMO ou autre RPG, ou autre


Ba après rien n'empêche de travailler quelques points clé "à la main".




> Je répond au fait d'être au milieu d'une ville et de ne pas savoir d'où peut venir la mort alors qu'il y a 3000 points où se cacher.
> Il n'y a pas besoin de fenêtres pour ça


Non, j'ai déjà joué à Arma c'est pas comparable.
GTA IV non plus.
Dans les 2 jeux, en ville, c'est presque comme si on jouait à un jeu en 2D, le danger vient très rarement d'en haut (sauf les hélicos évidemment) vu que 99% des bâtiments ne sont pas visitables.

----------


## Jean Pale

> Non, j'ai déjà joué à Arma c'est pas comparable.
> ... en ville, c'est presque comme si on jouait à un jeu en 2D, le danger vient très rarement d'en haut *vu que 99% des bâtiments ne sont pas visitables*.


Ca dépend des maps ça.

----------


## Sylvine

> Ca dépend des maps ça.


Ah, après peut-être que des maps amateurs ont poussé le concept, mais même, je doute que ça aille aussi loin que dans la vidéo.

----------


## Jean Pale

> Ah, après peut-être que des maps amateurs ont poussé le concept, mais même, je doute que ça aille aussi loin que dans la vidéo.


Avec ton système tu ne peux pas péter les murs extérieurs, dans ArmA si.  :Cigare:  Et justement, sur As Samawah (la map de VBS2 lite que l'on trouvera bien un jour sur ArmA) c'est pire que ton truc le coup de la flippe lors d'un passage en ville.

----------


## ducon

> Je suis en train de m'imaginer un BF-like


Black flag ? BrainFuck ? Burkina Faso ?

----------


## Erkin_

> Dans les 2 jeux, en ville, c'est presque comme si on jouait à un jeu en 2D, le danger vient très rarement d'en haut (sauf les hélicos évidemment) vu que 99% des bâtiments ne sont pas visitables.


Il n'est pas rare de pouvoir te mettre en hauteur et puis de toute façon ça ne change rien à la sensation d'être ultra vulnérable, et de savoir qu'il y a des tonnes de positions qui permettaient de te canarder.

Ce que je veux dire, c'est que pour ce genre de truc, ça existe déjà et il n'y a pas besoin de la génération procédurale.
A mon sens, ce système est utile uniquement si tu veux faire des maps infanterie très grandes pour du bf like , et donc te tourner vers du MMO FPS.

----------


## mrFish

Il n'y a pas vraiment de quoi s'extasier devant cette vidéo.
Le procédural c'est tiré un trait sur tout le level-design d'un jeu, c'est une partie importante de celui ci. Et si c'est pour après revenir dessus pour traiter certaines zones d'intérêts, ça ne sert à rien d'utiliser du procédural alors.

Ah et puis super leur bâtiments en polystyrène. Dans la démo ils explosent même les murs porteurs. Mais jamais les sols. C'est suspect.

----------


## Dark Fread

Un truc m'intrigue. La ville est généré au fur et à mesure de la progression du joueur... Imaginons qu'on avance à l'infini sans rien détruire. A mon avis, quatre hypothèses : 
-ou le système crash (saturation de la mémoire)
-ou le système impose une limite sur la map. Le joueur ne peut pas aller plus loin, et la génération d'autres aires st gelée (si on a marché en ligne droite, on se retrouve avec une ville complètement rectiligne)
-ou la portion de ville déjà générée n'est pas mise en mémoire (autrement dit, je spawn, je repère les immeubles, j'avance de 500m, je reviens sur mes pas, les immeubles sont différents)
-ou, si vraiment l'intégralité du jeu est en procédural, on peut tout connement stocker des coordonnées quelques part, ça ne prend aucune place ou presque et on établit une "map" de la ville générée. Seule une aire autour du jouer est générée, et suivant sa position, on crée une nouvelle portion ou on en "régénère" une ancienne grâce à la map

Sinon ouais, j'ai vu aussi que les sols ne sont pas destructibles. Clairement, tout n'est pas totalement destructible car il faudrait gérer des effondrements. Pour les balles qui explosent un mur, c'est une démo technologique, pas un jeu...

----------


## Jean Pale

> Dans la démo ils explosent même les murs porteurs. Mais jamais les sols. C'est suspect.


Les sols/plafonds et les murs extérieurs sont indestructibles.

----------


## Sk-flown

Le problème c'est que a cause de "certains" le gamplay est horizontal, alors ton idée de sniper au 10eme étage ça vaut que pour un jeu totalement PC.

----------


## Dorak

Pour un GTA-LIKE le procédural reste fantastique.

----------


## Dark Fread

Sk -> C'est vrai qu'avec un pad, on a vachement plus de mal à bouger la vue en vertical qu'en horizontal.  :tired:

----------


## Nyuu

> -ou, si vraiment l'intégralité du jeu est en procédural, on peut tout connement stocker des coordonnées quelques part, ça ne prend aucune place ou presque et on établit une "map" de la ville générée. Seule une aire autour du jouer est générée, et suivant sa position, on crée une nouvelle portion ou on en "régénère" une ancienne grâce à la map


Ca a l'air d'être le système 'Collision' dont ils parlent, tu ne génères que les Pixels dont tu as besoin, le reste étant stocké dans une base de données.

Me semble que WoW fonctionne exactement comme ça, donc rien de révolutionnaire en fait.

----------


## theo_le_zombie

Trouve un systeme similaire pour générer des PNJ aléatoires par milliers , et on refait un remake de Gangster qui petera les chevilles de toute la planete ! 
 :Bave:

----------


## Maalak

Un topic sur l'apport du procédural a déjà été créé ici à propos d'Infinity.

Après, quant à l'adapter à un fps, je suis moins certain de l'intérêt, car celui-ci réside normalement surtout dans le fait que l'on soit certain de rencontrer des adversaires. Si il s'agit de se balader deux heures dans un monde infini pour enfin rencontrer quelqu'un susceptible de nous tirer dessus, ça risque de ne pas faire trop long feu comme concept ...

----------


## Agathia

Bah on peut limiter la taille de la map hein...

Hormis la question du level design qui est sacrément importante, imaginer jouer sur une map inconnue à chaque fois qu'une partie se lance (en multi) c'est quand même terrible!

----------


## Darkath

Mais c'est quoi cette bande d'aigri ? On vous présente une ville entièrement ouverte et entièrement destructible, ouvrant des possibilités énormes pour n'importe quel jeu, et tout ce que vous trouvez a dire c'est "c'est nul", "paye tes murs en polystyrènes" etc..

Non seulement l'intérêt est que tu peux avoir des villes randoms et tout de même assez crédible a l'infini, avec 0 temps de developpement (y'avait qu'a voir la génération procédural d'une ville de Subversion (par les dev de multiwinia, darwinia etc.), au final la forme de la ville n'a rien de banal ni générique :

par ex



Mais aussi tu peux le faire tourner leur moteur sur n'importe quel machine genre un portable vu que ça prend quasiment aucune ressource .. Mieux toutes les ressources sauvée par la technologie procédurale, tu peux les allouées sur des meilleurs graphismes (modèles textures effets etc.) 

Au final ça nous permettrai d'avoir des jeux beaux funs ouvert ou on peut tout détruire.

Moi je dit oui




> Un truc m'intrigue. La ville est généré au fur et à mesure de la progression du joueur... Imaginons qu'on avance à l'infini sans rien détruire. A mon avis, quatre hypothèses :


C'est pas tout a fait exact, dans un moteur procédural, tu rentre un certains nombres de variables/paramètres pour générer ce que tu veux faire, ces paramètres ont les appelle la "seed" (graine), c'est le même principe que pour Dwarf Fortress par exemple. Une seed correspondra toujours au même résultat, mais il suffit de changer une variable pour avoir quelque chose de totalement différent. 
Donc quand ils disent que la ville est générée au fur et a mesure, ça ne veut pas dire que c'est infini, c'est toujours la même ville d'une taille fixe, mais par contre du point de vue de ton ordinateur ça lui évite d'avoir tout a calculer d'un coup.

----------


## Sylvine

> Après, quant à l'adapter à un fps, je suis moins certain de l'intérêt, car celui-ci réside normalement surtout dans le fait que l'on soit certain de rencontrer des adversaires. Si il s'agit de se balader deux heures dans un monde infini pour enfin rencontrer quelqu'un susceptible de nous tirer dessus, ça risque de ne pas faire trop long feu comme concept ...


C'est pour ça que Dieu dans sa grande mansuétude à inventé les objectifs, qui permettent de canaliser l'attention.

----------


## Sk-flown

> Sk -> C'est vrai qu'avec un pad, on a vachement plus de mal à bouger la vue en vertical qu'en horizontal.


Je ne fais que reporter ce qu'un développeur disait, mais si tu regardes des vidéos de FPS sur consoles les mecs balayent en permanence gauche droite pour compenser le manque de réactivité, j'imagine que ça du être analysé, parce que maintenant quasiment tous les FPS manquent de verticalité.

----------


## lincruste

Combiné avec le Procedural City Generator d'Introversion et le système de passants de GTAIV, ça pourrait être le générateur ultime de planètes peuplées pour un Elite. Avec des lunettes LCD, un paquet de chips et du coca à portée de main, plus besoin de sortir.

----------


## Okxyd

Ça a l'air quand même génial comme concept, et ça peut donne lieu à un premier vrai MMO de shoot, par contre faut voir si ça peut générer un level design crédible (une ville totalement uniforme dans son ambiance c'est boof quand même).

Après partons du fait que un jeu utilisant cette technologie soit online. Quid d'un serveur ? Car si la ville se génére au fur est à mesure d'un joueur il faut quand même que la map soit hébergée en permanence non  ::huh:: ?

----------


## Sylvine

> Ça a l'air quand même génial comme concept, et ça peut donne lieu à un premier vrai MMO de shoot, par contre faut voir si ça peut générer un level design crédible (une ville totalement uniforme dans son ambiance c'est boof quand même).
> 
> Après partons du fait que un jeu utilisant cette technologie soit online. Quid d'un serveur ? Car si la ville se génére au fur est à mesure d'un joueur il faut quand même que la map soit hébergée en permanence non ?


Ba je pense qu'au final on doit pouvoir se servir de la technologie comme d'un "simple" générateur de map.
La carte est crée une fois grâce à la génération procédurale, on l'enregistre et après c'est comme n'importe quelle map.
Au final ça permet surtout de faire des villes immenses sans avoir besoin d'avoir un level designer qui a posé la moindre chaise à la main.

----------


## Tiax

En grand optimiste, j'y crois à mort et je me réjouis de voir ce que ça donnera dans le futur.

J'doute fort que ça finisse par remplacer du bon vieux level-design à la mano, mais y'a du potentiel pour en faire une alternative forte.

----------


## Euklif

J'me suis pas renseigné plus avant mais il me semble qu'il est précisé sur la vidéo que ça tourne avec physix only... Donc ma question : quid d'ATI?

----------


## Say hello

T'a pas bien lu, c'est écrit "PhysX middleware", ça joue sur les librairie et le niveau de moteur de manière à ne pas demander de support hardware particulier sans pour autant avoir le rendu maximal.

La physique est géré par PhysX mais de ce fait on voir des morceau très grossier quand il découpe du mur.

----------


## Sylvine

> J'me suis pas renseigné plus avant mais il me semble qu'il est précisé sur la vidéo que ça tourne avec physix only... Donc ma question : quid d'ATI?


Ca concerne que la destruction.
De plus c'est juste un prototype, donc pour le moment que ça tourne que sur les Nvidia ou les ZX Spectrum ça change pas grand chose.

Si ils devaient en faire un gros jeu commercial (et pas une simple démo technologique vaguement maquillée en FPS comme on avait eu aux débuts de PhysX), il parait évident qu'ils trouveraient un moyen de faire tourner ça sur ATI aussi.

----------


## cailloux

> Un truc m'intrigue. La ville est généré au fur et à mesure de la progression du joueur... Imaginons qu'on avance à l'infini sans rien détruire. A mon avis, quatre hypothèses : 
> -ou le système crash (saturation de la mémoire)
> -ou le système impose une limite sur la map. Le joueur ne peut pas aller plus loin, et la génération d'autres aires st gelée (si on a marché en ligne droite, on se retrouve avec une ville complètement rectiligne)
> -ou la portion de ville déjà générée n'est pas mise en mémoire (autrement dit, je spawn, je repère les immeubles, j'avance de 500m, je reviens sur mes pas, les immeubles sont différents)
> -ou, si vraiment l'intégralité du jeu est en procédural, on peut tout connement stocker des coordonnées quelques part, ça ne prend aucune place ou presque et on établit une "map" de la ville générée. Seule une aire autour du jouer est générée, et suivant sa position, on crée une nouvelle portion ou on en "régénère" une ancienne grâce à la map
> 
> Sinon ouais, j'ai vu aussi que les sols ne sont pas destructibles. Clairement, tout n'est pas totalement destructible car il faudrait gérer des effondrements. Pour les balles qui explosent un mur, c'est une démo technologique, pas un jeu...


non, procédural ça veut juste dire : créé par le calcul  via des données fixes.

En gros une fois les paramètres de ta ville remplis (exemple : pourcentage de route, taille des immeubles, nombres d'étages moyens, pourcentage de variations sur tout les paramètres), l'ordi calcule une ville, mais si on refait le calcul avec les mêmes paramêtres ce sera exactement la même ville qui sera créé. Du coup tout est déjà en place, c'est juste que le PC calcule les endroits qui seront a afficher, regarde le calcul et fais le lien entre : ta position sur le terrain et les données en mémoire.

Par contre les destructions sont un peu différente.

Je pense que c'est ta dernière hypothèse qui est la bonne, sauf qu'il n'y a pas besoin de map : suffit de recalculer le bousin...

----------


## Dark Fread

> [explications]


Hum, tout n'est pas généré en temps réel en fait... Simplement, un code donné génère un ville. 
Mais du coup, "ça tourne sur n'importe quel laptop", c'est de la blague ?  :tired:  On pourrait générer Crysis de cette façon, il ne pèserait peut-être pas 5 gigas* mais le rendu final serait aussi gourmand que du non-procédural...

Edit : *bah, quoique, si...  ::blink::

----------


## hisvin

> Hum, tout n'est pas généré en temps réel en fait... Simplement, un code donné génère un ville. 
> Mais du coup, "ça tourne sur n'importe quel laptop", c'est de la blague ?  On pourrait générer Crysis de cette façon, il ne pèserait peut-être pas 5 gigas* mais le rendu final serait aussi gourmand que du non-procédural...
> 
> Edit : *bah, quoique, si...


Tout à fait...  :;):

----------


## JeP

Moi le procédural, ça me fait banday.

Quelques bandes démos d'un studio qui fait des textures procédurales : http://www.allegorithmic.com/?PAGE=GALLERY.demos

----------


## Darkath

> Hum, tout n'est pas généré en temps réel en fait... Simplement, un code donné génère un ville. 
> Mais du coup, "ça tourne sur n'importe quel laptop", c'est de la blague ?  On pourrait générer Crysis de cette façon, il ne pèserait peut-être pas 5 gigas* mais le rendu final serait aussi gourmand que du non-procédural...
> 
> Edit : *bah, quoique, si...


Nan ce serait impossible a faire, vu que faut que tes algorithmes qui génère les niveaux donne au détail près le niveau de crisis. Donc non seulement faudrait que les developpeurs se cassent le cul a faire les niveaux a la main, et après qu'il fassent des algorithmes qui te donne l'exact même résultat .... = impossible à un tel niveau de complexité.

----------


## Tiax

C'est envisageable un mix entre procédural et level-design à la main, du style une ville à la GTA faites à la main, mais dont tous les intérieurs de building secondaires sont générés de manière procédurale?

----------


## Euklif

> T'a pas bien lu, c'est écrit "PhysX middleware", ça joue sur les librairie et le niveau de moteur de manière à ne pas demander de support hardware particulier sans pour autant avoir le rendu maximal.
> 
> La physique est géré par PhysX mais de ce fait on voir des morceau très grossier quand il découpe du mur.


Au temps pour moi. Merci pour la précision.

----------


## cailloux

> Nan ce serait impossible a faire, vu que faut que tes algorithmes qui génère les niveaux donne au détail près le niveau de crisis. Donc non seulement faudrait que les developpeurs se cassent le cul a faire les niveaux a la main, et après qu'il fassent des algorithmes qui te donne l'exact même résultat .... = impossible à un tel niveau de complexité.


Bien sûr que si, suffit de rentrer des paramètres genre : densité de végétation, type de végétation, terrain etc : cf le plugins pour 3Dsmax pour créer et animer de la végétation( en fait y'en a plein en voici un  Bon dans ce cas c'est plus de la répartition de modèles déjà fais mais il existe des générateurs, mais j'ai plus le titre)) Par contre comme c'est aléatoire c'est plus difficiel à scénariser.

Par contre on peut bien imaginer une génération aléatoire du terrain, puis des retouches à la main pour coller au scénario comme le suggère *Tiax*

*Jep* : l'intérêt d'une texture procédurale, à mes yeux, serait qu'elle peut évoluer en court de partie. Par exemple une texture type : "boue séché craquelé" pourrait perdre ces craquelures et changer de couleur si on la mouille, le tout très facilement et de manière fluide.

De toute manière le procédural n'a d'intérêt que dans la génération du terrain au fûr et à mesure, je veux dire par là que c'est au processeur de calculer tout ça en fonction des besoins = moins de problème de stockage avec pour corolaire une "déscénarisation" de l'ensemble. Ou alors pour servir de matériaux de base à la construction d'une histoire.

Notez que Elderscroll Arena/daggerfall utilise depuis 15 ans ce genre de système pour les quêtes : certes c'est basique, mais rien n'empêche de le complexifier un peu (et même beaucoup).

Tiens je sens que je vais aller faire un tour dans le topic des jeux dont vous rêvez !

Un jeu totalement procédural permettrait l'infiniment rejouable.

----------


## Dark Adrien

Hello

Ok ça fait longtemps que je n'ai pas remis les mains sur Dwarf Fortress, mais ce jeu utilise déjà la génération procédurale. En début de partie, un monde est généré avec des paramètres "simples" : densité d'arbres, types d'environnement (désert, forêt...), placement de gisements, de cours d'eau...

Bon, certes le tout en ASCII, mais on obtient au final un monde "fictif" cohérent vu du ciel : http://bay12games.com/dwarves/screens/world_map1.PNG

Cela rajoute un degré de surprise et de rejouabilité impressionnant. :B): 

Par contre, difficile d'imaginer appliquer cette technique à des jeux très scénarisés, très scriptés. Et autre limite : le temps et la puissance nécessaire pour "générer". Dans Dwarf Fortress, la génération d'une map prend plusieurs minutes. ::o:

----------


## JeP

> *Jep* : l'intérêt d'une texture procédurale, à mes yeux, serait qu'elle peut évoluer en court de partie. Par exemple une texture type : "boue séché craquelé" pourrait perdre ces craquelures et changer de couleur si on la mouille, le tout très facilement et de manière fluide.


T'as ça, mais t'as aussi un méga gain de place pour des textures qui peuvent avoir une très bonne définition et n'avoir aucun effet de répétition, ce qui n'est pas négligeable.

Les vidéos dans la salle de bain montrent justement une dégradation des lieux.

----------


## Darkath

> Bien sûr que si, suffit de rentrer des paramètres genre : densité de végétation, type de végétation, terrain etc : cf le plugins pour 3Dsmax pour créer et animer de la végétation( en fait y'en a plein en voici un  Bon dans ce cas c'est plus de la répartition de modèles déjà fais mais il existe des générateurs, mais j'ai plus le titre)) Par contre comme c'est aléatoire c'est plus difficiel à scénariser.
> 
> Par contre on peut bien imaginer une génération aléatoire du terrain, puis des retouches à la main pour coller au scénario comme le suggère *Tiax*
> [/URL]



Je ce que disait c'était pas en terme de végetation ou quoi, c'est juste que faire un jeu fait "à la main" basé sur du level design à l'arbre près, c'est impossible de reproduire la même chose en full procédural avec un client qui pèse 5Mo

----------


## JeP

Heu, oui mais à un moment, ça sert à quoi d'utiliser du procédurale si on veut un résultat précis ?

----------


## Darkath

> Heu, oui mais à un moment, ça sert à quoi d'utiliser du procédurale si on veut un résultat précis ?


C'était juste pour répondre à la question "ben oui mais on a qu'a faire Crysis en procédural comme ça ça fera quelque Mo et ça tournera sur toutes les machines)  :;):

----------


## JeP

Les arbres et les cailloux (à part les gros rochers servant au level design), c'est pas en les mettant d'une certaine manière ou bien au pif que ça va changer grand chose, donc les mettre en procédural, je vois pas le soucis. Après, le level design est pas si ouvert que ça, non plus, donc c'est sûr que c'est pas complètement possible.

----------


## cailloux

> T'as ça, mais t'as aussi un méga gain de place pour des textures qui peuvent avoir une très bonne définition et n'avoir aucun effet de répétition, ce qui n'est pas négligeable.
> 
> Les vidéos dans la salle de bain montrent justement une dégradation des lieux.


VOuaip j'avais oublié de visionner l'anim de la salle de bain, c'est clairement le plus intéressant pour moi.

Mais c'est vrai aussi qu'une texture procédurale n'a même pas de définition puisqu'elle est calculé, du coup on peut faire un zoom de l'espace jusqu'au grain de sable, sans aucun soucis de calcul ni d'affichage.

----------


## JeP

Après faut que les dèvs aient conçu la texture procédurale pour que ce soit intéressant, parce que si ça part en bête fractale sans signification, merci  ::P:

----------


## cepcam

C'est quand même pas mal le procédural. En plus, en pratique, ca laisse quand meme la main aux level designer parce qu'ils peuvent définir les heigtmaps, les densites de population, les types de batiments...
Puis le moteur génère une ville cohérente genre avec des zones commerciales, des zones d'habitation, d'autres ouvertes.
Ca plus des algos de passants types "boids" qui donnent un comportment de foules cohérents (sans pour autant en faire des PNJ...)

Il y a la société procédural
http://www.procedural.com/

qui fait un truc vachement bien la dessus, leur moteur est accessible en version d'essai 30 jours ET les cartes générées sont exportables sous l'UDK, c'est assez bluffant et marrant de voir comment on peut générer des villes ressemblant a Paris en 2 coups de parametres (bon, y a pas encore les interieurs mais je pense qu'ils y viendront)

Pour ceux que ca interesse, y  a la these dispo ici :
http://citeseerx.ist.psu.edu/viewdoc...=rep1&type=pdf

depuis que je l'ai lu, je reve d'un jeu de zombies la dedans, avec panique de foules et les epiceries de la ville qui se vident au fur et a mesure...

----------


## Klonk

Et les sons procéduraux ?

L'idée était dans un premier temps de jouer une partition midi avec des sons générés. Donc taille de la musique quasi nulle dans le jeu. Je sais qu'aujourd'hui, distribuer 200mo de mp3 ne fait peur à personne, mais avec un système comme ça, on pourrait retrouver les bénéfices des anciens soundtrackers. A savoir, coordination des pistes et de l'action dans le jeu (c'était très utilisé dans les démos).
La qualité serait également au rendez-vous (avec les bons algos), puisqu'il n'y aurait plus la perte de dynamique avec l'écrasement des fréquences de la compression mpeg

Pour les sceptiques, une intro 64Ko, avec beaucoup de choses générées, y compris les instruments de la musique:

http://www.youtube.com/watch?v=svGk_pF67gc

La musique a été écrite avec un synthé et récupérée en midi. Les sons sont générés, avec quelques samples non générés mais qui prennent une taille ridicule (les voix qu'on entend à 8khz, à tout casser).
Le son est synchronisé sur certaines transitions, bien sûr ils auraient pu enchainer les mp3, mais c'eût été moins pratique.
Pour ceux qui aiment le procédural, les intros et démos de Farbrausch sont à voir. Ils ont diffusé il y a quelques années un kit utilisable à la souris pour générer des intros semblables aux leurs.
(et sinon, ne manquez pas "debris": http://www.youtube.com/watch?v=wqu_IpkOYBg )

Dans un second temps, on pourrait imaginer une partition synthétisée. Il me semble que Microsoft avait fait des essais là dessus avec DirectMusic. On trouve aussi un genre de "partition dynamique" dans certains jeux, dont les vieux Lucas Arts me semble t-il.

Mais avant d'en arriver là, il faudrait déja commencer par synthétiser des sons intéressants.
Donc je cherche des infos là-dessus, pour aller au dela des drings-drings et autres pianos metalliques que j'ai synthétisé jusqu'à présent.
La synthèse FM est assez simple à rendre, mais les sons ne sont pas terribles (peut être pour faire une ambiance années 80, mais sinon ...). Ca donne des sons assez "brillants" (je ne sais pas comment le dire, mais toute personne ayant approché un dx7 saura de quoi je parle). Et je crois que c'est sous copyright de Yamaha, donc on ne peut surement pas s'amuser à réimplémenter les algos pour un produit commercial.

Il y a également des libs, peut être DirectMusic (j'ai quitté le monde Microsoft il y a un moment, je ne sais pas si ça existe encore et de toutes façons, ça ne sera pas portable). Il y a également csound qui est (était ?) très utilisé dans la recherche sur le son.
Pour ceux que ça intéresse:
http://www.csounds.com/chapter1/french/

J'attends vos commentaires, en espérant que le sujet intéresse quelqu'un. J' ai hésité à parler de synthèse sonore, vu que ce thread était focalisé sur le graphisme, mais après tout, on parle bien de "génération procédurale" et ce n'est pas exclusif.

----------


## Oropher

Perso j'ai un peu de mal avec la notion de génération de textures/sons procéduraux. 
Le résultat est quand même celui attendu, pour moi une génération procédurale est censée te surprendre à chaque fois, c'est pour ça que j'vois pas comment les démos du site allegorithmic donné plus haut utilisent des textures procédurales. Le seul avantage que je vois c'est un gain de place énorme, mais je comprend pas comment on peut qualifier de "procédurale" leur technique. Si quelqu'un peut m'éclaircir sur le sujet... ^^
De même pour les sons, la technique que tu décris Klonk, à moins que je n'aie rien pigé (c'est possible hein), c'est juste de la simulation sur des notes MIDI, en gros c'est du VST random. Le défi serait de pouvoir rendre des sons qui sonnent comme de vrais instruments c'est ça? Dans ce cas, je pense pas que ce soit possible. Les sons 8bit et synthétiques sont possibles à rendre, puisqu'ils sont créés electroniquement, mais rendre un son de guitare par exemple, il y aurait trop de facteurs en jeu, et ce n'est pas pour rien que les VST qui proposent ce genre de simulation se basent sur des enregistrements réels à mon avis.
Mais pour moi c'est pas du procédural non plus, puisque la musique suivra la partition. Justement en sons procéduraux, ce serait elle qui changerait, et là on a alors affaire à une étude de la théorie musicale très interessante pour que ça ne fasse pas n'importe quoi (quelles notes devrais-je jouer pour donner un ton oriental à la musique? Quels accords s'enchainent sans qu'ils ne cassent pas l'harmonie de la chanson, etc...). Je trouve que l'outil développé par les mecs d'introversion va dans ce sens, avec une musique qui change selon le contexte et les actions du joueur : http://forums.introversion.co.uk/int...pic.php?t=2490 (la vidéo est en bas du premier post, mais je vous conseille de lire, c'est très intéressant!) Ca reste un espèce de séquenceur auxquel on rajoute ou on module les pistes à volonté en se calquant sur le jeu (donc ya pas de hasard), mais c'est déjà pas mal je trouve.

----------


## Klonk

"Procédural", je pense que c'est un anglicisme. En français, nous dirions plutôt "algorithmique".
Donc la notion d'originalité ne rentre pas en compte dans la génération algorithmique. Tu peux aussi bien rendre une texture avec le contenu de ta ram ou une capture de l'entrée micro de ta carte son, ou encore de la génération simple comme du Perlin noise pour simuler des nuages. Ça ne sera pas forcément très beau, mais ça sera généré  ::): 

Sinon pour les instruments, ce n'est pas du VST. La musique sera complètement décrochée du midi une fois composé (mais on utilise le midi pendant la phase de composition, pour profiter des sequencers existants).
Le but est justement d'éviter de se trimballer une banque de sons échantillonés sur laquelle on plaquerait des effets, ou qu'on jouerait à différentes fréquences pour obtenir les notes de la gamme.

Effectivement les sons à corde sont très difficiles à générer.
Pour la partition, je pense qu'utiliser des patterns (ce que tu décris) est le plus simple. La même mélodie jouée avec des accordages différents donne des résultats typés géographiquement (oriental, etc…). Je crois que les musiciens appellent ça des "modes" (à confirmer).

----------


## ElGato

La génération procédurale de son ça marche effectivement très bien, et ça couvre plein de domaines, sans forcément passer par MIDI :
- la composition automatique (créer une mélodie)
- l'harmonisation (créer les accords sur une mélodie donnée)
- créer des sons instrumentaux par des algos (exemple pour les cordes, ça se génère très bien)
- en fait n'importe quel son, y'a que pour les destructions d'objets et la flotte qu'on sait pas trop comment faire sans que ça prenne des heures de calcul.

Le gros machin vraiment impossible à l'heure actuelle, c'est de faire de la voix correcte.

----------


## war-p

Juste une petite question, lors de la génération d'une ville entière, on fait comment pour stocker rien que les textures, par exemple, dans la mémoire sans avoir à les recalculer à chaque fois?

----------


## L-F. Sébum

> Le gros machin vraiment impossible à l'heure actuelle, c'est de faire de la voix correcte.


On n'en est pas si loin que ça, la preuve.

----------


## ElGato

Je suis impressionné : ça gère même l'intonation (quand on met un ? en fin de phrase)

Par contre ça n'est pas réellement de la synthèse, c'est de la concaténation, avec des bouts assemblés. Donc faut quand même une base de données monstrueuse de diphones...je pense que pour le français il en faut au minimum un bon millier, et beaucoup plus pour avoir un rendu pareil.

----------


## cailloux

> Juste une petite question, lors de la génération d'une ville entière, on fait comment pour stocker rien que les textures, par exemple, dans la mémoire sans avoir à les recalculer à chaque fois?


Bein  justement, le principe des textures procédurales c'est qu'elles sont calculés en permanence, non ? (comme ça tu peux zoomer dessus sans pixeliser ou les transformer en temps réel)

Celà dit je peux bien imaginer que par soucis d'économie de calcul processeur on les stocke quelque part, mais on perd du même moment des avantages du système.

----------


## Oropher

> La génération procédurale de son ça marche effectivement très bien, et ça couvre plein de domaines, sans forcément passer par MIDI :
> - la composition automatique (créer une mélodie)
> - l'harmonisation (créer les accords sur une mélodie donnée)
> - créer des sons instrumentaux par des algos (exemple pour les cordes, ça se génère très bien)
> - en fait n'importe quel son, y'a que pour les destructions d'objets et la flotte qu'on sait pas trop comment faire sans que ça prenne des heures de calcul.
> 
> Le gros machin vraiment impossible à l'heure actuelle, c'est de faire de la voix correcte.



Wo putain l'algorithme de Karplus Strong est énorme  ::o: 
Je savais absolument pas que ça existait ce genre de trucs, c'est génial, c'est ma découverte du jour ^^

Et merci Klonk pour les explications, c'est vrai qu'"algorithmique" ca me parle déjà mieux, donc oui je vois pour les textures et les sons aussi maintenant ^^

----------


## Tylers

Impressionant la synthèse vocale, bluffant.

----------


## war-p

> Bein  justement, le principe des textures procédurales c'est qu'elles sont calculés en permanence, non ? (comme ça tu peux zoomer dessus sans pixeliser ou les transformer en temps réel)
> 
> Celà dit je peux bien imaginer que par soucis d'économie de calcul processeur on les stocke quelque part, mais on perd du même moment des avantages du système.


Ouais, mais t'imagine la masse de calcul pour le processeur? En plus dans ce cas là t'a même plus besoin de carte graphique, ce qui limite la puissance de calcul, ou alors faut tout faire calculer par la carte graphique genre GPGPU?

----------


## cailloux

> Ouais, mais t'imagine la masse de calcul pour le processeur? En plus dans ce cas là t'a même plus besoin de carte graphique, ce qui limite la puissance de calcul, ou alors faut tout faire calculer par la carte graphique genre GPGPU?


Sauf que toutes les textures ne sont pas calculés en même temps ce qui limite le calcul. Ensuite en effet on peut faire faire les calculs par le GPU.

(Enfin je dis ça comme ça, je n'ai aucune compétence technique pour ça)

Exemple d'application.

----------


## Klonk

Vous connaissez ?

http://fractgame.com/

La génération poussée à l'absurde (ou l'art ultime, selon que vous lisez CanardPC ou Chronic'art).

Ca m'a fait penser à un jeu qu'aurait pu produire Cryo à la grande époque de la French (se)Touch(e).

Celà dit, c'est mignon

----------

