回答:
おそらく、少し理論と中点変位アルゴリズムなどの単純な例から始める必要があります。グラフィックの生成に興味がある場合は、Perlin Noiseについても少し学ぶ必要があります。これを使用して、手続き型生成の最終年度プロジェクトを開始しました。
フラクタルは、手続き型の生成と密接に関連しています。
TerragenとSpeedTreeは、手続き型生成の驚くべき可能性をいくつか示します。
手続き型の生成は、任意の言語で使用できる手法です(JavaなどのOO言語や、Prologなどの論理言語で使用できるため、Cなどの手続き型言語に限定されません)。任意の言語での再帰を十分に理解することで、手続き型生成の理解が深まります。
「深刻な」コードまたはゲーム以外のコードについては、手続き型の生成手法が次の目的で使用されています。
手続き型コンテンツの生成はすべてGPU用に記述されているため、シェーダー言語を理解する必要があります。それはGLSLまたはHLSLを意味します。これらはそれぞれOpenGLとDirectXに関連付けられた言語です。
私の好みはDx11 / HLSLですが、速度、習得しやすさ、Frank D Lunaのため、OpenGLはより多くのプラットフォームでサポートされています。
OpenGL / DirectXゲームエンジンのセットアップにかかる(かなりの)時間を費やすことなく、シェーダーの記述にすぐに飛び込む場合は、WebGLもチェックしてください。
手続き型コンテンツはノイズから始まります。
したがって、Perlinノイズ(およびその後継のSimplexノイズ)について学ぶ必要があります。
Shadertoyは、シェーダープログラミングについて学ぶための優れたリファレンスです。シェーダーコーディングを自分で試した後は、数学的に不快なコードはないので、ここにアクセスすることをお勧めします。
Shadertoyは、手順の天才であるInigo Quilezによって作成されました。これは、Pixarで働くデモシーンの産物です。彼はライブコーディングセッションのいくつかのyoutubeビデオ(良い例)を持っています、そして私はこれらをお勧めすることもできます。
ワールドジェネレーターのシミュレーションプレートの例として、テクトニクス、侵食、雨の影などが必要な場合は、https: //github.com/ftomassetti/landsをご覧ください。
その上に、文明進化シミュレーターもあります。
https://github.com/ftomassetti/civs
興味深いリソースが満載のブログは次のとおりです。
dungeonleague.com/
それは今放棄されましたが、すべての投稿を読む必要があります
私はこれについての専門家ではありませんが、いくつかの答えを試して貢献することができます。
NetHackとそれはbrethernはオープンソースであり、手続き型のレベル(マップ)の生成に大きく依存しています。それのダウンロードへのリンク。ランドスケープ/テクスチャ/クラウドの生成にもっと興味がある場合は、これらの主題に関するかなりの数の記事があるGamasutraとGameDevを検索することをお勧めします。
私の知る限り、言語間に大きな違いはないと思います。表示されるコードのほとんどは、ゲーム開発者の公式言語であるためC / CPPになりますが、好きなものを使用できます...
まあそれはあなたがそのような技術から利益を得ることができるプロジェクトがあるかどうかに依存します。軍のシミュレーターで手続き型生成が使用されているのを見ました(非常にプレイ可能ではありませんが、ゲームと見なすことができます:))。
そして小さなメモ-手続き的な生成が少量のルールまたはパターンと大量のランダム性から大量のデータを生成するものである場合の私の定義は、結果が異なる場合があります:)
トピックに関する優れた本があります:
http://www.amazon.com/Texturing-Modeling-Third-Procedural-Approach/dp/1558608486
それは非リアルタイムの視覚効果とアニメーション生成に偏っていますが、理論とアイデアはこれらの分野以外でも使用できると思います。
SideFXのHoudiniと呼ばれる完全な手続き型ワークフローを実装するプロフェッショナルソフトウェアパッケージがあることにも言及する価値があります。これを使用して、問題の手続き型ソリューションを発明し、プロトタイプ化して、後でコードに変換できます。
かなり高価なパッケージですが、無料の評価ライセンスがあり、非常に優れた教育および/またはエンジニアリングツールとして使用できます。
プロシージャル生成は、デモシーンで頻繁に使用され、小さな実行可能ファイルで複雑なグラフィックを作成します。ウィル・ライトは、胞子を作っている間、彼はデモシーンに触発されたとさえ言った。それはあなたが始めるのに最適な場所かもしれません。
最も重要なことは、道路、都市、ブロック、建物の構造を分析することです。すべての建物などに共通するものを見つけます。写真、地図、計画、現実を見てください。そうすれば、都市の建設を単なるコンピュータ技術の問題だと考える人々よりも一歩先を行くでしょう。
次に、そのジオメトリを小さな個別の手順で作成する方法に関するソリューションを開発する必要があります。信じられないほどの都市を構成するルールを定義する必要があります。3Dモデリングに慣れている場合は、コンピュータがあらゆる状況で指示に従うことができるように、学んだことの多くを再考する必要があります。
トラックを失わないようにするには、プロセス全体のほんの一部にしか責任を負わない多数のオペレーターをセットアップする必要があります。これにより、システムのデバッグ、拡張、改善がはるかに簡単になります。次のステップでは、それらの演算子をリンクし、パラメーターを変更して結果を確認する必要があります。
主にランダムな形のボックスで構成され、ウィンドウテクスチャがいくつかある「都市ジェネレータ」が多すぎます。
(10年以上後...)
手続き型の生成とは、手作りではなく、コードを使用してデータを生成することだけです。たとえば、さまざまなツリーを持つフォレストを生成する場合は、各ツリーを手動で設計することはないため、バリエーションを生成するためのコーディングの方が効率的です。それは木のグラフィック、サイズ、構造、配置の生成である可能性があります...
一般に、いくつかのルールとのある種の相互作用があります。それに加えて、独自のランダム性とロジックを追加し、これらのテクニックをすべて組み合わせることができます。
ここにいくつかの注目すべきテクニックがあります:
手続き型世代で有名ないくつかのゲーム:
手続き型ランドマス生成に関するビデオチュートリアル。
ゲームの手続き型コンテンツ生成に関する会議には、トピックに関する多くのビデオがあります:すべて手続き型
楽しんで。