C ++ゲーム開発用の使いやすいクロスプラットフォーム3Dエンジン?[閉まっている]


73

3Dゲームの作成に手を取りたいです。ただし、個々の三角形を描画し、独自の3Dオブジェクトローダーを作成するなどの低レベルから始めたいとは思いません。IrrlichtCrystal Space 3DCafuのようなことを聞​​いたことがありますが、私はそれらのどれにも経験がありません。これらのエンジンや他のエンジンを使いこなしており、3D数学理論やGPUが内部でどのように機能するかを学ぶ必要なしに使い始めやすいエンジンの経験がある人からの提案を探しています。


16
閉じられたかもしれませんが、この質問は私にとって非常に役に立ちました。
カレブジャレス

4
とても良いスレッドです。stackexchangeがこの種の質問を好まない理由はわかりません。
スティーブ

2
彼らは私が思う質問を閉じるのが好きです
フランククランストン


回答:


48

私の意見(オープンソース3Dエンジンのみ):

  • 誤った
    • ライト3Dエンジン
    • 依存関係がなく、STLがないC ++をクリーンにします。
    • あまりよく文書化されていませんが、良いチュートリアルがあります。
    • 非常に小さいので、簡単にカスタマイズできます。
    • 公式SDKにはOpenGL 3.Xドライバー、Direct X 10.Xまたは11.Xはありません。
    • モバイル開発に非常に適しています。
    • 良いコミュニティ
    • 利用可能な拡張機能はほとんどありません
  • Ogre3D
    • ビッグ3Dエンジン
    • STL、例外、RTTIなどの最新のC ++を使用します
    • 優れたドキュメント(出版された本があります)
    • 多くのレンダラー(OpenGL、DirectX、OpenGL ES ...)。
    • Ogre3Dには、CEGUIまたはBullet統合、ツリーノードなどの多くの拡張機能があります...
    • しかし、何か特別なものが必要な場合、Ogre3Dを拡張することはより困難です。
    • 大きなコミュニティ
    • 多くの拡張機能
  • クリスタルスペース:古いデザインで使いにくい。数日後、このエンジンの使用を停止しました。
  • Horde3D
    • 小型エンジン
    • モダンなデザイン
    • ライトコミュニティ
    • 拡張機能なし
  • Blendelf
    • いくつかの依存関係を持つ小さなエンジン
    • DOFまたはHDRとしてのモダン効果を備えたモダンなデザイン...
    • OpenGLのみ
    • ライトコミュニティ
    • 物理学のための弾丸統合
    • luaを使用してこのengine3Dを操縦します

TL; DR:

  • デスクトップゲーム(または将来の商用ゲーム):Ogre3D
  • 最初のゲーム:Irrlicht
  • モバイル開発の場合:irrlicht(Ogre3Dは大きすぎます)
  • セクシーな効果の場合:Blendelf

正直に言うと、モバイル開発にはIrrlichtをお勧めしません。あまりにも多くのメモリ割り当てを実行し、カスタムメモリ割り当ての実装をほとんどまたはまったく提供しません。起動時に行われるほぼ60 000の割り当てに起因する起動時間は大きな問題です。
サイモン

私はAndroidとIOSでIrrlichtを使用していますが、起動時間は大きな問題ではありません...テクスチャのロードはallocよりもはるかに長いです...-
Ellis

@Simonは、「カスタムメモリ割り当ての実装」で何を参照しているか説明できますか?それは何ですか、なぜそれが欲しいのですか?
temporary_user_name

2
@Aerovistaeメモリの割り当てにはオペレーティングシステムへの呼び出しが必要であり、非常にコストのかかる操作です。通常、ゲームエンジンを作成するときは、独自のメモリ管理を行う必要があります。一度に大量のメモリを割り当ててから、そのメモリをプログラムで自分で配布します。そうすれば、ポインタを移動するだけで、余分なメモリが必要になるたびにカーネルを呼び出すことはありません。これはかなり高度なトピックであり、特に何らかのフラグメンテーション防止メカニズムが必要な場合は、高度なポインタ演算が必要です。
-dreta

3
サイモンがカスタムメモリ割り当ての実装を提供していないので推奨しないと言ったとき、実際にはこれは初心者にも、ほとんどの中間開発者にも当てはまりませんか?
temporary_user_name

21

最初の明らかな提案はOgre3Dです。


それを使った経験はありますか?かなり安定していて、よく書かれていて、3D初心者に適していますか?私の質問からわかるように、3Dエンジンのリストを簡単に検索することができます。どの選択肢が適切か、そしてその理由について、より多くの洞察を探しています。ありがとう。
-davr

1
しかし、Ogre3Dはエンジンではありません。これは3Dレンダリングライブラリです。ogreで構築されたエンジンを選択するか、独自のエンジンを構築する必要があります。
火災

