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

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

2
3Dグラフィックスでの描画および更新の順序
私が見てきたすべてのコードサンプルでは、​​ゲームループは次のようになります。 while(true) { InputAndUpdate(); Draw(); SwapBuffers(); } しかし、これはCPUとGPU間の並列性を破壊しませんか?スワップバッファが呼び出された後、CPUが入力を処理して更新している間、GPUは空の状態で待機します。次に、CPUが描画コマンドの発行を完了すると、GPUのレンダリングが完了するまで待機します。なぜこうならないのですか?: while(true) { Draw(); //First issue the draw commands InputAndUpdate(); //Update while the GPU is busy rendering SwapBuffers(); //Now block and wait for the GPU to finish }

1
カードゲームフレームワークの開発
やや汎用的なカードゲームフレームワークを構築するために、どのようなデザインパターンとアイデアを使用できますか? これは、人気のスティーブジャクソンゲーム「マンチキン」のクローンを作ろうとしたためです。そのゲームの性質上、カードの機能を多くコード化する必要がなくなったため、開発は無秩序で行き詰まりました。私は何か一般的なものを構築したかったのですが、多くのオーバーライドされた関数と動作を決定するためのswitchステートメントを含む多くのクラスになってしまいました。 私は、デザインの経験が豊富な人が、汎用のカードゲームフレームワークを構築するこのようなタスク、または少なくとも拡張可能な何かを処理するのに何が必要かを知りました。または、マンチキンのようなカードゲームのシミュレーションを作成したい場合は、特定のフレームワークを作成することにこだわっています。 C#を使用したいと思います。 編集 最終的に達成したいことのいくつかを明確にしたいと思います。基本的にカスタム機能を備えたフェーズを実装できるフレームワークが必要です(フェーズ1:カードを引く、フェーズ2:アップキープルールを適用する、フェーズ3:カードを再生する、フェーズ4:解決するなど)。 その場合、カードとフェーズの両方に結び付けられるルールセットを定義するのが賢明だと思います。 次に、カードが定義され、ルールに関連付けられていると想定します。たとえば、ルールは「維持フェーズの間、トークンを1つ失う」とします。ただし、プレイヤーが持っているカードは「維持フェーズ中にトークンを失わないでください」を提供するかもしれません。したがって、これを結び付けることができればフレームワークの根幹の範囲内にあるとよいでしょう。 これも私のリーグからはずれていると思います。

2
フラッシュはムービークリップとスプライトをどのように格納(表現)しますか?
フラッシュでオブジェクトを描画し、それをムービークリップまたはスプライトに変換する場合、どのように格納またはフラッシュで表現されますか。ベクトルアートでは、数式を使用して線分として保存または表されることを知っています。描画された形状の頂点を取得する方法はありますか? たとえば、単純な長方形が描画され、ムービークリップに変換されるとしましょう。とにかく、スプライトから頂点と線分を取得する方法はありますか?その形が得られるように。形状を再現できるように、十分な情報を取得する必要があります。それが鍵です-複製。 簡単に言えば、フラッシュは、描画された図形に関する情報をどこに格納して、それを取得して自分で図形を複製できるようにするのでしょうか。

2
オンラインゲームのサーバー側アーキテクチャ
基本的に私はそれが取るほとんどすべてのアクションのためにサーバーと通信するゲームクライアントを持っています、ゲームはJava(LWJGLを使用)であり、今すぐサーバーの作成を開始します。 ゲームの基本は通常、1つのクライアントがサーバーとのみ通信することですが、いくつかの機能を使用するには、後で複数のクライアントが連携する必要があります。 認証サーバーを分離する方法をすでに読んだので、それを実行するつもりです。問題は、私がこの種のサーバー側プログラミングに完全に不慣れであることです。これまでにプログラミングしたのはJSF Webアプリケーションだけでした。 HTMLは非常に遅いので、ほとんどすべてのゲーム通信でソケット接続を行うと思いますが、それでもサーバーのどこから開始すればよいかわかりません。 どこから始めればよいか、ゲームサーバーに必要なアーキテクチャ、およびクライアント/サーバー間通信を実現するのに役立つフレームワークに関する提案を読んでいただければ幸いです。 私はJNAGを調査しましたが、この種の経験はありません。そのため、それが堅固で優れたメッセージング層であるかどうかは本当にわかりません。 どんな助けでもありがたいです...ありがとう! 編集: ゲームに関するもう少しの情報。これは、いくつかの機能を備えた非常に複雑なゲームで、一部の機能をプログラム内の「プログラム」にすることを目的としています。FPSやRPGのような通常のゲームではありませんが、多くのユーザーがこれらのさまざまな「プログラム」をゲーム内で使用することを意図しています。 私が十分に明確でなかった場合、Javaクライアント/サーバーアーキテクチャでゲームをすでに開発している人々、それらがどのように通信するか、フレームワーク、API、メッセージングシステムなどに本当に感謝します。 それは言語の知識不足の問題ではなく、アドバイスの問題なので、私はうまくいくものを作成することにはなりませんが、後の段階で何らかの制限の理由で書き直さなければなりません。PS:私の英語が完璧でないと申し訳ありません...

6
Webゲームのアイテムにコンポーネントベースのシステムを実装する方法
コンポーネントベースのシステムを使用してアイテムを定義することに関する他のいくつかの質問と回答を読んで、PHPで記述されたWebゲームのアイテムとスペルに使用したい。実装にこだわっています。 このシリーズで提案されているDBスキーマを使用します(パート5ではスキーマについて説明します)。 http://t-machine.org/index.php/2007/09/03/entity-systems-are-the-future-of-mmog-development-part-1/ これは、一般的なアイテムプロパティを持つアイテムテーブル、アイテムのすべてのコンポーネントをリストするテーブル、そして最後に、アイテムを構成するために使用される各コンポーネントテーブルのレコードがあることを意味します。 最初の2つを1つのクエリで一緒に選択できると仮定すると、各コンポーネントタイプに対してNクエリを実行します。クエリを実行する前に、データをmemcacheにキャッシュして最初にチェックできるので、これで問題ありません。memcacheから取得した場合でも、実装がリーンサイドである必要があるため、使用されるすべてのリクエストでアイテムを構築する必要があります。 しかし、アイテムのコンポーネントシステムを実装することに自信を持っているのは、まさにそのためです。使用する各コンポーネントから属性と動作をコンテナに取り込む必要があると思います。それを効果的に行う方法がわからないだけで、各コンポーネントを処理するための特別なコードを大量に作成することにはなりません。 たとえば、AttackComponentは、バトルコンテキスト内のターゲットをフィルタリングする方法を知る必要があり、攻撃動作を提供する必要がある場合もあります。同じアイテムにUsableComponentを含めることもできます。これにより、アイテムを使用し、同じバトルコンテキストから別の方法でフィルターした別のターゲットセットに何らかのエフェクトを適用できます。次に、アイテムのすべてのパーツがアクティブなパーツであるとは限りません。AttributeBonusComponentは、アイテムが装備された状態にあるとき、またはアイテムの詳細ページを表示するときにのみ起動する必要がある場合があります。 最終的に、アイテムを武器として使用するときにターゲットの正しいリストを取得できるように、すべてのコンポーネントをコンテナにまとめるにはどうすればよいですか?武器をアイテムとして使用できる時期を知っていますか?または、アイテムが提供するボーナスをキャラクターオブジェクトに適用するには? うさぎの穴の奥まで行きすぎたような気がして、目の前の簡単な解決策がつかめません。(それがまったく意味をなさない場合)。 同様に、ここからベストアンサーを実装すると、同じ質問がたくさんあるように感じます。 リレーショナルデータベース内の使用可能な在庫/オブジェクト/アイテム(カタナなど)の複数の「用途」(たとえば武器)をモデル化する方法

2
衝突システムの実装
まともな衝突システムを実装するための良い方法が何であるかを知りたいだけです。基本エンティティクラスから継承されたクラスとして?現在私は行き詰まっているので、自分のアイデアよりも優れたアイデアをいくつか使用することができます。 どんな助けでもありがたいです! 編集:すみません、それは2D衝突ですが、正直なところ、特定の衝突方法を探していません。実装ラインについてもっと調べています。次のような衝突システムを実装する一般的な方法のいくつかに興味があるだけです。 衝突システム全体を独自のクラスにする必要がありますか?何が継承可能であるべきですか? これらは私の質問の一部です。混乱させて申し訳ありません。

1
ネットコード:予想される最大レイテンシとパケットロスの目標は何ですか?
ビデオゲームのネットコードを作成する場合、どのようなレイテンシターゲットとパケット損失率を設計しますか? 具体的には、現時点ではローカルネットワークでのみネットコードが機能しています。WANEMを使用してパケット損失と遅延をシミュレートする予定ですが、最大値と平均値に何を使用すればよいかわかりません。

1
XNAでは、組み込みのゲームコンポーネントクラスを使用する必要がありますか?
私はWindow Phone 7のXNAゲームを始めたばかりです。Flashゲームの場合、AS3から移植する独自のフレームワークがありますが、XNAに組み込まれているゲームコンポーネントのものを見つけました。だから私はこれを使うべきですか?Entityクラスはゲームコンポーネント/描画可能ゲームコンポーネントを拡張する必要がありますか?私のAS3コードを移植するだけでより速くなると確信していますが、この組み込みのものにはいくつかの利点があると思いましたか? 更新:それらを使用しないことにしました。私が説明した方法で使用することを意図しているようには見えません。

3
複数のコンテナーにゲームオブジェクトを格納する
光でDRY、それだけで一つの容器に関連したゲームオブジェクトのコレクションを格納するのが望ましいと思われます。ただし、さまざまなコンテキストでこれらのオブジェクトのサブコレクションが必要になる場合があります。これらの特定のサブセットを特定のより適切なコンテナに保存するのが賢明な場合があります。これにより、たとえばオブジェクトがゲームの世界から削除された場合など、コンテナー全体でオブジェクトを追跡する作業が増加します。 そのような設計を単純化する可能性は何ですか?そして典型的なトレードオフは何ですか? 説明する: マルチプレーヤーロールプレイングゲームでは、サーバーは、IDによる検索に適したマップにゲームキャラクターのコレクションを保持する場合があります。 world map<id, Character> allCharacters キャラクターは特定のゲームレベルに常駐することもあります。レベルに存在するすべての文字を識別するために、現在そのレベルに存在する文字を保持する各レベルのコンテナを導入することが適切に思えるかもしれません。このようにして、そのレベルのすべてのキャラクターに共通のロジックを実行できます。 world map<id, Character> allCharacters [levels] level1 vector<Character> charactersOnPlayfield level2 vector<Character> charactersOnPlayfield ... さらに進んで、キャラクターがワールドと対話するとき、メッセージは範囲内のキャラクターにのみルーティングされるべきです。このインタレスト管理は、各レベルをセルのグリッドに分割することによって達成できます。各セルは、現在その上に立っているキャラクターを格納します。 world map<id, Character> allCharacters [levels] level1 vector<Character> charactersOnPlayfield [cells] cell1 vector<Character> charactersOnCell cell2 vector<Character> charactersOnCell ... level2 vector<Character> charactersOnPlayfield [cells] cell1 vector<Character> charactersOnCell cell2 vector<Character> charactersOnCell ... ... …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.