1. ホーム
  2. architecture

[解決済み】コンポーネントベースのゲームエンジン設計【クローズド

2022-03-26 15:42:23

質問

ゲームエンジンの設計(特に2Dゲームエンジンに焦点を当てていますが、3Dゲームにも適用できます)について調べていて、どのように進めるかについていくつかの情報に興味を持っています。 多くのエンジンが、従来の深いオブジェクトの階層構造から、最近ではコンポーネントベースのデザインに移行していると聞いています。

この種のデザインがどのように実装されることが多いかについて、何か良いリンク先をご存知ですか? 私が見たのは 階層を進化させる しかし、この2つのモデルの間で考えを切り替えるには、少し努力が必要であることがわかりました。

これに関する良いリンクや情報があれば、書籍でも構いませんが、ここでのリンクや詳細な回答が望ましいと思います。

解決方法は?

2013-01-07 更新 : コンポーネントベースのゲームエンジンと、(私の意見では)優れたリアクティブ・プログラミングのアプローチをうまく組み合わせたものを見たい場合は、次のものを見てください。 V-Playエンジン . これは、QTsを非常にうまく統合しています。 QMLプロパティバインディング 機能を提供します。

うちの大学でもゲームでCBSEの研究をしていて、何年もかけて資料を集めました。

ゲームにおけるCBSEの文献。

  • ゲームエンジンアーキテクチャ
  • ゲームプログラミングの珠玉の技4:ゲーム・エンティティを管理するシステム ゲーム
  • ゲーム・プログラミング・ジェムズ 5: コンポーネント・ベースのオブジェクト管理
  • ゲームプログラミングジェムズ5:汎用コンポーネントライブラリ
  • ゲームプログラミングジェムズ6:ゲームオブジェクトコンポーネントシステム

  • オブジェクト指向のゲーム開発
  • ゲームエンジンの設計とJavaによる実装 (ドイツ語)

C#で作られたコンポーネントベースのゲームエンジンの非常に優れた、きれいな例として Elephant ゲーム フレームワーク .

コンポーネントとは何かということを本当に知りたい方は、こちらをお読みください。コンポーネントベースのソフトウェア工学を読んでください。 そこでは、コンポーネントを以下のように定義しています。

<ブロッククオート

A ソフトウェア・コンポーネント は、コンポーネントモデルに準拠し、構成基準に従って変更することなく独立して配備および構成できるソフトウェア要素です。

A コンポーネントモデル 特定のインタラクションを定義する および構成基準について説明する。A コンポーネントモデル実装 は、モデルに準拠したコンポーネントの実行をサポートするために必要な、実行可能なソフトウェア要素の専用セットです。

A ソフトウェアコンポーネントインフラストラクチャ は、相互作用するソフトウェアコンポーネントのセットで、これらのコンポーネントとインターフェースを使用して構築されたソフトウェアシステムまたはサブシステムが、明確に定義された性能仕様を満たすことを保証するために設計されたものです。

2年間の経験で感じたこと オブジェクト指向プログラミングは、単に行き詰まっただけです。コンポーネントがどんどん小さくなり、無駄なオーバーヘッドを多く含んだコンポーネントに詰め込まれた関数のようになっていくのを見ながら、私の警告を思い出してください。使用方法 関数型反応プログラミング の代わりに。また、私の新しいブログ記事(書いているうちにこの質問にたどり着きました :) を見てください。 私がコンポーネントベースのゲームエンジンアーキテクチャからFRPに切り替えた理由 .

ゲーム用紙のCBSE。

ゲームのCBSEのWebリンク(関連性によって並べ替え)。