タグ付けされた質問 「data-structure」

データを効率的に使用できるように特定の方法でデータを整理するためのエンティティ。例は、配列、オブジェクト、レコード、構造体です。

11
リプレイシステムの設計方法
それでは、リプレイシステムをどのように設計しますか? Warcraft 3やStarcraftのような特定のゲームでは、ゲームが既にプレイされた後に再び見ることができます。 比較的小さなリプレイファイルになります。だから私の質問は: データを保存する方法は?(カスタム形式?)(小さなファイルサイズ) 何が救われるのでしょうか? 期間を記録するために他のゲームで使用できるように汎用化するにはどうすればよいですか(たとえば、完全一致ではありません)? 早送りと巻き戻しを可能にします(WC3は覚えている限り巻き戻しできませんでした)

3
データをハードコードする場合と外部データをロードする場合
私は独自の2D宇宙ベースのゲームを作成するための数千行のコードです。これは、ランダムに生成された星系のネットワークを作成し、惑星、ステーション、船、武器のランダムな選択でそれらを埋めます。 ゲームで使用する必要のある数百の異なるステーション/船/などが存在する可能性があります。そのため、ここに私が考えていたものがあります。この情報をすべて(たとえば)XMLファイルに保存する「ソフトコード化された」データローダーを作成するために時間を費やす必要があります。したがって、後で変更するのが多少簡単になります。すべてのオブジェクトをゲームのメインエンジンにハードコーディングしています。 私はこのプロジェクトに参加している唯一の人物であり、私が言ったように、大学を離れて暇なときにやっているのは趣味のことだけです。しかし、コミュニティは、追加のファイルにデータを保存するための追加のシステム全体の作成に投資することを推奨しますか? このようにデータをソフトコーディングすることの利点は、コンストラクターを介してすべてを単純にハードコーディングすることと比較して何ですか?変更可能な外部ファイルを使用することには長期的なメリットがありますか?「mod」を持つゲームを探していない場合、外部ファイルが必要ですか?数週間または数か月でやめるかもしれない単なる趣味の場合、これに時間を費やすべきですか?

