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

コードの構造。ゲームエンジンの内部設計に関する質問。

3
オブジェクトコンテナーとしてのシーングラフ?
シーングラフには、ゲームオブジェクトを表すゲームノードが含まれています。一見すると、たとえばstd :: vector <>の代わりに、シーングラフをゲームオブジェクトの物理コンテナーとして使用するのが現実的であるように見えるかもしれません。 私の質問は、ゲームオブジェクトを含めるためにシーングラフを使用することは現実的ですか、またはstd :: vector <>などの別のコンテナーに格納されたオブジェクトを保持しながら、シーンオブジェクト/ノードのリンケージを定義するためだけに使用する必要がありますか?

2
Silverlightはオンラインゲームの世界に未来をもたらしましたか?[閉まっている]
休業。この質問は意見に基づいています。現在、回答を受け付けていません。 この質問を改善してみませんか?この投稿を編集して、事実と引用で回答できるように質問を更新してください。 6年前休業。 新しいゲームの計画、テスト、開発に数か月を費やしてきました。私たちは多数のプラットフォーム(Javaアプレット、XNA経由のデスクトップ、Flashなど)を試用しており、Silverlightがほとんどの選択肢でした。 ただし、ゲームに参加するほど、主にサーバーとの通信に関わる問題が発生します。HTTPポーリングは低速で非効率的ですが、SL4で使用できるようになったソケット機能は、イントラネット環境でのみ有用です-何かが欠けている場合を除きます。 誰でも、これとオンラインブラウザベースのゲームのSLの将来について、意見や経験があります。

2
オブザーバーパターンの実装
自分に基本的なゲームプログラミングを教えるために、ポンのクローンをプログラミングします。入力とゲームエンジン間のインターフェイスを備えたオブザーバーデザインパターンを使用します。ただし、インターフェイスが何をすべきかはわかりません。私が持っていた1つのアイデアは、入力インターフェイスがゲームエンジンに(たとえば)画面がクリックされたことを通知し、ゲームエンジンにその情報をどうするかを決定させる(たとえば、弾丸を撃つ)ことでした。もう1つのアイデアは、マウスクリックをキャッチして、ゲームエンジンに弾丸を発射するように入力インターフェイスを設定することでした。 どちらの方法を使用するのが良いでしょうか?

1
ゲームエディターとエンジンを統合するにはどうすればよいですか?
私が理解しようとしているのは、エディター(レベル、エフェクト、モデルなど)を最も効果的な方法で統合する最良の方法は何ですか? 今私が最初に考えたのは、非常にモジュール化されたゲームエンジン(*)を作成することです。たとえば、ゲームの状態の例を取り上げました。複数のゲームステートがあり、すべてが独自のupdate()およびdraw()メソッドを持つことができます。各ゲーム状態クラスは、基本のGameStateクラスを継承します。これにより、よりモジュール化されたアプローチが可能になり、有用なアプローチが得られます。 最も効率的なアプローチは、モジュラーエンジンと共にエディターを実装することですか、それともゲームとエディターの両方に2つの異なるデザインを作成することですか?私はゲームの状態の例を取り上げて、ウィンドウの状態に拡張することを考えました。さらに多くのシステムで使用できます。エンジンで使用される他のシステムで使用するためのこのデザイン(ゲーム状態)のより良い実装はありますか? *:今では、ゲームエンジンという用語はあまり関係がなく、多くの状況で誤用されています。私が「ゲームエンジン」と呼んでいるのは、ゲームが略して相互作用しなければならないシステムの組み合わせです。 また、これは実装というよりも理論/設計の問題です。両方が混在しているとしても、エディターが効率的に構築され、ゲームが使用しているものと同じエンジンコードを使用する方法について、より一般的な考えが欲しいと思います。 PSさらに説明や追加のビットが必要な場合は、コメントを残してください。

