XNAがゲームエンジンと見なされないのはなぜですか?


13

ゲームエンジンと見なされるXNAが欠落しているのは疑問です。ゲームエンジンが行うべきすべてのことを行います(物理部分を除く)。また、ゲームエンジンに関するWikipediaの記事で定義されているすべての側面をサポートしています。

XNAがゲームエンジンと見なされないのはなぜですか?


19
@Miroそれは意味がありません。
共産主義のダック

2
ポイントは何ですか?必要なジョブを実行する場合は、それを使用します。そうでない場合は、しないでください。誰がそれをどう呼ぶか気にしますか?とにかく単なるラベルであり、主にマーケティングモンキーから使用されています;)
マイクセンダー

それはただのコメントだからです。共産主義のダックはこの質問の
Ali1S232

4
@Maik Semderそれはまったくラベルではありません。エンジンとフレームワークは2つの別個の別個のものであり、XNAは後者です。XNAはエンジンではないことを区別して理解しておくと便利です。そうしないと、XNAでエンジンを作成する必要が実際にある場合や、プラグインが提供されない場合に非常に混乱する場合があります。実際のエンジンのように機能を再生します。
-doppelgreener

3
@Maikこれは、それがどのように機能するかを理解する方法の一部です。私はドライバーと言います、あなたはそれが何であり、そうでないか、それが何をし、どのようにそれを使うことができるかを知っています。私がフレームワークと言ったとき、似たようなことが起こるはずです-しかし、フレームワークが何であり、何でないか(エンジン)を認識した場合のみです。これらの実用的な意味を考慮すると、私は主に「人々はそれをどう呼んでいるのか気にしているのですか?それはとにかく単なるラベルです」
-doppelgreener

回答:


28

Microsoft XNAはコンピューターゲームの開発と管理を容易にする、マイクロソフトが提供する管理されたランタイム環境を備えたツールのセットですXNAは、ゲーム開発者が「反復的な定型コード」書くことから解放し、ゲーム制作のさまざまな側面を1つのシステムに統合しようと試みます。

フレームワークとして設計されています-実際、XNAはMicrosoft XNAフレームワークです-技術的には、名前によるエンジンではありません。

「エンジン」はありません-気づいた場合、メインクラスをXNA.Framework.Gameから派生し、描画関数と更新関数を自分でオーバーライドする必要があります。すぐに使用できる中央レンダリングシステム、入力システム、オーディオシステムはありません。SpriteBatchと頂点クラスがあり、KeyboardStateがあり、オーディオクラスがいくつかあります。しかし、これらは低レベルの描画コードに対する抽象化にすぎません。

編集:有用性のために、エンジン、フレームワーク、ライブラリ、またはツールセットとしてラベル付けされている場合、なぜ重要なのですか?

物事をいくらかクリアするために:私はXNAでエンジンを開発しています。明らかに、ジョナサンが言及したように、アンリアルのようなものではそれができません。ただし、XNAにはないことが重要だと感じるいくつかの点があります。

プラグアンドプレイ:何らかのテンプレートを作成できるようにしたい-このHP、このメッシュ、このアニメーション、BOOMを持っている!ゲームにNPCがあります。

低レベルの非表示-XNAは既にこれを実行していますが、GameServiceProvidersをいじりたくありません。一緒に物を突き出したいだけです。

