Difference between revisions of "Ogre"

From Ghoulwiki
Jump to: navigation, search
(python + ogre)
 
(27 intermediate revisions by the same user not shown)
Line 4: Line 4:
  
 
* currently the most successful and popular opensource engine
 
* currently the most successful and popular opensource engine
** used by many successful projects : [http://www.ogre3d.org/index.php?set_albumName=album07&option=com_gallery&Itemid=55&include=view_album.php gallery] [http://www.ogre3d.org/phpBB2/viewforum.php?f=11 showcase]
+
** used by many successful projects : [http://www.ogre3d.org/gallery/ gallery] [http://www.ogre3d.org/phpBB2/viewforum.php?f=11 showcase]
** used in several commercial applications ([http://www.ankh-game.com/ ankh],[http://www.jackkeane.com/ jack-keane],[http://www.pacificstorm.net/ pacific storm],... , non-gaming applications...)
+
** used in several commercial applications ([http://www.torchlightgame.com/ torchlight],[http://www.book-of-unwritten-tales.de/ book-of-unwritten-tales],[http://www.ankh-game.com/ ankh],[http://www.pacificstorm.net/ pacific storm],... , non-gaming applications...)
 
** featured in several popular books  ( [http://www.amazon.com/gp/product/0136152503?ie=UTF8&tag=ogre-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0136152503 C++ How To Program, 6th Edition] [http://www.ogre3d.org/ogrebookredirectlink.php Pro Ogre 3D Programming ] )
 
** featured in several popular books  ( [http://www.amazon.com/gp/product/0136152503?ie=UTF8&tag=ogre-20&linkCode=as2&camp=1789&creative=9325&creativeASIN=0136152503 C++ How To Program, 6th Edition] [http://www.ogre3d.org/ogrebookredirectlink.php Pro Ogre 3D Programming ] )
 
** has repeatedly taken part in [http://code.google.com/soc/2007 google summer of code]  
 
** has repeatedly taken part in [http://code.google.com/soc/2007 google summer of code]  
Line 39: Line 39:
 
== libs ==
 
== libs ==
  
 +
addons . https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk
 
* collision detection and physics :  (most phys engines also have collision detection)
 
* collision detection and physics :  (most phys engines also have collision detection)
 
** gangsta wrapper http://sourceforge.net/projects/gangsta  ogre binding for several phys libs
 
** gangsta wrapper http://sourceforge.net/projects/gangsta  ogre binding for several phys libs
Line 45: Line 46:
 
** ogre-addon : ogrebullet : http://www.continuousphysics.com/Bullet/ bullet phys engine
 
** 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 : 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 : ogrenewt : http://www.newtondynamics.com/ binding for newtondynamics
** ogre-addon : ogretokamak : http://www.tokamakphysics.com/ binding binding for tokamak
+
** ogre-addon : ogretokamak : http://www.tokamakphysics.com/ binding for tokamak
 
* sound :  
 
* sound :  
 
** openal http://openal.org/  
 
** openal http://openal.org/  
Line 52: Line 53:
 
** SDL http://libsdl.org/ SDL-mixer http://www.libsdl.org/projects/SDL_mixer/
 
** SDL http://libsdl.org/ SDL-mixer http://www.libsdl.org/projects/SDL_mixer/
 
* networking :  
 
* networking :  
** enet http://enet.cubik.org/  
+
** enet http://enet.bespin.org/ ([http://enet.cubik.org/ old url])
 
** SDL-net    http://www.libsdl.org/projects/SDL_net/
 
** SDL-net    http://www.libsdl.org/projects/SDL_net/
 
** raknet http://www.rakkarsoft.com/
 
** raknet http://www.rakkarsoft.com/
Line 60: Line 61:
 
** betagui http://www.ogre3d.org/phpBB2/viewtopic.php?t=25853
 
** betagui http://www.ogre3d.org/phpBB2/viewtopic.php?t=25853
 
** quickgui http://www.ogre3d.org/phpBB2/viewtopic.php?t=30547
 
** quickgui http://www.ogre3d.org/phpBB2/viewtopic.php?t=30547
 +
** mygui http://www.ogre3d.org/phpBB2/viewtopic.php?t=36096
 
** guichan http://guichan.sourceforge.net/   
 
** guichan http://guichan.sourceforge.net/   
 
** opengui http://opengui.rightbracket.com/
 
** opengui http://opengui.rightbracket.com/
 +
** RBGui http://www.rightbraingames.com/tech/ [http://ogre3d.org/phpBB2/viewtopic.php?t=32929&highlight= ogre forum thread]
 
* input handling   
 
* input handling   
 
** OIS    http://www.ogre3d.org/wiki/index.php/OIS (ogre default)
 
** OIS    http://www.ogre3d.org/wiki/index.php/OIS (ogre default)
Line 75: Line 78:
 
** yake : http://www.yake.org/
 
** yake : http://www.yake.org/
 
** goof : http://www.ogre3d.org/wiki/index.php/Game_Object_Oriented_Framework
 
** goof : http://www.ogre3d.org/wiki/index.php/Game_Object_Oriented_Framework
 +
** zen engine : http://www.indiezen.org/
  
see also http://lugre.sourceforge.net : a lua+ogre gamedev framework i am involved in
+
other possibly interesting libs :
 +
* http://plib.sourceforge.net/whats_inside.html
 +
* http://allegro.cc/  popular gamedev lib
 +
* http://www.fxpression.com/GalleryParticleUniverse.html particle system plugin
 +
* particle editor : http://www.ogre3d.org/forums/viewtopic.php?f=11&t=61559#p410457
  
 
== python + 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
+
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/wiki/index.php/Introduction_to_pyogre
+
* http://www.ogre3d.org/phpBB2addons/viewforum.php?f=3
http://www.ogre3d.org/wiki/index.php/pyogre_Beginner_Tutoria l_1
+
* http://www.ogre3d.org/wiki/index.php/Introduction_to_pyogre
http://www.ogre3d.org/wiki/index.php/pyogre_Beginner_Tutoria l_2
+
* http://www.ogre3d.org/wiki/index.php/PyOgre_Beginner_Tutorial_1
...
+
* http://www.ogre3d.org/wiki/index.php/PyOgre_Beginner_Tutorial_2
http://www.ogre3d.org/wiki/index.php/pyogre_Tutorial1
+
* ...
http://www.ogre3d.org/wiki/index.php/pyogre_Tutorial2
+
* 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 :
 
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
+
* http://www.ogre3d.org/developers/addons
  
 
== lua + ogre ==
 
== lua + ogre ==
Line 99: Line 108:
 
* http://www.tecgraf.puc-rio.br/~celes/tolua/ tolua
 
* http://www.tecgraf.puc-rio.br/~celes/tolua/ tolua
 
* http://www.codenix.com/~tolua/ tolua++
 
* http://www.codenix.com/~tolua/ tolua++
 +
 +
== ogre in game engines ==
 +
 +
* neoaxis (.net based) http://www.neoaxisgroup.com/
 +
* yake (.net based) http://www.yake.org/
 +
* ege http://www.e-challengegames.com/ege/ ([http://www.ogre3d.org/phpBB2/viewtopic.php?t=37437 ogre forum thread])  (5.12.2009:site down, project dead?)
 +
* echo http://sourceforge.net/projects/echo-plugin/  (just in planning so far..)
 +
 +
== 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)

Latest revision as of 13:06, 2 January 2011

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)