2
ターンベースのエンジンをどのように構成すれば、プレーヤー/ AIと観察に柔軟性を持たせることができますか?
ゲームメーカーのGML言語でターンベースの戦略エンジンを作成し始めたところです...ターンサイクルを処理するときまで、順調に進み、誰がどのプレイヤーを制御しているか、そしてカメラと画面に表示されるもの。 現在、メインゲームループで発生しているメインスイッチの概要は次のとおりです。 switch (GameState) { case BEGIN_TURN: // Start of turn operations/routines break; case MID_TURN: switch (PControlledBy[Turn]) { case HUMAN: switch (MidTurnState) { case MT_SELECT: // No units selected, 'idle' UI state break; case MT_MOVE: // Unit selected and attempting to move break; case MT_ATTACK: break; } break; case COMPUTER: …

1
グローバルキーボードの状態
キーボード入力の処理について次の考えがあります。次のように、「メイン」のゲームクラスで入力をキャプチャします。 protected override void Update(GameTime gameTime) { this.CurrentKeyboardState = Keyboard.GetState(); // main :Game class logic here base.Update(gameTime); this.PreviousKeyboardState = this.CurrentKeyboardState; } 次に、キーボードの状態(internalスコープを持つ)を他のすべてのゲームコンポーネントで再利用します。この背後にある理由は、1)キーボード処理の負荷を最小限に抑え、2)同様のキーボード状態変数を使用して他のすべてのクラスの「汚染」を減らすことです。 私はゲーム開発とXNA開発の両方でまったくの初心者なので、これらすべてが妥当に聞こえるかどうか知りたいのですが。 UPDATE:誰かが興味を持っている場合によって示唆されているように、実際のユーティリティクラス、デビッドGouveiaの、私が作成したここで見つけることができます。

2
エンティティシステムについて予約しますか?[閉まっている]
休業。この質問には、より焦点を当てる必要があります。現在、回答を受け付けていません。 この質問を改善してみませんか?質問を更新して、この投稿を編集するだけで1つの問題に焦点を当てます。 2年前休業。 エンティティシステムの機能に本当に興味があります。この本で良い本を検索しようとしていますが、失敗しました。 私はこのパラダイムの学習に夢中になりたくないので、本は大きな助けになります。誰かが良い本を推薦できますか? また、この言語は不可知論ですか?または、このパラダイムを実装するのに苦労する言語がありますか(例:Objective-C)? ありがとう。

1
2D、さまざまなレベルのトップダウンマップ
それで、2D、トップダウン、スプライトベース(タイル)ゲームを作成しています。現在、マップ(現時点ではマップエディター)で作業していますが、マップを作成するので、基本的には同じです事)。 シナリオ それで、私は効率について考えて、地図をバラバラに作成しています。それぞれの作品で、「レイヤー」を持つことを計画しています。基本的に、私はそれを「ヒーローの下」レベルと「ヒーローの上」レベルまでレンダリングし、ヒーローが明らかにその間にレンダリングされることを計画しています。「ヒーローと同じレベル」のレイヤーも存在する可能性がありますが、私はまだそこにはいません。イベントや対話についてはまだ心配していません。画面上でヒーローを探しています。 移動のために、私は明らかにどのタイルがどの方向に移動できるかを知る必要があります。現時点での私の計画は、各タイルが8ビットを取得することです(4は「方向に入ることができます」ビット、4は「方向に出ることができます」)。これにより、移動を制限したり、一方向の方向移動を許可したりできます。 ジレンマ これは多くのシナリオに最適です。これにより、マップを基本的に3つのレイヤー(文字列)に保存できるようになり、今後の柔軟性が向上します。ただし、それ自体がレイヤーを持つマップを作成することはできません。良い例は、ユーザーが無効な動きを許可することなく、橋の下または上を移動できる橋です。私はプラットフォームを作成できず、その下を移動できません。これらは私のゲームに含めたいものです。 私の考え 理論的には、複数のヒーローレイヤーを許可してから、「下」と「上」のレイヤー(またはサンドイッチレイヤー)の複数のセットを許可できます。しかし、これは私のシステムを複雑にし、マップ間の移動を潜在的にトリッキーにします(ヒーローがマップの端の3番目のレイヤーにあるが、それが他のマップの2番目のレイヤーに対応している場合、移動を許可または禁止するにはどうすればよいですか)。 私の質問 このような複数のレベルを持つ複数のマップを管理するためのより良い方法はありますか?ユーザーレベルは異なるマップの異なるレベルで「接続」される可能性がありますか? あるいは... 私はこれを難しい方法でやっていますか?私が気付いていないトップダウンの2Dタイルマップを処理するより標準的な方法はありますか? 注意すべきこと、または役立つかもしれないこと これはJavaScriptで行われます(JSONで転送されます) 状態をすばやく転送する必要があるため、マップIDとx / y /方向は、ブール値の「移動可能」値を取得するのに十分なはずです。 マップは標準サイズではありません(特定のタイル数になります) 他の人に助けてもらえるように編集ツールを作るので、ツールで作成できるものが役に立ちます 「テレポーテーション」の場所は、マップの構築や、さまざまなマップセット(必ずしも接続されている必要はありません)へのアクセスや、マップセットへのアクセスのために存在している必要がありますが、まだ作成されていません(現時点ではイベントと一緒になっています)。

3
個別のチュートリアルモードを設計する方法は?
私は、約90%完了した「ソーシャル」ゲームに取り組んでいます。残りの機能の1つはチュートリアルモードです。 基本的に、チュートリアルモードは、ユーザーがUIの一部にアクセスすることを制限し、機能(ストアアイテムなど)を制限します。チュートリアルは、特定のイベントがトリガーされた場合にのみ、特にチュートリアルに従って進行します。 コードは準備ができており、「ほぼ」動作するゲームがすでにあります。問題は、90%を実行している間、チュートリアルモードを予測していなかったことです。私の要件は、チュートリアルモードから通常モードへの読み込み/移行がないことです。これは、チュートリアルから進行状況を取得する必要があることを意味します(アセットやものの再レンダリングは不要)。 古いコードから何も変更しない方法でこれを設計するにはどうすればよいですか?プラグインするだけで簡単になりたいと思っています。古いコードにチュートリアルを詰め込みたくないので、多くのバグが発生します。

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" …

3
カメラ/ UIは、プレーヤーが誰であるかをどのようにして知るのですか?
特定のエンジンコンポーネント(カメラやUIなど)が、誰をフォローするか、その健康状態やその他の属性を画面に表示する方法を知る方法について、少しジレンマに陥っています。 これらのコンポーネントとエンティティ間の通信が行われるシステムをどのように構築しますか?プレーヤーを表す別のエンティティを作成することもできますが、少し「ハードコード」されているようです。カメラをパンしたい場合はどうなりますか?プレーヤーが別のエンティティの制御を開始した場合はどうなりますか? つまり、カメラやUIなどのコンポーネントのデータソースを抽象化して、それらが表すエンティティを気にしないようにするにはどうすればよいですか。 イベントシステムは多くの場合に役立ちますが、変化する、または「まれに」生成される情報(プレーヤーの死亡など)を伝播するのにより適しています。エンティティの状態や位置など、フレームごとに把握する必要があるものには、イベントシステムはあまり適していません。

3
イベント、投稿とキューイング
メッセージングシステムを実装していて、イベントをどのように処理する必要があるのか​​疑問に思っています。それらをポストして、受信したらすぐに適切なリスナーに送信する必要がありますか、それともキューに入れて、(おそらくメインのゲームループによって)プロンプトが表示されたときにのみディスパッチする必要がありますか? 編集: 詳細 私のゲームは2Dプラットフォーマーなので、パフォーマンスを達成するのはそれほど難しくありません。Roy T.の発言を考慮すると、イベントが投稿されたらすぐに送信するのもよいでしょう。それをキューに入れる必要はないようです(もちろん、何か欠落している場合を除きます)。

1
パーティクルシステムはどのように機能しますか?
ゲームにパーティクルシステムを実装したいのですが、パーティクルシステムをプログラミングしたことがなく、どこから始めればよいかわかりません。 GL_POINTテクスチャを使わずに、ブロックを打ったときにTerrariaやMinecraftなどのさまざまな場所にさまざまなサイズのピクセル(s)を表示したいだけです。ほんの簡単な例です。 このためのGoogle検索結果は非常に複雑になる傾向があるか、概念を説明しないか、OOPなしでは読みにくいCで書かれています… JavaとOpenGLを使用しています。

4
ゲームプログラミングを学習コンテキストとして使用するC / C ++の学習/学習資料はありますか?[閉まっている]
閉まっている。この質問はトピックから外れています。現在、回答を受け付けていません。 この質問を改善してみませんか? 質問を更新して、ゲーム開発スタック交換のトピックになるようにします。 4年前休業。 ほとんどのゲームプログラミングは完了しているので(このサイトで読む)、C / C ++で、特にゲームプログラミングを対象とするC / C ++の学習/学習資料があるかどうか疑問に思いました。 私は「ゲームの開発」や「ゲームのソフトウェアアーキテクチャ」に関する資料を探しているのではなく、C / C ++機能、イディオム、プログラミング手法などを導入および説明するためのCONTEXTとして「ゲームプログラミング」を使用する資料を探しています。 類義語:デザインパターンに関するGOFの本を考えてください。そこでは、デザインパターンを導入するためのコンテキストとして「テキストエディターの開発」を使用しましたが、この本は「テキストエディターの開発」に関する本ではありません。 編集:本には、独自のテクノロジーに依存しないコード例が含まれている必要があります(例:DirectXではなくOpenGL、特定の商用コンパイラーを必要とせずにgccに知られているCの方言などを使用する必要があります)。 お時間とアドバイスをよろしくお願いします! PS:私のバックグラウンド:私はOOスクリプト言語での確かな経験と、Cおよびアセンブラー(AVRマイクロコントローラー)での経験が少ししかないプログラマーなので、初心者向けのチュートリアルではなく、中級から上級レベルの資料を考えています。他に何も利用できない場合は、後者を調べるのは興味深いかもしれません。

3
フレームワーク(XNA)とAPI(DX)はどこで始まりますか?
XNA対OpenTK対SlimDX対OpenGL対DXについて尋ねる多くの興味深い質問を読みました。これらのさまざまなAPI /フレームワークを使用して数百時間から他の一般的な印象を得るのは本当に便利ですが、私はしていませんそれぞれの範囲が何であるかを明確に定義する答えを見た。 API、エンジン、フレームワークの違いは理論的には何であるかは理解していますが、グラフィックスシステムの経験が限られている人にとっては、実用的な側面で何が各カテゴリに分類されるかを理解するのは困難です。(すべてのオーバーラップによって簡単にはなりません!たとえば、XNAがコンテンツパイプラインを不可欠な部分として実装しています) たとえば、顔カリングを考えてみてください。XNAは、プログラマが考える必要なく、これをバックグラウンドで「実行」しますが、どこで発生するのでしょうか。呼び出す必要があるDXの「カルフェース」関数、またはおそらくXNAの上の関数がありますか?または、GPUまたはそのドライバーはそれを行いますか? 効率的なレンダリングコードを実装することがいかに困難であったか、およびそのプロジェクトがどのように抽象化したかについて、管理されたプロジェクトの1つに関するドキュメントを読みました(不愉快なことに私は覚えていません)。これは私を少し不安にさせ、フレームワークがより柔軟なもののために残された場合に手動で行わなければならないDrawIndexedPrimitivesの下でXNAが何をしているのか疑問に思いました。 XNA はバックグラウンドで何を行うのでしょうか。そのキューブをレンダリングするとき、マネージAPIはそうしませんでしたか?

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