Orx is an open source, portable, lightweight, plugin-based,
data-driven and easy to use 2D-oriented game engine written in C.
It currently runs on Windows (MinGW and Visual Studio versions), Linux and Mac
OS X (10.4/10.5 - PowerPC & X86).
The GP2X version is currently WIP. PlayStation Portable, Pandora and iPhone
versions are planned.
General Information
Orx provides a complete game creation framework including a 3D scene graph,
hardware accelerated 2D rendering, animation, input, sound, physics and much
more.
Its main goals are to allow fast game prototyping and creation.
Orx is published under LGPL license.
Features
Despite being written in C, Orx has an object oriented design with a plugin
architecture.
This allows its kernel to be cross-platform and delegates hardware- and
OS-dependent tasks to plugins.
Most of these plugins are based on other open source libraries, such as SFML,
SDL and Box2D.
Build files are provided for GCC makefiles, Visual Studio (2005 & 2008),
Code::Blocks, Codelite and XCode.
Orx currently contains most of game engine "common" features
automated sprite rendering using 3D hardware acceleration allowing: translations,
anisotropic scale, rotation, transparency (alpha blending), coloring (multiply,
add and subtract blends), tiling and mirroring
camera/viewport system allowing multiple views on one screen with camera
translations, zooms and rotations
3D scene graph used for object positioning, allowing grouped translations,
rotations and scales
sound and music with volume, pitch and loop control
collision detection and rigid body physics
animation system
event management
fragment (pixel) shader support
It also provides more unusual features[1]
object creation is data driven: managing resources requires very little code,
everything is controlled through configuration files.
a clock system: this allows the user to keep time consistency everywhere, giving
him the ability of doing local or global time stretching.
an animation chaining graph: animation transitions are defined in a graph, this
allows the code to request only the final target animation; all transitions will
be automated depending on the starting animation.
a visual FX system: config-based combination of curves of sine, sawtooth and
linear shapes that can be plugged on object properties: color, alpha, position,
translation or rotation.
an automated differential scrolling: depth scaling and differential scrolling is
controlled through config files, allowing differential parallax scrolling on any
number of planes.
a powerful configuration system: featuring inheritance, direct random control,
encryption/decryption, filtered save and history reload. This allows the user to
tweak almost everything without having to change a single line of his code.
a spawning system: this allows the user to easily create weapon bullets or,
combined with the visual FX system, elaborate visual graphic effects.
an easy UI object positioning system: helps supporting different aspect ratio
and provides easy picking/selection framework.
a generic input system: allows to use any kind of controllers (mouse, joystick,
keyboard, ...) through an abstract layer. The user asks for input status using
plain names, bindings being done in config files or on the fly for user input
customization, for example.
The current list of WIP features that will be added in the future
scripting support: this allows access to all orx kernel code and user-defined
plugins.
a package system: this will allow the use of separated resource files for
development builds and packed ones for release versions with no code change.
History
A brief history of Orx:
Around 2002
a community of french gamers decides to create a point-and-click adventure game
named "La guerre des pâquerettes" (Daisy War). This project will be orx's cradle.
End 2005
Sourceforge project registered under the arcallians collective.
July 23, 2008
orx-project.org becomes the new project maintener.
September 01, 2008
Orx v0.9.0b, fully working on windows and linux, is officially released.
October 21, 2008
Orx v0.9.1, the latest stable version, is officially released.
May 17, 2009
Orx v1.0rc0, the first release candidate for the v1.0 is officially released.