Difference between revisions of "Ogre"
Ghoulsblade (talk | contribs) (→why ogre) |
Ghoulsblade (talk | contribs) |
||
(41 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | this is about the opensource 3d engine http://ogre3d.org | ||
+ | |||
== why ogre == | == why ogre == | ||
* 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/ | + | ** 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. | + | ** 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...) |
− | ** has repeatedly taken part in [http://code.google.com/soc/2007 google summer of code] | + | ** 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] | |
− | * big,helpful community [http://www.ogre3d.org/phpBB2/ forum] [http://www.ogre3d.org/wiki/index.php/Main_Page wiki] irc://irc.freenode.net/Ogre3D | + | * big, helpful and experienced community : [http://www.ogre3d.org/phpBB2/ forum] ( 190.000+ articles, 13.000+ registered users) [http://www.ogre3d.org/wiki/index.php/Main_Page wiki] irc://irc.freenode.net/Ogre3D |
* [http://www.ogre3d.org/index.php?option=com_content&task=view&id=13&Itemid=128 features] superior to almost any other engine | * [http://www.ogre3d.org/index.php?option=com_content&task=view&id=13&Itemid=128 features] superior to almost any other engine | ||
+ | ** facial anim support | ||
+ | ** hardware accelerated skeletal anim, anim blending | ||
+ | ** support for threaded background loading | ||
+ | ** support for post-processing effects | ||
** mesh LOD, material LOD, various shadow techniques, shader-support for cg,hlsl and glsl | ** mesh LOD, material LOD, various shadow techniques, shader-support for cg,hlsl and glsl | ||
** material scripting, particle scripting | ** material scripting, particle scripting | ||
− | + | * many powerful [http://www.ogre3d.org/index.php?option=com_content&task=view&id=17&Itemid=141 addons] with dedicated [http://www.ogre3d.org/phpBB2addons/ addon-forums] | |
− | + | * focused on good code-design, see [http://www.ogre3d.org/index.php?option=com_content&task=view&id=19&Itemid=105 about] or the quote below | |
− | * many powerful [http://www.ogre3d.org/index.php?option=com_content&task=view&id=17&Itemid=141 addons] | ||
− | * focused on good code-design [http://www.ogre3d.org/index.php?option=com_content&task=view&id=19&Itemid=105 about] | ||
* well documented : [http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents manual] [http://www.ogre3d.org/docs/api/html/ api] | * well documented : [http://www.ogre3d.org/docs/manual/manual_toc.html#SEC_Contents manual] [http://www.ogre3d.org/docs/api/html/ api] | ||
* opensource, LGPL | * opensource, LGPL | ||
Line 35: | 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 | ||
** ogre-Novodex binding http://nxogre.betajaen.com/ (see also ogre-addons for another binding) | ** ogre-Novodex binding http://nxogre.betajaen.com/ (see also ogre-addons for another binding) | ||
+ | ** ogre-addon : ogreode : http://ode.org ogre-binding for ode | ||
** 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/ | + | ** ogre-addon : ogrenewt : http://www.newtondynamics.com/ binding for newtondynamics |
− | ** ogre-addon : ogretokamak : http://www.tokamakphysics.com/ | + | ** ogre-addon : ogretokamak : http://www.tokamakphysics.com/ binding for tokamak |
* sound : | * sound : | ||
** openal http://openal.org/ | ** openal http://openal.org/ | ||
** fmod http://fmod.org/ (free for noncommercial) | ** fmod http://fmod.org/ (free for noncommercial) | ||
+ | ** 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/ |
** raknet http://www.rakkarsoft.com/ | ** raknet http://www.rakkarsoft.com/ | ||
* user interface : | * user interface : | ||
Line 55: | 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) | ||
− | ** SDL http://www.libsdl.org/ | + | ** SDL http://www.libsdl.org/ |
* artificial intelligence and pathfinding | * 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 : | ** 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 | + | ** worldmind http://play.zapto.org/wmdb/main.php ([[User:Ghoulsblade|Ghoulsblade]] 19:16, 22 September 2007 (CEST) : currently down, i hope this is just temporary) |
** http://www-cs-students.stanford.edu/~amitp/gameprog.html#ai | ** http://www-cs-students.stanford.edu/~amitp/gameprog.html#ai | ||
** pathfinding lib : http://www.grinninglizard.com/MicroPather/ | ** pathfinding lib : http://www.grinninglizard.com/MicroPather/ | ||
Line 70: | 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/ | ||
+ | |||
+ | 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/ | + | * http://www.ogre3d.org/wiki/index.php/Introduction_to_pyogre |
− | http://www.ogre3d.org/wiki/index.php/ | + | * 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/ | + | * ... |
− | http://www.ogre3d.org/wiki/index.php/ | + | * 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/ | + | * http://www.ogre3d.org/developers/addons |
+ | |||
+ | == lua + ogre == | ||
+ | |||
+ | * http://www.lua.org/ | ||
+ | * http://lugre.sourceforge.net/ gamedev framework, used in [http://sfz.sf.net sfz] and [http://iris2.de iris2] | ||
+ | * http://luaforge.net/projects/luasdl/ lua SDL wrapper | ||
+ | * http://www.tecgraf.puc-rio.br/~celes/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
Contents
why ogre
- currently the most successful and popular opensource engine
- used by many successful projects : gallery showcase
- used in several commercial applications (torchlight,book-of-unwritten-tales,ankh,pacific storm,... , non-gaming applications...)
- featured in several popular books ( C++ How To Program, 6th Edition Pro Ogre 3D Programming )
- has repeatedly taken part in google summer of code
- 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
- facial anim support
- hardware accelerated skeletal anim, anim blending
- support for threaded background loading
- support for post-processing effects
- mesh LOD, material LOD, various shadow techniques, shader-support for cg,hlsl and glsl
- material scripting, particle scripting
- 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
addons . https://ogreaddons.svn.sourceforge.net/svnroot/ogreaddons/trunk
- collision detection and physics : (most phys engines also have collision detection)
- 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 : ogreode : http://ode.org ogre-binding for ode
- 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 for newtondynamics
- ogre-addon : ogretokamak : http://www.tokamakphysics.com/ 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.bespin.org/ (old url)
- 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
- mygui http://www.ogre3d.org/phpBB2/viewtopic.php?t=36096
- guichan http://guichan.sourceforge.net/
- opengui http://opengui.rightbracket.com/
- RBGui http://www.rightbraingames.com/tech/ ogre forum thread
- 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 (Ghoulsblade 19:16, 22 September 2007 (CEST) : currently down, i hope this is just temporary)
- http://www-cs-students.stanford.edu/~amitp/gameprog.html#ai
- pathfinding lib : http://www.grinninglizard.com/MicroPather/
there are also game engines embedding ogre :
- http://www.ogre3d.org/index.php?option=com_content&task=view&id=17&Itemid=141
- yake : http://www.yake.org/
- goof : http://www.ogre3d.org/wiki/index.php/Game_Object_Oriented_Framework
- zen engine : http://www.indiezen.org/
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
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_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
- ...
it's available with the rest of the ogreaddons from cvs :
lua + ogre
- http://www.lua.org/
- http://lugre.sourceforge.net/ gamedev framework, used in sfz and iris2
- http://luaforge.net/projects/luasdl/ lua SDL wrapper
- http://www.tecgraf.puc-rio.br/~celes/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/ (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)