Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I want to try my hand at writing a 3D game. However I don't want to start at such a low level of drawing individual triangles and writing my own 3D object loader and so on. I've heard of things like Irrlicht, Crystal Space 3D, and Cafu, but I don't have any experience with any of them. I'm looking for suggestions from people who have experience with these or other engines on which ones are well written, and are easy to get started using, without having to learn a ton of 3D math theory and how GPUs work internally.

share|improve this question

closed as not constructive by Sean Middleditch, Byte56, Darth Satan, Tetrad Mar 26 '13 at 23:17

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
While it may have been closed, this question was very helpful to me. –  Caleb Jares May 12 '13 at 15:11

9 Answers 9

The obvious initial suggestion is Ogre3D.

share|improve this answer
    
Have you had any experience with it? Is it fairly stable, well written, and good for 3D beginners? I can easily google up a list of 3D engines (as you see from my question), I'm looking for more insight into which is a good choice, and why. Thanks. –  davr Jul 14 '10 at 19:27
1  
But Ogre3D isn't an engine. It is a 3d rendering library. You have to either choose an engine that's built on ogre or build your own. –  Fire Jul 14 '10 at 19:27
3  
I've had extensive experience with Ogre3d; It's very stable and well written, and does a great job of taking care of mundane tasks (scene culling, mesh loading, billboards/particles). Fire is correct in that it's not a Game Engine; but Ogre can be (and often is) incorporated with other libraries to make one. It's a fantastic step above "drawing individual triangles and writing my own 3D object loader", but it is just a rendering library. If that's what you want, it's a great library with an active and supportive community. –  Karantza Jul 14 '10 at 19:32
3  
@Fire OGRE: Object-oriented Graphics Rendering Engine. It's an engine. It has singletons all over the place. Definitely an engine. –  Ricket Sep 26 '10 at 14:43
3  
@Ricket Yes, a graphics engine, but not a game engine which is what he most probably meant as this is strongly emphasized in the ogre docs. Also the singleton (anti)pattern certainly has nothing to do with it being an engine or not. –  Raoul Nov 4 '10 at 16:17

In terms of game engines:

  • Torque3D: Lots of features, but some would consider the code difficult to work with.
  • C4 Engine: Inexpensive, excellent author support, but the tools could use a bit of work.
  • DIY: Select a set of libraries and glue them together with your game.

Since Ogre3D was suggested, there also exists a light-weight alternative Horde3D.

Pros:

  • The design is sound and will likely outperform Ogre3D for heavy rendering (if it doesn't already)
  • C API, making bindings for languages like Python simple and easy to maintain (internal code is C++)

Cons:

  • Requires at least OpenGL 2.0 support
  • Smaller community
  • Unstable code base (major architectural changes are still occurring)
share|improve this answer
2  
Avoid Torque 3D if you value your sanity. The scripting engine is a muddled nightmare, very frustrating to work with. –  Jared Updike Jul 31 '10 at 15:25

The obvious choice, if Ogre3D is too low level for you, would be NeoAxis: http://www.neoaxisgroup.com/

It's powered by Ogre, but is a complete game development platform.

It's targeting .NET so you can use C#, managed C++, VB.

So go for that. :)

Ogre3D is able to run on a range of mobile devices, like iPhone and Android. So it's not too big.

Don't mistake size for performance.

I am not sure if IrrLicht has an official iPhone support, but Ogre3D does.

share|improve this answer
    
If it's on .NET can't you add IronPython to the list of languages? Python is a fabulous scripting language. –  Jared Updike Jul 31 '10 at 15:28
1  
.NET? Doesn't that rule out cross-platform? –  davr Aug 2 '10 at 16:47
    
.Net doesn't, but Neo-Axis uses C++/CLI which does. –  jsimmons Aug 7 '10 at 2:44
    
I talked to the Neoaxis lead developer today, and they're announcing Mac OS X support this September. :) –  jacmoe Aug 7 '10 at 16:55

