Ogre
why ogre
- currently the most successful and popular opensource engine
- used by many successful projects : gallery showcase
- used in several commercial applications (ankh,jack-keane,pacific storm,... , non-gaming applications...)
- featured in several popular books
- has repeatedly taken part in google summer of code(C++ How To Program, 6th Edition Pro Ogre 3D Programming )
- big, helpful and experienced community : forum ( 190.000+ articles, 13.000+ registered users) wiki irc://irc.freenode.net/Ogre3D
- features superior to almost any other engine
- mesh LOD, material LOD, various shadow techniques, shader-support for cg,hlsl and glsl
- material scripting, particle scripting
- hardware accelerated skeletal anim, anim blending, facial anim support
- support for threaded background loading
- many powerful addons with dedicated addon-forums
- focused on good code-design, see about or the quote below
- well documented : manual api
- opensource, LGPL
IMHO ogre3d is currently the most powerful opensource 3d engine. it might not be that easy to learn as more limited engines, but its design is good and it is definitely a good choice in the long run. We've used it for both iris2 (3d ultima online client) and sfz (spacegame), but with lua instead of python, and are very happy with it. It is even used by several commercial application (possible with lgpl license), such as pacific storm and ankh, and some non-gaming applications as well. There is a book soley about ogre, and since recently also features in the popular "C++ How To Program" series of books (since 6th edition, see ogre hp)
quote from ogre about page
Why should I consider using OGRE (rather than the other zillion 3D engines out there)? Many other engines, whilst technically impressive, lack the cohesive design and the consistent documentation to allow them to be used effectively. Many of them have long features lists, but have the feel of a bunch of tech demos lashed together with twine, with no clear vision to hold them together. Like any other software system this becomes their downfall as they become larger. Most other engines are also designed for one particular style of game or demo (e.g. first-person shooters, terrain roamers).
OGRE is different. OGRE is design-led rather than feature-led. Every feature that goes into OGRE is considered throughly and slotted into the overall design as elegantly as possible and is always fully documented, meaning that the features which are there always feel part of a cohesive whole. Quality is favoured over quantity, because quantity can come later - quality can never be added in retrospect. OGRE uses sound design principles learned, tried and tested many times in commercial-grade software - the object-orientation mentioned in it's moniker is just one of those approaches - frequent use of design patterns is another. The core development team is kept deliberately small, and all of its members are veteren software engineers with many years of real-world experience. Patches are welcomed from community, but they undergo a strict review for both quality and cohesion with the Ogre philosophy before being accepted.
OGRE does not assume what type of game or demo you want to make. It uses a flexible class hierarchy allowing you to design plugins to specialise the scene organisation approach taken to allow you to make any kind of scene you like. Want to render indoor levels fast? Fine, use the BSP/PVS plugin scene manager which has already been written. Want an outdoor landscape? Again, use another plugin scene manager. The rest of the engine continues to function exactly as before.
libs
- collision detection and physics : (most phys engines also have collision detection)
- ogre-addon : ogreode : http://ode.org ogre-binding for ode
- gangsta wrapper http://sourceforge.net/projects/gangsta ogre binding for several phys libs
- ogre-Novodex binding http://nxogre.betajaen.com/ (see also ogre-addons for another binding)
- ogre-addon : ogrebullet : http://www.continuousphysics.com/Bullet/ bullet phys engine
- ogre-addon : ogreopcode : http://www.codercorner.com/Opcode.htm binding for Opcode (collision detection only)
- ogre-addon : ogrenewt : http://www.newtondynamics.com/ binding binding for newtondynamics
- ogre-addon : ogretokamak : http://www.tokamakphysics.com/ binding binding for tokamak
- sound :
- openal http://openal.org/
- fmod http://fmod.org/ (free for noncommercial)
- SDL http://libsdl.org/ SDL-mixer http://www.libsdl.org/projects/SDL_mixer/
- networking :
- enet http://enet.cubik.org/
- SDL-net http://www.libsdl.org/projects/SDL_net/
- raknet http://www.rakkarsoft.com/
- user interface :
- cegui http://crayzedsgui.sourceforge.net/ (ogre default)
- navi http://www.ogre3d.org/phpBB2/viewtopic.php?t=32384
- betagui http://www.ogre3d.org/phpBB2/viewtopic.php?t=25853
- quickgui http://www.ogre3d.org/phpBB2/viewtopic.php?t=30547
- guichan http://guichan.sourceforge.net/
- opengui http://opengui.rightbracket.com/
- input handling
- OIS http://www.ogre3d.org/wiki/index.php/OIS (ogre default)
- SDL http://www.libsdl.org/
- artificial intelligence and pathfinding
- you'll probably have to code an ai according to the rules of your game yourself, but hare are a few links :
- worldmind http://play.zapto.org/wmdb/main.php
- http://www-cs-students.stanford.edu/~amitp/gameprog.html#ai
- pathfinding lib : http://www.grinninglizard.com/MicroPather/
there are also game engines embedding ogre :
python + ogre
it seems to be a bit hidden inside the ogre forums and wiki, but here are a few links to get you started : http://www.ogre3d.org/phpBB2addons/viewforum.php?f=3 http://www.ogre3d.org/wiki/index.php/Introduction_to_pyogre http://www.ogre3d.org/wiki/index.php/pyogre_Beginner_Tutoria l_1 http://www.ogre3d.org/wiki/index.php/pyogre_Beginner_Tutoria l_2 ... http://www.ogre3d.org/wiki/index.php/pyogre_Tutorial1 http://www.ogre3d.org/wiki/index.php/pyogre_Tutorial2 ...
it's available with the rest of the ogreaddons from cvs : http://www.ogre3d.org/index.php?option=com_content&task= view&id=17&Itemid=141