Ogre

From Ghoulwiki
Revision as of 16:14, 5 December 2009 by Ghoulsblade (talk | contribs) (why ogre)
Jump to: navigation, search

this is about the opensource 3d engine http://ogre3d.org

why ogre

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

about ogre

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

addons . https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk

there are also game engines embedding ogre :

other possibly interesting libs :

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 :

it's available with the rest of the ogreaddons from cvs :

lua + ogre

ogre in game engines

things you might want to consider before deciding on an engine

  • are there more screenshots anywhere ?
  • are there a FEW (not only one) big projects using it ?
  • is there an irc channel to get instant help ?
  • is there an active forum to get long-time help ?
  • are there community-developed addons/plugins ?
  • if there is a custom model format, are there exporters for all mayor modelling apps ? (blender,3dsmax,maya,wings3d)
  • is skeletal animation supported ?
  • is blending of multiple animations supported ? (shooting while running)
  • what shader dialects/languages are supported ? (cg,hlsl,glsl)
  • is rendering to texture supported (rtt) ?
  • is there support for particle effects and can they be scripted ?
  • is there a material script format, or are all materials hardcoded or in meshes ?
  • is there a LOD (level of detail) system for materials ?
  • is there a LOD (level of detail) system for terrain ?
  • is there a LOD (level of detail) system for meshes ?
  • is there support for background (threaded) loading of meshes/materials/world geometry ?
  • is there support for unicode fonts and input ?
  • is post-processing supported ? (full-screen effects like drunken...)
  • are realtime textures like video feed supported ?
  • is hardware-accelerated skinning supported for skeletal animations ?
  • is there support for facial animation ?
  • is there some automated sorting for transparent objects ? (transparency is tricky, can't just use zbuffer as usual)
  • is there support for batching geometry ?


(with "is there support" i don't mean just "it is technically possible", since all of this is "technically possible" with raw opengl, but the sense of an engine is making these things EASIER)