Irrlicht provides a bit more than Ogre3D, and at the same time is a bit more hands-on (e.g. it doesn't feel like you're just "starting an engine" and watching it run, it feels more like you're the one running commands, as it should be in my opinion).

I think it would be great to start with!

share|improve this answer

My Opinion (only for open source 3D engines):

  • Irrlicht:
    • Light 3D engine
    • Clean C++ without dependencies and no STL.
    • Not very well documented but there are good tutorials.
    • Very small so you can customize it easily.
    • No OpenGL 3.X driver, Direct X 10.X or 11.X available in the official SDK.
    • Very good for mobile development;
    • Good community
    • Few extensions available
  • Ogre3D:
    • Big 3D engine
    • It uses modern C++ such as STL, exceptions and RTTI
    • Good documentation (There are published books).
    • Many renderers (OpenGL, DirectX and OpenGL ES...).
    • Ogre3D have many extensions as CEGUI or Bullet integration, Tree nodes...
    • But more difficult to extend Ogre3D if you want something specifics.
    • Big community
    • Many extensions
  • Crystal space: An old design and difficult to use. After few days, I stopped using this engine.
  • Horde3D
    • Small engine
    • Modern design
    • Light community
    • No extensions
  • Blendelf
    • Small engine with some dependencies
    • Modern design with moderns effects as DOF or HDR ...
    • OpenGL only
    • Light community
    • Bullet integration for physics
    • You use lua to pilot this engine3D

TL;DR:

  • For a desktop game (or future commercial game): Ogre3D
  • For a first game: Irrlicht
  • For mobile development: irrlicht (Ogre3D is too big)
  • For sexy effects: Blendelf
share|improve this answer
    
To be honest I wouldn't recommend Irrlicht for mobile development. It does too many memory-allocations and offers little-to-no custom memory-allocation implementations. The startup-time due to the nearly 60 000 allocations done at startup is a big issue. –  Simon May 8 '11 at 13:04
    
I use Irrlicht on Android and IOS and startup time is not a big issue... Texture loading is far longer than alloc... –  Ellis May 8 '11 at 20:47
    
@Simon could you explain what you're referring to with "custom memory-allocation implementations"? What is that, and why would you want it? –  Aerovistae Jun 9 '12 at 17:14
    
@Aerovistae Memory allocation requires calls to the operating system, it's a very costly operation. Usualy when creating a game engine, you'd want to do your own memory management, f.e. you'd allocate a big chunk of memory once and then you'd distribute that memory in the program yourself. That way you're only moving pointers around and not calling the kernel each time you want extra memory. It's a fairly advanced topic and requires advanced pointer aritmetic especially if you want some sort of an anti fragmentation mechanism. –  dreta Jun 9 '12 at 20:41
2  
So when Simon says he wouldn't recommend it because it doesn't offer custom memory-allocation implementations, really this doesn't apply to a beginner, or even to most intermediate developers? –  Aerovistae Jun 9 '12 at 20:49

Open Scene Graph is a pretty good, very well designed cross-platform 3D engine. Contrary to Ogre3D, for example, it does not provide "game engine" features, and concentrates on being a very nice abstraction on top of OpenGL.

  • It is quite lightweight, and does not force a framework on you: you can use as little or as much of it as you want, and use it through SDL, SFML, wxWidgets, QT...
  • It is a great learning experience: as you learn the library, you understand more and more about the underlying OpenGL and the way it has been designed
  • Pretty much ready to use: it has loaders for mainstream 3D formats
  • Shaders friendly

Have a look at the extensive list of samples.

share|improve this answer

I know you asked for C++, but Panda3D also works with C++, even if it's at first targeted to work with python. It is a game engine, but whatever...

share|improve this answer

Good answers so far, but I'll add Marmalade. It does mobile pretty well. A bunch of large studios have released console game with it, so it's got credentials. There is even a unity-like editor built on top of it, Shiva3D, which allows for cross-platform as well.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.