エンジンから分離されたゲーム-「ゲーム」クラスがあるかもしれませんが、ベースシステムからロジックとコードを分離したいと思います。if(player.hasitem(Item.SECRET_SWORD_OF_SECRETNESS)グラフィックスレンダラーのバッファーの更新と混在させたくありません。


描画と更新の設定をオーバーライドする必要がありますが、レンダリングエンジンがないことを意味するわけではありません。重要なのは、描画できるようにすべてのものを用意することです。それは2d GameEngine(私は本当に3dのものをチェックしませんでした)に劣らず、入力コントローラを持っていることを覚えている限り、Microsoftがそう命名したか、何らかの論理的な理由があるので、それはただのフレームワークです?
Ali1S232

1
@Gajet:しばらくの間、XNAでエンジンを作成する方法について議論がありますが、Unreal EngineやCryEngine については議論していないことを考慮してください。ゲームエンジンの共通の特徴は、ビットを差し込むだけで何かが進むことだと思います(TV Tropesは、この点でエンジンはかなりデータ駆動型であると主張しています)。対照的に、XNAでは基本的にすべての作業を自分で行うことができます。デバイスとインターフェイスするためにミドルウェアを作成する必要はありません。
-doppelgreener

1
さらに、私はまだゲームエンジンの明確な定義を見つけたとは思わないが、私が知っていることは、ゲームエンジンがあり、XNAは単にそれらがすることを何もしない(ミドルウェア、非常にシンプルな低レベルコンポーネント)。
-doppelgreener

@ジョナサン・ホッブス:今、あなたが話していることを見ることができますが、再びGameBryo(NetImmerse)を試してみましたが、それはゲームエンジンと考えられています質問のタイトルをwhat makes an sdk to be called a GameEngine?
Ali1S232

1
しかし、本当に独創的になりたいのであれば、既存のエンジンをフレームワークとして使用してエンジンを開発できます。多くの人が震度3の技術を取り入れて、より使いやすいエンジンを作りました。また、本当にしたい場合は、「エンジン」なしでゲームを作成することもできます。xnaをフレームワークと呼ぶ方が正確ですが、「エンジン」と区別することはわかりません。「フレームワーク」ほど強く定義されていないからです。
テトラッド

5

フレームワークは、特定の種類のアプリケーション用に構築された最小限のアーキテクチャを提供します。アーキテクチャの規定された目標を超えて、実装の詳細に関する仮定を最小限にします。クロスプラットフォームゲーム開発フレームワークは、「プラットフォームに関係なく(ほぼ)すべてのコンピューターゲームに共通するもの」を提供することを目標とし、XNA Framework(暗黙的に) 「(ほぼ)XNA CLRで実行するために書かれたすべてのコンピューターゲームに共通するもの」を提供することを目標としています。この焦点が非常に狭いことを考えると、彼らは免責でエンジン機能を含めることができました。これは、すべて「Framework」という見出しの下にバンドルされています。これは、ゲーム開発者が享受できる実装の特定の自由を示しているためです。

大まかに言えば、フレームワークはできるだけ有用でありながら、可能な限り無制限でなければなりません。一方、エンジンは通常、特定の機能に重点を置いており、使用する際には特定の制限があることに同意します。


2

「ゲームエンジン」を使用したことはありませんが、これについての理解は、特定のタイプのゲームを開発するための、事前定義された骨格ゲーム構造にバンドルされた事前定義されたツールセットとしての詳細です。そして、特定のタイプのゲームの開発のための構造がゲームエンジンの主な決定要因であることは確かであり、前述のウィキペディアの記事が魅力的なものであるように思われます。私にとって、XNAフレームワークは、AJAXのようなサードパーティのライブラリセットに似ており、既存のむき出しのプログラミング言語にビルド済みのルーチンを追加します。これらのライブラリルーチンを使用してプログラマが実行できることと実行できないことに関して、制限やガイドラインはありません。私の考えでは、それは決してエンジンに似ていません。それから私はビジネスソフトウェア/ウェブ中心のバックグラウンドから来ました、

XNAを使用してゲームアイデアのフレームワークを構築しましたが、C#を介して別のライブラリを使用しているように感じます。テストプログラムでハックアウトしたプロセスを使用して、Windowsおよび場合によってはXbox用の2つまたは3つのゲームを作成します。

だから、私が言ったように、これは私が「ゲームエンジン」であると理解したものとは遠く離れているので、この投稿に出会ったとき、なぜ誰かがその比較をするのか分かりませんでした。私が間違っている?

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