4
私はOgre3dで広範な経験があります。それはだ非常に安定しており、よく書かれ、そして日常的なタスク(シーンカリング、メッシュロード、看板/粒子)の世話をしての素晴らしい仕事をしていません。火はゲームエンジンではないという点で正しいです。しかし、Ogreは他のライブラリに組み込むことができます(多くの場合、組み込まれています)。「個々の三角形を描画して独自の3Dオブジェクトローダーを作成する」上記の素晴らしいステップですが、それは単なるレンダリングライブラリです。それがあなたが望むものであるなら、それは活発で支援的なコミュニティを持つ素晴らしいライブラリです。
カランツァ

3
@Fire OGRE:オブジェクト指向のグラフィックスレンダリングエンジン。エンジンです。至る所にシングルトンがあります。間違いなくエンジン。
リケット

3
@Ricketはい、グラフィックエンジンではありますが、ゲームエンジンではありません。ゲームエンジンではありません。これはogreドキュメントで強く強調されているためです。また、シングルトン(アンチ)パターンは、エンジンであるかどうかとはまったく関係がありません。
ラウル

7

Open Scene Graphは、非常に優れた、非常に適切に設計されたクロスプラットフォーム3Dエンジンです。たとえば、Ogre3Dとは異なり、「ゲームエンジン」機能を提供せず、OpenGLの上に非常に優れた抽象化を行うことに集中しています。

  • それは非常に軽量であり、フレームワークを強制しません:必要なだけ使用することができ、SDL、SFML、wxWidgets、QTで使用できます...
  • これは素晴らしい学習体験です。ライブラリを学習するにつれて、基礎となるOpenGLとその設計方法について理解を深めることができます。
  • すぐに使用できます:主流の3D形式のローダーがあります
  • シェーダーに優しい

サンプル広範なリストをご覧ください


4

ゲームエンジンに関して:

  • Torque3D:多くの機能がありますが、コードを扱うのが難しいと考える人もいます。
  • C4エンジン:安価で優れた作成者サポート。ただし、ツールには多少の作業が必要になる場合があります。
  • DIY:ライブラリのセットを選択し、ゲームと一緒に接着します。

Ogre3Dが提案されたため、軽量の代替Horde3Dも存在します。

長所:

  • 設計は健全であり、重いレンダリングでOgre3Dを上回る可能性があります(まだ実現していない場合)
  • CAPI。Pythonのような言語のバインディングをシンプルで保守しやすいものにします(内部コードはC ++です)

短所:

  • 少なくともOpenGL 2.0サポートが必要
  • より小さなコミュニティ
  • 不安定なコードベース(主要なアーキテクチャの変更がまだ発生しています)

2
健全性を重視する場合は、Torque 3Dを避けてください。スクリプティングエンジンは混乱した悪夢であり、非常にイライラします。
ジャレッドアップダイク

4

IrrlichtはOgre3Dよりも少し多くの機能を提供しますが、同時にもう少し実践的です(たとえば、「エンジンを始動している」ように感じず、実行しているように感じます。私の意見ではそうであるように、1つのコマンドを実行しています。

そもそも素晴らしいと思います!


4

あなたがC ++を要求したことは知っていますが、Panda3DはC ++でも動作します。たとえそれが最初はPythonで動作するようにターゲットを絞っていたとしてもです。ゲームエンジンですが、何でも...


2

Ogre3Dが低すぎる場合の明らかな選択は、NeoAxisです:http : //www.neoaxisgroup.com/

Ogreを搭載していますが、完全なゲーム開発プラットフォームです。

.NETを対象としているため、C#、マネージC ++、VBを使用できます。

そのために行きます。:)

Ogre3Dは、iPhoneやAndroidなどのさまざまなモバイルデバイスで実行できます。大きすぎません。

サイズとパフォーマンスを間違えないでください。

IrrLichtが公式のiPhoneサポートを持っているかどうかはわかりませんが、Ogre3Dはサポートしています。


.NET上にある場合、IronPythonを言語のリストに追加できませんか?Pythonはすばらしいスクリプト言語です。
Jared Updike

2
。ネット?それはクロスプラットフォームを排除していませんか?
-davr

.Netは使用しませんが、Neo-Axisは使用するC ++ / CLIを使用します。
jsimmons

今日、私はNeoaxisの主任開発者と話をしましたが、彼らは今年9月にMac OS Xのサポートを発表しています。:)
jacmoe


1

これまでのところ良い答えですが、マーマレードを追加します。モバイルはかなりうまくいきます。多数の大規模スタジオがコンソールゲームをリリースしているため、資格があります。その上に構築された統一的なエディタであるShiva3Dもあり、クロスプラットフォームも可能です。

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