||This article may require cleanup to meet Wikipedia's quality standards. (January 2009)|
|This article needs additional citations for verification. (January 2009)|
Python-Ogre achieving excellent performance on modern hardware.
|Developer(s)||The OGRE Team|
|Stable release||1.6.1 / 26 January 2009|
|Type||3D graphics engine|
Python-Ogre is a Python binding for the OGRE 3D engine, providing the functionality and performance of OGRE (written in C++) with the accessibility and ease of use of Python. This facilitates the rapid development of 3D games, as well as making the OGRE engine more accessible to the beginner, who would otherwise be daunted by the technicalities of writing the program in the native C++. The performance of the engine is decreased in comparison to the original C++ demos, however, the original OGRE engine provides such high performance, the performance of Python-Ogre is more than acceptable for all but the most graphics-intensive games.
Python-Ogre is unique from the Ogre3D engine it is based upon, as it comes pre-bundled with Python bindings and demos for many other support libraries.
The following libraries are either currently supported, or have at one point in time worked with the Python-Ogre engine. Support for particular libraries are noted in each release. Demos are available for all libraries listed, however, not all demos function, due to the constantly evolving codebase and limited number of active developers.
- Current renderer support for
- Ogre 1.4.9 Legacy version
- Ogre 1.5 "Shoggoth" experimental software build
- Ogre 1.6 official release
- Ogre 1.7 "Cthugha" experimental build, including full DirectX 10 support.
- BetaGUI -- Compact and lightweight OGRE GUI library
- CEGUI -- Fully featured general-purpose videogame GUI library
- Navi -- HTML/CSS/JS-based OGRE GUI library
- QuickGUI -- Easy to use, widget-based OGRE GUI library
- Hikari -- Flash based OGRE GUI library
- OpenAL -- Cross-platform audio API commonly used with Ogre3D
- Bullet -- Full-featured physics engine with a feature set similar to that of proprietary libraries, offering both rigid body and soft body collision detection
- ODE -- Open source rigid body collision detection library
- Newton -- Offers real-world physics simulation, where accuracy and real-world physical parameters are desired over performance and newer features
- PhysX -- Popular, proprietary, high performance, fully featured library
- NxOgre -- Wrapper for the PhysX library and Ogre3D, with an editor and other helpful Ogre3D-oriented features
- Particle Universe -- Scriptable particle effects engine that helps create complex particle effects easily
- Caelum -- Realistic sky, atmosphere, weather and lighting simulation
- LibNoise -- Portable, open-source, coherent noise-generating library
Python-Ogre has been compiled on all platforms supported by OGRE:
- Microsoft Windows - Binaries are available at the Python-Ogre forums.
- Linux - Build instructions can be found on the Python-Ogre wiki. An Ubuntu binary is currently in development.
- Mac OS X - Build instructions can be found on the Python-Ogre wiki. Python-Ogre builds on both Mac OS X 10.4 “Tiger” and Mac OS X 10.5 “Leopard”.
The official Python-Ogre site can be found below. Also hosted there is the Python-Ogre wiki, containing build instructions for Windows, Linux, and Mac OS X platforms, as well as tutorials and helpful code snippets. Ogre3D hosts the official Python-Ogre forum for helping developers in their use of the engine in making their games. Official Python-Ogre support related towards bugs in the development of the Python-Ogre engine itself can be found in the Python-Ogre Google Group. SVN commit history and users of Python-Ogre can be found at the project's Ohloh page.
The Python language binding for the OGRE engine has, as is typical of long-established open source projects, an elaborate history.
The PyOgre project began in early 2005, where a Python binding for OGRE was first attempted using Boost.Python from the Boost C++ Libraries by two members of the Ogre3D community, Clay Culver and Federico Di Gergorio. This effort ultimately failed, which prompted the use of SWIG as the basis for the C++ binding. This method proved to be rather successful, providing to the community with a somewhat limited and error-prone implementation, but an implementation nonetheless.
In mid-2006, Lakin Wecker began work on Python-Ogre, based on the Boost.Python libraries, as was attempted before. This was developed alongside the PyOgre project. He was aided by Andy Miller, who then later took over development of the project with assistance from Roman Yakovenko, Joseph Lisee, and Ben Harling during the evolution of the engine.
Development of PyOgre was halted in mid-2007, and officially succeeded by Python-Ogre.
As of summer of 2008, Andy Miller is actively working on adding new features to Python-Ogre, as well as providing support and maintenance to the community. As of January 2014, the main website is offline.
- http://www.ogre3d.org/wiki/index.php/Introduction_to_PyOgre#Brief_History_and_Why_SWIG_.3COutdated.3E Introduction to PyOgre
- http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=2511 Ogre3D Addons Forums - First Release of Python-Ogre
- http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=3917 Ogre3D Addons Forums - Python-Ogre official