159 votes

Comment démarrer avec la procédure de génération?

Procédure de génération a été mis en évidence récemment (par Spore, Mmo, etc), et il semble comme une intéressante/puissante technique de programmation.

Mes questions sont les suivantes:

  • Connaissez-vous des moyennes projets qui utilisent la procédure de génération de techniques?
  • Ce que la langue/de la classe de langues est le meilleur pour la procédure de génération?
  • Pouvez-vous utiliser la procédure de génération pour "sérieux" de code? (c'est à dire, pas un jeu)

127voto

Liam Points 5214

Vous devriez probablement commencer avec un peu de théorie et d'exemples simples tels que le milieu algorithme de déplacement. Vous devez également apprendre un peu plus sur le Bruit de Perlin si vous êtes intéressé à générer des graphiques. J'ai utilisé cela pour me faire avec mon dernier projet de l'année sur la procédure de génération.

Les fractales sont étroitement liées à la procédure de génération.

Terragen et SpeedTree va vous montrer quelques possibilités étonnantes de la procédure de génération.

Procédure de génération est une technique qui peut être utilisée dans n'importe quelle langue (ce n'est certainement pas limitée à la procédure de langages tels que C, car il peut être utilisé dans les langages à objets comme Java, et la Logique des langages tels que Prolog). Une bonne compréhension de la récursivité dans n'importe quelle langue permettra de renforcer votre compréhension de la Procédure de Génération.

Comme pour le "sérieux" ou de la non-code de jeu, de la procédure de génération de techniques ont été utilisées pour:

  • simuler la croissance des villes dans le but de planifier la gestion du trafic
  • pour simuler la croissance de vaisseaux sanguins
  • SpeedTree est utilisée dans des films et des présentations architecturales

52voto

Martin Points 4844

Procédure de Génération de Contenu wiki:

http://pcg.wikidot.com/

si ce que vous voulez n'est pas là, puis l'ajouter ;)

13voto

fishfood Points 928

Procédure de génération de contenu est maintenant écrit pour le GPU, donc vous aurez besoin de connaître un langage de shader. Cela signifie que GLSL ou HLSL. Ces langues sont liées à OpenGL et DirectX, respectivement.

Bien que ma préférence personnelle est de Dx11 / HLSL en raison de la vitesse, faciliter la courbe d'apprentissage et Frank d'Luna, OpenGL est pris en charge sur plusieurs plates-formes.

Vous devriez également vérifier WebGL si vous voulez sauter à droite dans l'écriture de shaders sans avoir à dépenser de l' (considérable) du temps qu'il faut pour l'installation d'un OpenGL / DirectX moteur de jeu.

Procédure de contenu commence par le bruit.

Ainsi, vous aurez besoin d'apprendre sur le bruit de Perlin (et de son successeur Simplex de bruit).

Shadertoy est une superbe référence pour l'apprentissage de shader de programmation. Je vous recommande de venir à elle une fois que vous avez donné shader codage d'un aller vous-même, en tant que le code n'est pas pour mathématiquement cœur bien accroché, mais c'est la façon de procédure contenu est fait.

Shadertoy a été créé par une procédure de génie, Inigo Quilez, un produit de la démo scène qui travaille chez Pixar. Il a des vidéos de youtube (bon exemple) de vivre de codage des séances et je peux aussi vous les recommande.

9voto

beemtee Points 111

Il y a un excellent livre sur le sujet:

http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486

Il est biaisé en faveur des non-visuelles en temps réel l'animation et des effets de génération, mais la théorie et les idées sont utilisable en dehors de ces domaines, je suppose.

Il peut également intéressant de mentionner qu'il est un professionnel de logiciel qui met en œuvre complète de procédure de workflow appelé SideFX de Houdini. Vous pouvez l'utiliser pour inventer et prototype de procédure des solutions à des problèmes, que vous pourrez ensuite le traduire en code.

Alors que c'est un peu cher paquet, il a une licence d'évaluation gratuite, qui peut être utilisé comme une très bonne éducation et/ou de l'outil d'ingénierie.

8voto

Mikle Points 673

Je ne suis pas un expert, mais je peux essayer et de contribuer quelques réponses:

  1. NetHack et frères en leur sont open source et dépendent fortement de la procédure de génération de niveaux (cartes). Lien pour les téléchargements. Si vous êtes plus intéressé dans le paysage/texture/la génération des nuages, je vous recommande de recherche Gamasutra et GameDev qui ont tout à fait quelques articles sur ces sujets.

  2. Autant que je sache, je ne pense pas qu'il y a beaucoup de différence entre les langues. La plupart du code que vous voyez sera en C/RPC parce que c'est encore très bien la langue officielle de la part des Développeurs du Jeu, mais vous pouvez utiliser tout ce que vous voulez...

  3. Eh bien cela dépend si vous avez un projet qui peut bénéficier de cette technologie. J'ai vu procédure de génération utilisé dans les simulateurs de l'armée de terre (ce qui peut être considéré comme un jeu, même si elles ne sont pas très jouable :)).

Et une petite note - ma définition si la procédure de génération est quelque chose de la génération d'un grand nombre de données à partir d'un petit nombre de règles ou des modèles et beaucoup de hasard, vos résultats peuvent varier :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X