タグ付けされた質問 「algorithm」

アルゴリズムは、計算、データ処理、および自動推論に使用されます。より正確には、アルゴリズムは、関数を計算するための明確に定義された命令の有限リストとして表現される効果的な方法です。

2
世界の歴史を手続き的に生成する方法はありますか?
ここにある図は、ある人が作成した想像上の世界の1800年の文化史を表しています。 この種のものは、世界のデザインに関する限り、ゲーム開発に強力な用途があるように思われます。 彼はこの図を手でやったようです。私が興味を持っているのは、この種のダイアグラムをプログラムで作成する方法があるかどうかを見ることです。 ランダムな値から上記のスタイルのダイアグラムを生成するタスクを課された場合、どのように対処しますか?検討する特定のデータ構造またはアルゴリズムはありますか?

4
2Dマップで「本土」を検出するアルゴリズムはありますか?
このマップでは、「メインランド」は、4つの基本的な方向(北、南、東、西-斜めではない)でマップの中心に接続できるすべての土地です。 本土を検出し、本土の穴を埋めたいと思います。私は3つのことを考えました: パス検索アルゴリズムを使用して、マップの中心に接続できる場合は、すべての非水(暗いセル)セルを検索します。高過ぎ!しかし、これは島ではうまくいく可能性があります。 本土は緑色の塗料でいっぱいです。各穴はペイントで囲まれています... 本土内のすべてのウォーターポイントで隣接関係を確認すると、海岸線に表示されている半島やその他の地理的特徴を削除します。 本土を把握するためのある種のエッジ検出。内側のものはすべて保管し、水であればそれを満たし、外側のものは取り除きます。複雑? おそらく、ゲームの経験豊富な開発者がこれを手伝ってくれて、おそらく既知のアルゴリズムやテクニックの名前を教えてくれるでしょうか?
28 algorithm  maps 

4
無限の地形のための手続き型の川または道路の生成
私は中世のように考えているので、道ではなく道を言うべきです。また、リアリズムを探していません。私が探している答えは、リアリズムではなく、私が説明する型に収まることです。 曲線的な方法で手続き型の道路/川を生成する方法を探していますが、無限の地形タイプのシステムでそれを行いたいと思っています。perlinノイズがブロブを生成する方法と同じように、ランダムな長さのラインセグメント(場合によっては無限の長さ)を生成したいと考えています。 私はここにある提案された答えのような戦略を知っていますが、それは指定された開始点と終了点に依存するため、指定された開始点と終了点がありません。任意の座標を使用して単純に関数を呼び出し、特定の座標が川/道路の一部であるかどうかを返すことができるようにしたいと思います。 地形を事前に生成する必要はありません。これには、ハイトマップが含まれます(降雨シミュレーションなどに使用されます)。また、開始点/終了点を必要としません。 私が説明しようとしていることを達成するために、誰かが知っているかもしれないノイズアルゴリズムにそのようなアルゴリズムまたは微調整がありますか? 名前を適切に使用している場合、これまでに最も近いのはマルチリッジフラクタルです。値ノイズの絶対値を取得し(-1から+1にスケーリングされると仮定)、しきい値を設定しています。これに関する私の主な問題は、線が頻繁に重なりすぎて、ほとんどが円形であり、時にはきれいであるが望ましくない大きな湖を形成するように収束し、線の太さが非常に異なることです。 ここに私がこれまで2Dで持っていたものの写真がありますが、より詳細を示すために非常に高い頻度で:

4
単純なノイズ生成
私は次のようなノイズを生成しようとしています: (Perlin Noiseを理解するための画像提供) 基本的に、小さな「リップル」がたくさんあるノイズを探しています。以下は望ましくありません: これを行う簡単な方法はありますか?私は今、perlinとsimplexを1週間見てきましたが、JavaScriptで動作させることができないようです。スロー。 私が投稿した3つの画像は、おそらく同じアルゴリズムで異なるスケールで実現できることを理解していますが、そのアルゴリズムは必要ありません。最初の画像のようなものを理想的に実現するには、非常に単純なアルゴリズムが必要です。何らかのぼかしが仕事をするかもしれませんが、結果を得ることができません。 私はこれをJavaScriptで開発していますが、どんな種類のコードでも、簡単で詳細な説明でも機能します。

