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

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

2
2Dタイルマップのカスタム拡張ファイル形式
現在、ゲームロジックの多くを実装していますが、何かを操作できるように、オンザフライで厄介なforループを使用してマップを作成しています。次に進んで、このデータを(非)シリアル化する方法についていくつかの調査を行いたいと思いました。(私はマップエディターを検索しません-私はマップファイル自体について話しています) 現時点では、提案とリソース、次の機能を提供する(MoSCoWメソッドに基づく)マップにカスタムファイル形式を実装する方法を探しています。 持つ必要があります 拡張性と下位互換性 異なるレイヤーの処理 タイルが固体であるか通過できるかに関するメタデータ 関連するプロパティ/メタデータを持つエンティティ/トリガーの特別なシリアル化 持つことができた ファイル/タイルセットが散らばらないようにするためのタイルセットのある種の包含 C ++(SDLを使用)で開発しており、Windowsのみをターゲットにしています。役立つヘルプ、ヒント、提案などがあれば、よろしくお願いします! 以下の議論の結果 私は過去数時間にマップファイル形式を設計していて、スケルトン(今のところレイヤーのみが含まれている-残りは彼/彼女の独自の形式を設計しているすべての人に任せる)を考えた。同じ意図があり、何らかのインスピレーションを得ることができます。フルサイズのスクリーンショットはImgurからダウンロードできます。

6
レベルデータをすべて複数のファイルに分散するのではなく、1つのファイルに保存するにはどうすればよいですか?
現在、レベルデータを生成しています。レベルに加えられた変更が確実に保存されるように、ディスクに保存しています。 2048x2048ピクセルの「チャンク」をファイルに保存しています。位置に関連付けられたファイルがないセクションにプレーヤーが移動するたびに、新しいファイルが作成されます。 これはうまく機能し、非常に高速です。私の問題は、再生しているとファイル数がどんどん大きくなることです。 パフォーマンスに影響を与えることなく、ファイル数を減らすために使用できるテクニックは何でしょうか。このデータを複数のファイルではなく単一のファイルに効率的に保存/検索/更新する方法に興味があります。

2
プレーヤーが作成した構造が3Dブロックベースのゲームのテンプレートと一致するかどうかを判断する
免責事項:これは恐ろしいMinecraftスタイルの質問の1つですが、データ構造とアルゴリズムの質問のほうが多いと思います 私は3Dデータ構造に本当に慣れていないので、3Dブロック構造を保存および照合するための最良の方法を考えています。 現在、プレイヤーは任意のスペースにブロックを配置でき、これらのブロックが事前定義された構造と一致すると、イベントが発生します。私が現在行っている方法は、プレーヤーがブロックを配置するときに、ゲームが再帰的に各隣接ブロックをチェックして、x、y、z座標が最も低いブロックを見つけ、そのブロックをルートブロックにします。次に、ルートブロックに基づいて残りのブロックをチェックし、特定のテンプレートと一致することを確認します。問題は、テンプレートが複雑になるにつれて、私のコード(非常に非効率的)も複雑になることです。 これを行う最善の方法は、構造を定義するあるタイプのマトリックスを保存し、プレーヤーがブロックを配置するたびにマトリックスと照合することです。このタイプの問題に一致するデータ構造/アルゴリズムはすでにありますか?

2
高速な距離ベースのエンティティ検索のためのデータ構造(またはアルゴリズム)
たとえば、ゲームには100人の敵(さまざまなチーム)が走り回っていて、AIは近くのエンティティを調べて攻撃対象を確認したいと考えています。それらのエンティティを整理して、各敵がそれ自体と他のすべてのエンティティとの間の距離を計算する必要がないようにするための迅速な方法は何ですか? 手短に言えば、AIエンティティが「近くにいるのは誰ですか?」という質問にすばやく答える方法は何ですか。

