Python-Ogre is a
Python binding
Binding may refer to:
Computing
* Binding, associating a network socket with a local port number and IP address
* Data binding, the technique of connecting two data elements together
** UI data binding, linking a user interface element to an eleme ...
for the
OGRE
An ogre ( feminine: ogress) is a legendary monster depicted as a large, hideous, man-like being that eats ordinary human beings, especially infants and children. Ogres frequently feature in mythology, folklore, and fiction throughout the wor ...
3D engine
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software in ...
, designed to provide the functionality and performance of OGRE (written in C++) with the accessibility and ease of use of Python to facilitate the rapid development of 3D games and to make the OGRE engine more accessible to the beginner, who might otherwise be daunted by the technicalities of writing 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 that the performance of Python-Ogre is still more than acceptable for all but the most graphics-intensive games.
Features
Python-Ogre is different from the Ogre3D engine it is based upon as it comes pre-bundled with Python bindings and demos for many other support libraries.
Compatibility
Python-Ogre has compatibility for all platforms supported by OGRE:
*
Microsoft Windows - Binaries are available at the Python-Ogre forums.
*
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which i ...
- Build instructions can be found on the Python-Ogre wiki. An Ubuntu binary is currently in development.
*
Mac OS X
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
- 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”.
Support
The Python-Ogre wiki, contains build instructions for Windows, Linux, and Mac OS X platforms, as well as tutorials and example code snippets.
Ogre3D hosts the official Python-Ogre forum for helping developers in their use of the engine.
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
Boost is a set of libraries for the C++ programming language that provides support for tasks and structures such as linear algebra, pseudorandom number generation, multithreading, image processing, regular expressions, and unit testing. It conta ...
by two members of the Ogre3D community, Clay Culver and Federico Di Gergorio. This effort ultimately failed, which prompted the use of
SWIG
The Simplified Wrapper and Interface Generator (SWIG) is an open-source software tool used to connect computer programs or libraries written in C or C++ with scripting languages such as Lua, Perl, PHP, Python, R, Ruby, Tcl, and other langu ...
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.
[http://www.ogre3d.org/phpBB2addons/viewtopic.php?t=3917 Ogre3D Addons Forums - Python-Ogre official ]
As of summer of 2008, Andy Miller was actively working on adding new features to Python-Ogre, as well as providing support and maintenance.
As of January 2014, the main website at python-ogre.org went offline, but wiki.python-ogre.org is still extant.
Included 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
In software development, a codebase (or code base) is a collection of source code used to build a particular software system, application, or software component. Typically, a codebase includes only human-written source code files; thus, a codeba ...
and limited number of active developers.
;
Renderer
* Ogre 1.4.9 Legacy version
* Ogre 1.
"Shoggoth"experimental
software build
In software development, a build is the process of converting source code files into standalone software artifact(s) that can be run on a computer, or the result of doing so.
Functions
Building software is an end-to-end process that involves ma ...
* Ogre 1.6
official release
* Ogre 1.7 "Cthugha" experimental build, including full
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direc ...
10 support.
;
GUI
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
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
;
I/O
*
OIS—Standard OGRE input library, allowing
buffered,
object-oriented
Object-oriented programming (OOP) is a programming paradigm based on the concept of " objects", which can contain data and code. The data is in the form of fields (often known as attributes or ''properties''), and the code is in the form of ...
input
; Audio
*
OpenAL
OpenAL (Open Audio Library) is a cross-platform audio application programming interface (API). It is designed for efficient rendering of multichannel three-dimensional positional audio. Its API style and conventions deliberately resemble those ...
—Cross-platform audio API commonly used with Ogre3D
;
Physics
Physics is the natural science that studies matter, its fundamental constituents, its motion and behavior through space and time, and the related entities of energy and force. "Physical science is that department of knowledge which rel ...
*
Bullet
A bullet is a kinetic projectile, a component of firearm ammunition that is shot from a gun barrel. Bullets are made of a variety of materials, such as copper, lead, steel, polymer, rubber and even wax. Bullets are made in various shapes and ...
—Full-featured physics engine with a feature set similar to that of proprietary libraries, offering both rigid body and soft body collision detection
*
ODE
An ode (from grc, ᾠδή, ōdḗ) is a type of lyric poetry. Odes are elaborately structured poems praising or glorifying an event or individual, describing nature intellectually as well as emotionally. A classic ode is structured in three majo ...
—Open source rigid body collision detection library
*
Newton
Newton most commonly refers to:
* Isaac Newton (1642–1726/1727), English scientist
* Newton (unit), SI unit of force named after Isaac Newton
Newton may also refer to:
Arts and entertainment
* ''Newton'' (film), a 2017 Indian film
* Newton ( ...
—Offers real-world physics simulation, where accuracy and real-world physical parameters are desired over performance and newer features
*
PhysX
PhysX is an open-source realtime physics engine middleware SDK developed by Nvidia as a part of Nvidia GameWorks software suite.
Initially, video games supporting PhysX were meant to be accelerated by PhysX PPU ( expansion cards designed by ...
—Popular,