1
マップを生成する方法
小さなゲーム用に、単純な「ランダムに」生成されたマップを作成したいと考えています。 ゲームは、陸地と海域のある世界のトップダウンビューで構成されています。たとえば、世界の簡単なアウトラインマップを考えてください。 私が今まで見た中で最も近いと思うのは、古いSimCityゲームのレベルジェネレーター、または多くの島などに対して単一の大陸を優先的に設定できるCivシリーズです。 どのようなアルゴリズムが適していますか?マップは適度にズーム可能である必要があるため、「全世界」ビュー、さらにズームインしたローカルビューを使用できますが、後で整理するつもりです。 最初は、高さの概念は必要ありません。2つの領域(陸と海)だけです。後で拡張することもあります。
27 algorithm 



2
クアッドツリーとグリッドベースの衝突検出
私は4人のプレイヤーが協力するrタイプのゲームを作成しており、衝突検出コードを実装しようとしています。衝突検出の処理方法に関する多くの記事や資料を読みましたが、何をすべきかを考えるのに苦労しています。クワッドツリーが最も一般的な方法であるように見えますが、一部のリソースではグリッドベースのソリューションに言及しています。前のゲームで検出にグリッドを使用したことで、私はそれに満足していますが、実際には四分木よりも優れていますか?どちらが最高のパフォーマンスを提供するかわかりません。また、少しベンチマークを実行しましたが、両方のソリューションに大きな違いはありません。 一方が他方より優れていますか?またはよりエレガント?どれを使うべきか本当に分かりません。 どんなアドバイスも大歓迎です。ありがとう。

3
チームはソースファイルの上書きをどのように防止しますか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 4年前に閉鎖されました。 たとえば、ゲームエンジンなどが複数の人によって同時に処理されているときに、上書きをどのように防ぐことができるのか、ということが起こりました。 開発者1が作業してAudio.cppおり、開発者2も作業をしているとしましょう。Audio.cppこれは、一般的に大規模なチームで上書きに対処するためにどのように管理されていますか?(つまり、開発者2がファイルを開くのを停止して、開発者1が終了するまで)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

2
稲妻効果を生成するにはどうすればよいですか?
稲妻を生成するアルゴリズムはありますか? ボルトが着陸する場所を指定するセグメントまたはポイントオブジェクトのリストを生成するアルゴリズムが必要です。このメソッドには、開始点パラメーターとエンドポイントが必要です。ボルトにはランダムな分岐があり、ランダムな間隔でジグザグになっている必要があります。結果は、このように見えるランダムな稲妻効果になります (ソース:wikimedia.org) 誰かがこれがうまくいくかもしれないアルゴリズムを知っているなら、助けは大歓迎です!

2
擬似ランダムではなく、「楽しく」ランダムに生成するにはどうすればよいですか?
さまざまな種類のパズルを順番に提示するゲームを作っています。擬似乱数で各パズルを選択します。各パズルには、多くのバリエーションがあります。別の擬似乱数でバリエーションを選択します。等々。 問題は、これがほぼ真のランダム性を生み出す一方で、これはプレイヤーが本当に望んでいることではないということです。プレイヤーは通常、自分が何であるかを認識し、ランダムであると特定しますが、それはパズルを繰り返す傾向がない場合のみです。だから、本当にランダムではありません。ただ予測不可​​能です。 少し考えてみると、それを行うためのハックな方法が想像できます。たとえば、新しい選択肢を選択するときに、可能性のあるセットから最新のN個の選択肢を一時的に削除します。または、すべての選択肢に等しい確率を割り当て、選択時に選択肢の確率をゼロに減らしてから、選択ごとにすべての確率をゆっくりと増やします。 これを行う確立された方法があると思いますが、用語がわからないので見つけることができません。知ってる?または、誰かがこれを楽しい方法で解決しましたか?
26 algorithm  random 

