問題タブ [procedural-generation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2582 参照

procedural-generation - ランタイム手続き型生成ワールドをチャンクに分割する方法

私は疑似無限の実行時プロシージャル生成ワールドを持つトップダウン 2D ゲームを作成することを考えていました。私は手続き型生成に関するいくつかの記事を読みましたが、おそらくそれらを読み間違えたり誤解したりしましたが、世界をチャンクに分割する方法を説明している記事にまだ出くわしていません(Minecraftが明らかにそうしているように)。

明らかに、プレイヤーが現在見ることができる世界の部分だけを生成する必要があります。たとえば、ゲームがタイルベースの場合、世界を n*n チャンクに分割できます。プレイヤーがそのようなチャンクの境界にいる場合、隣接するチャンクも生成します。

私が理解できないのは、手続き型の世界生成アルゴリズムをどのように正確に取得し、一度に 1 つのチャンクでのみ使用するかということです。たとえば、多くのチャンクにまたがる大きな構造物 (城、森、川など) を生成するアルゴリズムがある場合、1 つのチャンクのみを生成し、その後隣接するチャンクを生成するように調整するにはどうすればよいでしょうか?

明らかな何かを完全に見逃した場合はお詫び申し上げます。前もって感謝します!

0 投票する
1 に答える
330 参照

algorithm - このマルチスレッド手続き型生成アルゴリズムの潜在的な問題は何ですか?

これがゲーム デザインに関連していることは知っていますが、StackOverflow の FAQ を読んだところ、ソフトウェア アルゴリズムに関する質問をここで行うことができると記載されています。これがゲームデザインのほうが良い場合は、誰かがそれを動かすのを手伝ってくれることを願っています, ありがとう!

マルチスレッドの手続き型ダンジョンジェネレーターを設計しています。ただし、どのような問題に遭遇する可能性があるのか​​ 疑問に思っています.マルチスレッドを明確に示す多くのアルゴリズムを見つけることができませんでした.

作成する必要がある 3 つの異なるオブジェクトがあります。複数の「部屋」を収容する「世界」と、各部屋には潜在的な「オブジェクト」が収容されます。

現在のアルゴリズムは次のように機能します。

ワールドには、ルーム リストと「利用可能なオブジェクト リスト」があります。ルーム作成メソッドは、ルームを生成し、それらをワールドのルーム リストに追加します。-- オブジェクト作成プロシージャは、ルーム プロシージャとはまったく通信しません。むしろ、オブジェクト作成手順は、ワールドのルーム リストからランダムなルームを選択し、ルーム内にランダムなオブジェクトを生成します。

これに関する唯一の問題は、オブジェクトの作成手順が途中で終了する場合です。つまり、オブジェクト作成手順よりも後でルーム作成手順が終了したため、ルーム リスト内の一部のルームだけにオブジェクトが作成されます。

他に問題はありますか?また、そのようなアルゴリズムの開発に関するアドバイスや経験はありますか?

0 投票する
1 に答える
1881 参照

algorithm - ダイヤモンド二乗アルゴリズムを実装する方法は?

私はこれを読んでいました:http ://www.gameprogrammer.com/fractal.html#diamond

そしてそれは言う:

これは、2つのステップで構成される反復サブディビジョンルーチンの開始点です。

ダイヤモンドステップ: 4点の正方形を取り、2つの対角線が交わる正方形の中点でランダムな値を生成します。中間値は、4つのコーナー値とランダムな量を平均することによって計算されます。これにより、複数の正方形がグリッドに配置されている場合にひし形が得られます。

四角いステップ: 4点の各ひし形を取り、ひし形の中心にランダムな値を生成します。コーナー値に加えて、ダイヤモンドステップに使用されたのと同じ範囲で生成されたランダムな量を平均することにより、中点値を計算します。これはあなたに再び正方形を与えます。

わかりません。すべての正方形の中点をとると、どのようにしてダイヤモンドができますか?すべてのダイヤモンドの中点をとると、どのように正方形になりますか?

誰かがこれを行う方法について言語に依存しないコードを提供できますか?

編集:

ステップ1:グリッドがあり、四隅を均一な高さにします。

ステップ2:正方形の中点を取り、4つのコーナーすべての平均にランダムな値を加えたものに設定します。

それで?どこにもダイヤモンドが見えない

0 投票する
3 に答える
24492 参照

javascript - JavaScriptシンプレックス/パーリンノイズ

次のような結果が得られるJavaScriptでperlin/simplex/valueノイズ関数を作成しようとしています。

ここに画像の説明を入力してください (注:この画像にはすでにしきい値が適用されています。しきい値なしで表示したいのですが。)

私は今2日間インターネット全体を見ています。ノイズと多くのコードを説明するリンクはたくさんありますが、JavaScriptにはありません。変換しようとすると、奇妙な結果が得られます。これが私の試みのいくつかです:

問題の一部は、JavaScriptでのビット演算子の使用に起因している可能性があると思います。この場合、数値の型を強制することは困難です。

私が探しているのは、動作するJavaScriptノイズ(タイプに関係なく)の例です。

また、投稿した画像(しきい値の前)に類似したパターンにつながる可能性のあるパラメーターに関する情報や、可能な限り高速に実行する必要があるため、最適化のヒントについても報奨金を付与します(それにもかかわらず、JavaScriptでは)。

0 投票する
2 に答える
1866 参照

java - 大規模な宇宙を手続き的に生成する

テキストベースのゲームを作成しており、プロシージャル ワールド生成を実装しようとしています。

私の最初の計画は少しでたらめでした。各宇宙には、銀河や太陽系の 3D アレイがあり、ランダム化された天体が順番に伝播されます。実際のローカル エリアを個別に生成する予定でしたが、現在のタスクを完了できるかどうかはわかりません。

これらはすべて、後で読み取るためにデータファイルに書き出されます。

今見ると、たしかに(((ClassSize^3)^3)^3)バイト必要で、ClassSizeが4バイトでも格納できない。

配列の配列を使用する最初の目的は、クラスターを効率的にグループ化し、プレイヤーがユニバースのどこにいるかをより適切に特定できるようにすることでした。

私の質問は、どうすればこのような規模の世界をより効率的に生成できるでしょうか?

0 投票する
1 に答える
1691 参照

c# - C# XNA 生成 MIDI

C# XNA プログラムから MIDI のようなノートを再生したいと考えています。実際に MIDI ファイルを作成する必要はありません。ノートを開始および停止したり、特定の時間だけ再生したりできるだけです。

0 投票する
1 に答える
1660 参照

image-processing - HTML5 キャンバス: 回転パターン塗りつぶし

学習プロジェクトとして、HTML5 キャンバスを使用して、Tiny Wings から手続き的に生成された丘を再作成しようとしています。私の目標は、この写真の丘のようなテクスチャを生成することです。

小さな翼のスクリーンショット

これまでのところ、生成したシームレスな繰り返しテクスチャがあります。次のようになります。

手順イメージ 1

ご覧のとおり、これは途中ですが、Tiny Wings では、正弦波パターンが角度を付けて回転していることがよくあります。私の質問は次のとおりです。シームレスに繰り返されるパターンを取得して回転させ、それを長方形にクリップしても、シームレスに繰り返されるパターンを維持することは可能ですか?

私は当初、これは些細なことだと思っていました。元の寸法にクリップされた回転した繰り返しパターンは、まだ繰り返されます。しかし、調査の結果、そうではないことがわかりました。

私が説明していることが不可能な場合、生成した画像の回転バージョンを形状のパターン/塗りつぶしとして使用するにはどうすればよいですか? これまでのところ、私が考えることができる唯一の解決策は、キャンバス クリップ領域を使用することです。これを達成する他の方法はありますか?

関連する質問:

0 投票する
2 に答える
2424 参照

java - 手続き型マップの生成

私は本当にタイル ゲームを始めたいと思っています。Cocos2d を始めたのは、人気があり、チュートリアルとリソースが利用できるためです。しかし、手続き型マップの生成を実際に試してみたいのですが、Cocos2d が適しているかどうかはわかりません。

それに関して言えば、Cocos2dがこれに最適でない場合、私の他のオプションはJavaまたはLove2Dです。これはiOSではありませんが、まあまあです!

0 投票する
2 に答える
343 参照

algorithm - 惑星の3Dランダム化生成

プロジェクトでは、原点から全方向にランダムに生成される中心の「故郷」を中心に、3D空間で惑星を作成しています。

手続き型生成とパーリンノイズを見てきましたが、それらを適用できる適切な方法を見つけることができませんでしたが、あらゆる種類のランダム化された生成は初めてです。

原点を中心とした、できればシードに基づく3Dポイント生成のアルゴリズムの適切な開始点(同じシードが同じユニバースを作成するため)。

ありがとう!

0 投票する
1 に答える
328 参照

java - セル オートマトン データの配列を楽譜に変換する (WolframTones など)

わかりました。セル オートマトンのいくつかの基本原則を使用して、ルールから計算された一連のデータを生成するプログラムを実行することができました。各セルはブール値です。

現在、私はそれをそのまま保存しています-boolean [] []データ-最初のインデックスは行で、2番目はセルです。

これで、その音楽をスコア (配列として保存) に変換したいところまで来ました。このページには、CA データからどのように変換されるかを示す図が示されています。

ソース

データを採点する

目標

ストレージスキームを使用してプログラム的にこれを行う方法を理解するのに苦労しています。誰かがそれを助けてくれれば、必要に応じてより多くの情報を提供できます。