ライブラリとエンジンの違いは何ですか?


31

Scalaでの2Dゲーム開発を支援するためのライブラリに取り組んでいます。これまでのところ、有用なクラス、ファイルの読み込み、衝突検出、画像、スプライトなどのコレクションです。

それで、いつクラスライブラリではなくなり、エンジンになりますか?便利なフレームワークとゲームエンジンの違いはどこにあるのでしょうか?


それらは異なるレベルの抽象化の概念であるため、区別はできないと思います。「大きな」エンジンはまだフレームワークです。
アンドレパラメス

1
ゲームエンジンとフレームワークの違いはあまりありませんが、タイトルから、ライブラリとエンジンの違いは、明確に定義された大きな違いがあります。:このリンクは、それを合計gamefromscratch.com/post/2015/06/13/...を
Serapth

回答:


21

ここで人々が混乱するのは、一方が一般に他方で構成されているということだと思います。

それで、いつクラスライブラリではなくなり、エンジンになりますか?

決して。

有用なフレームワークとゲームエンジンの違いはどこにありますか?

なにもない。

では、答えを説明しましょう。ゲームエンジンはクラスライブラリで構成されています。ゲームエンジン内にあるからといって、クラスライブラリであることに変わりはありません。ライブラリは、ゲームエンジン内の特定のニーズに取り組むための便利なフレームワークです。完全なゲームのニーズを伴うフレームワークは、ゲームエンジンです。

ゲームエンジンの例を次に示します。

  • アンリアルエンジン
  • 現実エンジン
  • ソースエンジン
  • 地震エンジン
  • Unityエンジン

そして、ライブラリのいくつかの例

  • ノボデックス(物理学)
  • FMOD(オーディオ)
  • Havok(物理学)
  • Ogre3D(レンダリング)
  • BINK(ビデオライブラリ)
  • Direct3D(グラフィックス)
  • OpenGL(グラフィックス)
  • DirectSound(オーディオ)
  • XInput(入力)

お役に立てれば


1
レンダリングエンジンとグラフィックライブラリの違いはどうですか?:p
ザキードイツ語

1
@Zaky German-Ogre3Dは、FMODがオーディオの「エンジン」であるように、グラフィックスの「エンジン」です。ただし、これらはゲームエンジンではなく、たとえば、ユーザー入力、ネットワーク接続などを処理しません。ここで、混乱の一部が発生する可能性があると思います。この意味で、ライブラリ、モジュール、コンポーネント、またはエンジンを交換できます。ただし、これらは「ゲームエンジン」ではありません。グラフィックスライブラリは、Direct3Dに似たものか、Direct3Dを介したシンAPIに似たものになりますが、直接レンダリングは行いません。OpenGLとその周辺のラッパーもグラフィックライブラリ領域に分類されます。
ジェームズ

14

実際には、どちらの用語(または関連する用語「フレームワーク」)についても具体的な定義はありません。ソフトウェアパッケージのさまざまな微妙な違いを解釈し、分類を割り当てる方法は数百通りあります。

私は個人的に「ライブラリ」を比較的小さく指向性のある機能セットを提供するものと見なしますが、「フレームワーク」はより多くのまたはより広範な機能を提供し、「エンジン」は同じ(またはそれ以上)を提供し、通常は付属の関連ツール。

他の人が同じ用語を個人的に解釈して、「エンジン」が「ライブラリ」よりも多くの、またはより高いレベルの機能を提供することを安全に感じるほど十分に見たことがあります...あなた次第です。


フレームワークと他のライブラリには具体的な違いがあります。これらは前者のWikiページにリストされています。簡潔に言うと、フレームワークはアプリケーションのフローを制御し、コードをそれにプラグインします。他のライブラリでは、フローを制御してそのコードを呼び出します。
アンドレパラメス

1
私はその決定的なものとは思わないでしょう。ウィキペディアには「ゲームエンジン」のページもあり、「ライブラリ」や「フレームワーク」と同じように、これらの用語はウィキページの説明に準拠する方法と同じように使用されます。経験。それはまだ非常に手で波立っています。
ジョシュ

2

ライブラリとエンジンの間の線が非常に薄く、ぼやけたものになることがあるため、これは難しい質問です。ライブラリがエンジンに変わるポイントは、特定のゲーム、または特定のタイプのゲーム向けになったときです。

たとえば、Unrealエンジン(またはSource、またはQuake)はFPSゲームに使用するように設計されています(他のゲームにも使用できますが、エンジンに対してある程度の時間を費やす必要があります)。Ogre3d(またはDirectx、SDL、またはその他の一般的なライブラリ)を使用して、コードの主要部分をリッピングしたり、回避したりすることなく、あらゆるタイプのゲームを作成できます。

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