5
2Dタイルゲームで視界面積をすばやく計算する方法は?
タイルのマトリックスがあり、そのタイルのいくつかにはオブジェクトがあります。プレイヤーに見えるタイルと見えないタイルを計算したいので、非常に効率的に行う必要があります(したがって、大きなマトリックス(100x100)と多くのオブジェクトがある場合でも十分に高速に計算されます)。 Bresenhamのラインアルゴリズムを使用してそれを実行しようとしましたが、時間がかかりました。また、いくつかのエラーが発生しました: ----XXX- ----X**- ----XXX- -@------ -@------ -@------ ----XXX- ----X**- ----XXX- (raw version) (Besenham) (correct, since tunnel walls are still visible at distance) (@ is the player, X is obstacle, * is invisible, - is visible) 私はこれができると確信しています-結局のところ、NetHack、Zangbandがあり、彼らはすべてこの問題に何らかの形で対処しました:) これにはどのアルゴリズムを推奨できますか? 必要に応じて、次のように可視を定義します。タイルは、タイルの少なくとも一部(コーナーなど)がプレーヤータイルの中心に障害物と交差しない直線で接続できる場合に表示されます。

2
視覚的に魅力的で直感的な方法でラベルを広げるアルゴリズム
短縮版 車両ラベルを重複しない方法で配布し、参照する車両のできるだけ近くに配置するための設計パターンはありますか?そうでない場合、私が提案する方法のいずれかが実行可能ですか?これを自分でどのように実装しますか? 拡張版 私が書いているゲームでは、空飛ぶ車両の鳥瞰図を持っています。また、各車両の隣には、車両に関する重要なデータが記載された小さなラベルがあります。これは実際のスクリーンショットです。 現在、車両は異なる高度で飛行する可能性があるため、アイコンが重なる可能性があります。ただし、ラベルが重複しないようにします(または、車両「A」のラベルが車両「B」のアイコンに重複することはありません)。 現在、スプライト間の衝突を検出することができ、問題のラベルを、それ以外の場合はオーバーラップしているスプライトとは反対の方向に押すだけです。これはほとんどの状況で機能しますが、空域が混雑すると、代替の「スマート」な代替手段があったとしても、ラベルが車両から非常に遠くに押し出される可能性があります。たとえば、次のようになります: B - label A -----------label C - label 取得する方が良い場所(=車両に近いラベル): B - label label - A C - label 編集:また、重複車両の場合のほかに、車両のラベルAが重複する可能性のある他の構成が存在する可能性があることも考慮する必要があります(ASCIIアートの例は、たとえば、のラベルがBおよびC)。 現在の状況を改善する方法について2つのアイデアがありますが、それらを実装する時間を費やす前に、アドバイスを求めてコミュニティに頼ることを考えました(結局、そのためのデザインパターンが存在する可能性がある「共通の十分な問題」のようです)。 それが価値があるものについて、私が考えていた2つのアイデアがあります: ラベルスペースのスロット化 このシナリオでは、すべての画面をラベル用の「スロット」に分割します。次に、各車両のラベルは常に最も近い空のラベルに配置されます(空=その場所に他のスプライトはありません)。 スパイラル検索 画面上の車両の位置から、重複しない位置が見つかるまで、角度を大きくしてから半径を大きくしてラベルを配置しようとします。以下のようなもの: try 0°, 10px try 10°, 10px try 20°, 10px ... try 350°, 10px try 0°, 20px try 10°, 20px …


11
お気に入りのゲーム固有のコーディングの宝石は何ですか?[閉まっている]
現在のところ、この質問はQ&A形式には適していません。回答は事実、参考文献、または専門知識によってサポートされると予想されますが、この質問は議論、議論、世論調査、または詳細な議論を求める可能性があります。この質問を改善し、おそらく再開できると思われる場合は、ヘルプセンターをご覧ください。 7年前に閉鎖されました。 まず、Quake IIIのJohn Carmackの Fast Inverse Square Root から始めます。 float Q_rsqrt(float number) { long i; float x2, y; const float threehalfs = 1.5F; x2 = number * 0.5F; y = number; i = * ( long * ) &y; i = 0x5f3759df - ( i >> 1 ); y …
24 algorithm 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.