5
ゲームリソース(wood、iron、gold)にインスタンスまたはクラスを使用する
そこで、木材、鉄、金などの資源を売買する場所に船を送ることができるゲームを作っています。 今、私はゲーム内でリソースをどのように作成すべきか疑問に思っていました。私は2つのオプションを思いつきました リソースごとにクラスを作成します。 public class ResourceBase { private int value; // other base properties } public class Gold : ResourceBase { public Gold { this.value = 40 // or whatever } } リソースクラスのインスタンスを作成する public class Resource { string name; int value; public Resource(string name, int value) { this.name = name; …

4
六角タイルマップに相当する3Dはありますか?
おそらく、ヘクスベースのマップタイルとスクエアベースのマップタイルの最大の利点は、各ヘックスの中心が、隣接するすべてのヘックスと同じ距離にあることです。このように3Dでタイル表示する同様の形状と、そのようなモデルをサポートするエンジンはありますか?

4
Diablo / WoWスタイルのタレントツリーには、どのデータ構造を使用する必要がありますか?
World of Warcraftで見られるものと同様のオンラインRPGにタレントツリーシステムを実装することを検討しています。スキルを取得すると、ツリーの下にある次の「ティア」のロックが解除されます。 誰もがこれをデータベース/コードに構造的に実装する最良の方法を知っていますか?

3
ドワーフ要塞の命令順序アーキテクチャ
AI用のコマンドオーダーシステムを実装する最もエレガントな方法は何ですか?たとえば、小人の要塞では、森林伐採エリアに木材の切断をマークすると、小人は次のシーケンスを実行します。 木に行く 木を切る 備蓄に木材を届ける 別の木に行く 等々.. 私はすでにスタックコマンドが動作していません。アイドル状態からツリーの宛先タイルに到達する1。 私が恐れているのは、このような注文をさらに作成すると、これがどのように面倒になるかです: 家を建てる 備蓄に行く 建設エリアに木材を持ち込む 備蓄に戻る 建設エリアに石を持参 建物のスプライトをアニメートする 植付 備蓄に行く 種を農場に持ち込む 醸造 備蓄に行く 植物を静止させる 醸造スプライトをアニメートする だから私の質問は、ドワーフ要塞のようなコマンド順序システムをどのように実装し、同時にスパゲッティコードを回避するのですか?調査する必要があるデータ構造はありますか?コマンドシーケンスを別のxmlファイルに配置する必要がありますか?

2
Unityのインスペクターでキーと値のペア(辞書など)を編集する方法は?
私が作成しているスペルシステムは、次のとおりです。 各呪文は独立したプレハブです。これには、インスペクターで変更できるいくつかのプロパティ(基本ダメージ、持続時間など)を持つスクリプトが含まれています。 ゲームロジックで使用されるコード内のすべての可能なスペルをリストするSpell列挙型があります 呪文を唱えたいとき、この呪文のプレハブを取得してインスタンス化し、その情報を読むことができる必要があります 各アクター(プレイヤーであれ、敵であれ)には、呪文の可能なアニメーションのリストが必要です。 私が実装しようとしている方法の問題は次のとおりです。 各アクターのアニメーションをリストするにはDictionary<Spell, Animation>、を使用できますが、辞書はインスペクターでサポートされていないため、複数のアクタータイプを簡単に編集することは困難です。 対応する列挙型からスペルプレハブに簡単にアクセスする方法が必要です。ここでも辞書を使用できますが、コードではなくインスペクターでプレハブのみを参照できます。つまり、この辞書を埋めることはできません スペル列挙型を対応するプレハブとアニメーションに簡単に関連付ける方法を探しています

2
これらのボクセルデータファイル形式の長所と短所は何ですか?[閉まっている]
閉まっている。この質問はトピック外です。現在、回答を受け付けていません。 この質問を改善したいですか? 質問を更新して、 Game Development Stack Exchangeで話題になるようにします。 7か月前に閉鎖されました。 .VXL .VOX .KVX .KV6 .V3A .V3B 上記のいずれかを使用する価値があるかどうか、または自分でロールバックする必要があるかどうかを判断しようとしています。重要度の決定要因は次のとおりです。 ボクセルデルタまたは数値変換記述を使用した、アニメーションサポート(ボクセルに関してはこれが難しい側面であることは承知しています)。 シンプル(または少なくとも簡潔な形式) 圧縮 私の知る限り、Tiberian Sun VXL形式はアニメーション用に設計された唯一の形式ですが、Voxelstein3Dの名声のKen Silvermanは、VXLはアニメーションをサポートしていないと主張しました(彼の言葉では)。したがって、ボクセルデータのファイル拡張子の明らかな選択のように思えるので、2つの異なる.VXL形式がないのではないかと思います...医療画像のコンテキストからかもしれません。 ボクセル形式の確かな経験を持つ人が来て、彼らの経験で実際の長所と短所についてコメントする必要があります。この質問は、JPGとPNGとGIFを比較するのと同じ方法で検討してください。

4
ボクセル地形を表すためにどのデータ構造を使用する必要がありますか?
ボクセルに関するウィキペディアのページによると、「[...]ボクセルの位置は、他のボクセルとの相対的な位置(つまり、単一のボリュメトリックイメージを構成するデータ構造内の位置)に基づいて推測されます。」 そのようなデータ構造をどのように実装する必要がありますか?私は八分木について考えていましたが、聞いたことがない何か他のものがあるかどうか疑問に思っています。

5
いつベクター/リストを使用する必要がありますか?
リストをいつ使用するかは理解できますが、ビデオゲームでリストを使用するよりもベクターを使用する方がよい場合はわかりません。高速ランダムアクセスを使用する方がよい場合 (そして、ポインタを削除/追加するだけなので、リストに挿入/削除する方が速い理由を理解していますが、それでも対応するアイテムを見つける必要があります...)

5
チャンクサイズが2のべき乗であることが多いのはなぜですか?
そこには多くのMinecraftクローンがあり、私は自分の実装に取り​​組んでいます。テレインレンダリングの原則は、全世界を固定サイズのチャンクでタイリングして、ローカライズされた変更の労力を減らすことです。 Minecraftでは、現在のところ、チャンクサイズは16 x 16 x 256です。また、クローンでは、常に2のべき乗のチャンクサイズを見ました。 その理由はありますか、おそらくパフォーマンスやメモリに関連していますか?2のべき乗はバイナリコンピューターで特別な役割を果たすことを知っていますが、チャンクサイズとは何の関係がありますか?

4
半径内のすべてのエンティティを効率的に継続的に見つける方法は?
非常に多数のエンティティ(ユニット)があります。各ステップで、各ユニットは近くのすべてのユニットの位置を知る必要があります(距離は定数Rより小さい場合)。すべてのユニットは連続的に移動します。これは3Dです。 平均すると、特定の制約を持つ他の特定のユニットの近くに、合計ユニット数の1%が存在します。 ブルートフォースなしでこれを効率的に行うにはどうすればよいですか?

3
配列のオブジェクトまたはオブジェクトの配列?
Roller Coaster Tycoonのラインに沿った、管理シムゲームを作成しています。パフォーマンスを最大化するために、ワールドオブジェクトを構造化する最善の方法を知りたいです。 私のゲームには5,000人の人がいるとしましょう: オブジェクトを作成し、そのような配列に保存します。 class person() { this.x = 0; this.y = 0; this.thirst = 15; this.hunger = 15; // etc.. add methods: public findPath(int destX, int destY) { // and so on } people = new person[5000]; for (int = 0; i < 5000; i++) { people[i] = …

2
2つのツリー構造の比較
私はこれを正しい用語で説明しようとするのに苦労しているので、できるだけ多くの詳細を提供し、誰かが私がやろうとしていることを知っていることを願っています=-) 2つのノードツリーを比較して、それらが構造的に類似/異なるかどうかを判断しようとしています。以下の図では、両方の例に同じ数の子、孫などがあります。例1では、Rootには2つの子を持つ子がありますが、例2では、​​rootにはありません。 再帰的にループする方法を見つけて、各レベルの数を数え、それを比較して、ツリーがどれほど似ているかを知ることができますが、それだけで同じように見えますが、実際にはそうではありません。 誰でもこれについて知っていますか?それとも、これが何であるかを表す専門用語ですか? 編集:また、これはC#であり、これらのオブジェクトとその子を保存するためにリストを使用しています。 例1 例2

1
地形で崖の面を表す方法は?
ゲームで地形をプログラムで表現するための最良の方法を見つけようとしています。ハイトマップ(または等間隔の頂点のグリッド)を使用して地形の表面を表現し、スプラットマップを使用して滑らかなテクスチャリングを可能にすることを検討してきました。これは完全に滑らかな地形では機能しますが、問題は崖と鋭い崖面をどのように表現するかです。 崖自体は、他の地形とは異なる方法でレンダリングする必要があります。たとえば、崖の前面に異なる(伸びていない)テクスチャを表示する必要がありますが、これにスプラットマップを使用した場合、崖のテクスチャが透けて見えるほどの崖の面を持つことは不可能です地面から完全に分離されています。 写真は千の言葉を言うので... 崖や地形の高さの他の急激な違いを保存および/またはレンダリングする一般的な方法は何ですか?

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