Friday, March 27, 2015

Ogre3D vs. OpenSceneGraph vs. Irrlicht vs. Panda3D vs. Monogame vs.OpenGL Free for all

So, I need to get this figured out and soon. I am trying to decide what the best option for making a game engine for my independent study course would be. The long and short of it is that Ogre3D is working on my wife's desktop, but I cannot build it for my mac, and I need to be able to work on it wherever/whenever. So here's a grand shootout of different libraries, with all their pros and cons laid out, with my own conclusions about what I am going to use after. Disclaimer: These are basically my combined thoughts from when I tried to work with it, or from DevMaster.net. Your mileage may vary, I'm just trying to aggregate my thoughts into one spot. On with the tables and lists!
Engine:Ogre3DOpenSceneGraphIrrlichtPanda3DMonogameOpenGL
Pros:
  • Platforms: Big 3, iOS, Android, WebGL
  • Comprehensive, has scene management, resource loading, many built in shaders
  • Abstracts most meshing functions
  • Has extensions for input, GUI, physics
  • Well Documented API, many tutorials, books
  • Platforms: Big 3, Playstation
  • Scene Management, resource loading
  • Many Plugins
  • Platforms: Big 3, Xbox
  • Decent Tutorials
  • Easy to get up and running(see below)
  • Platforms: Big 3
  • Uses Python Extensively
  • Integrated tools for physics, AI, network, Audio, packaging
  • Platforms: Most of them
  • Comprehensive
  • Uses C#, my favored language
  • Decently supported
  • Can use OpenGL and DirectX
  • Complete and total control over my engine
  • Don't have to deal with installing except in the case of physics engine
Cons:
  • Poorly documented for Mac, so far impossible to set up
  • Must use 1.7 for set up, 1.8 for manual, 1.9 for available downloads, and 1.10 for latest features.
  • Many things for ease of use are simply missing.
  • Poor Community and Documentation
  • Poor support for procedural generation
  • Difficult to set up on Mac
  • Poor Documentation
  • Documentation lacking, especially for c++
  • Not easily set up on IDEs that are not Visual Studio
  • Because it uses integrated tools and is a full-stack engine, Panda3D needs to be disqualified for my purposes.
  • Have to make my own WebGL support
  • Not helping me learn better C++, which is part of this exercise
  • Unknown how easy it will be to install BulletSharp
  • The very definition of going to square one
  • Have to implement all resource loading from scratch
  • Might be too big a scope for a 6 week project

What it really seems to be coming down to is Monogame, OpenGL, or Irrlicht. I guess the game is then to figure out which one takes the least amount of time to install and get 10 rotating cubes on the screen. Once I have that down, I should be able to figure out what the best next step is. I'll update with my results once I get it done.
UPDATE: Ditching Monogame because OpenTK's been abandoned. Ditching Ogre3D because of its documentation. Haven't set up Irrlicht yet, but OpenGL/SDL is seeming like the way to go.

No comments:

Post a Comment