2
文字列はどこに保存しますか?それらをロードする効率的な方法は何ですか?
iPhone用のトップダウンRPGを作っています。私はタイルマップ(CCTMXTileMap)とcocos2d-iphoneエンジンを使用しています。 画面へのマップとNPCのロードを処理できるクラス、入力を処理するクラス、およびダイアログを表示することになっているクラスを作成しました。ダイアログクラスは単一の文字列または配列を取り、それを画面上にきちんとしたダイアログボックス内に表示し、ユーザーが画面をタップするまで、次のメッセージに循環するとき、または最後の/唯一のメッセージである場合は、コントロールを非表示にします。ダイアログを非表示にします。 私のNPCは現在Core Dataに保存されています。それらの文字列は、クエストの進行状況に基づいて更新する必要があります。また、標識やその他のメッセージなど、ダイアログの他のビットもあります。 では、ゲームのテキストコンテンツはどこに配置すればよいですか?次の3つの理由から、Core Dataは適切な場所ではないと思います。 文字列がCore Dataに保存されている場合、おそらくそれらを翻訳するのは難しいでしょう。 文字列がCore Dataにある場合、NPC(Core DataのNPCに接続される)の文字列のみが残ります。それはどこにすべてを残しますか? 文字列をCore Dataに残しておくと、読み込み操作が少し重くなりますよね? このすべての背景情報を踏まえて、ゲームのどこに文字列とダイアログを配置すればよいですか? tl; dr ゲームのさまざまな部分で簡単にアクセス、翻訳、参照できるように、iOSゲームの文字列を保存する効率的な方法は何ですか?

2
動くオブジェクトがたくさんある四分木
私がやろうとしていることに非常に役立つクアッドツリーの実装があります。私の問題は、ビューポートに多くのオブジェクトがある場合、クアッドツリーの更新に非常に長い時間がかかることです。 非静的オブジェクトの場合、クワッドツリーが遅いことは既知の事実です。高速化するためにいくつかの方法を試しましたが、実際には、多数のオブジェクトを非常に頻繁に更新する必要があります。 代わりに私が見ているより良いアルゴリズムはありますか?あなたが知っているいくつかの派生したクワッドツリー実装はありますか?

4
どうすればこの敵のデータベース実装を改善できますか?
私はRPGを開発していて、敵データベースの構築を開始する必要があるところにいます。これに関連するいくつかの課題と、私が検討してきたいくつかの解決策があります。 敵のデータベースで私がしなければならないことは次のとおりです。 次のデータを表す必要がある2つの主要な敵クラスがあります。 以下を含む基本敵クラス: Base Stats Status Resistance Table Elemental Resistance Table Steal Table Drop Table Level Unique ID Base XP AI Hook Name Display Name そして、次のフィールドを追加して、機器を追加する機能を追加する派生クラス: Main Weapon Secondary Weapon/Equipment Armor Accessories 今後、必要に応じてフィールドやクラスを追加する予定です。敵をデータベース化するための2つの可能な形式を検討しました。 XMLファイル 基本的には次のようにします。 <?xml version="1.0" encoding="utf-8"?> <Enemies> <Enemy name="Red Dragon" type="BaseEnemy" level="56" displayname="Red Dragon"> <Stats HP="55000" MP="2500" …

1
STLを使用してC ++でゲームの保存ファイル形式を作成する方法
STLのI / Oの部分、具体的にはfstreamについて学びました。ハードドライブに作成したバイナリ情報とクラスを保存できるようになりましたが、情報の読み取り方法を定義する方法がわかりません。 [this] [1]の投稿からファイル形式を作成するための答えを見つけました: 通常、BITMAPINFOHEADERなどの多数のレコード/構造を定義し、それらが来る順序、それらをどのようにネストするかを指定します。また、多くのインデックスとルックアップテーブルを作成する必要がある場合があります。このようなファイルは、多数のレコード(たぶん寄り添う)、ルックアップテーブル、マジックワード(構造の開始、構造の終了などを示す)、およびカスタム定義の形式の文字列で構成されます。 特に私が知りたいのは、STLとC ++でこれを行う方法です... このフォーマットは単にゲームを使用するためのものなので、はるかに簡単だと思います。形式は次のとおりです。 トラバース可能であること(私はそれを見て、構造の開始点を見つけ、名前を確認することができます 1つのファイルに複数のクラスとデータを保持できる テキストファイル内のスペースなど、セクションの開始と終了を識別できる 多分それを表す独自のアイコンがあるのでしょうか? C ++でこれを行うにはどうすればよいですか?

6
タイルマップ構造の2D配列の代替
長い間探していたところ、この質問がまだ出されていないことに驚いています。2Dタイルマップゲームでは、マップをどのように処理しますか?私はC ++の実装にもっと興味がありますが、どの言語でもあなたの見解を示していただければ幸いです。 2D配列、2Dベクトル、座標を処理するアドホックコンピューティングでリンクリストを処理するクラス、boost :: matrix ...?どのソリューションを使用していますか。その理由は何ですか。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.