ORX
Encyclopedia
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
, Mac OS X
(10.4-10.6, PowerPC
& X86), iPhone
/iPod Touch
/iPad
and Android.
, 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 Zlib
license.
, 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), Codelite
and Xcode
.
Orx currently contains most of game engine
"common" features:
It also provides more unusual features:
The current list of WIP features that will be added in the future:
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 1, 2008: Orx v0.9.0b, fully working on windows and linux, is officially released.
May 17, 2009: Orx v1.0rc0, the first release candidate for the v1.0 is released.
September 4, 2009: Orx v1.0 final is released.
January 26, 2010: Orx v1.1 is released.
April 11, 2010: Orx for iPhone v1.2 beta is released.
July 19, 2010: Orx v1.2 is released.
May 15, 2011: Orx v1.3rc0 is released.
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
, portable
Software portability
Portability in high-level computer programming is the usability of the same software in different environments. The prerequirement for portability is the generalized abstraction between the application logic and system interfaces...
, lightweight, plugin-based, data-driven and easy to use 2D-oriented game engine
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
.
It currently runs on Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
(MinGW
MinGW
MinGW , formerly mingw32, is a native software port of the GNU Compiler Collection and GNU Binutils for use in the development of native Microsoft Windows applications; MinGW can function either as a cross compiler targeting Windows or as a native toolchain run on Windows itself...
and Visual Studio versions), Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
, Mac OS X
Mac OS X
Mac OS X is a series of Unix-based operating systems and graphical user interfaces developed, marketed, and sold by Apple Inc. Since 2002, has been included with all new Macintosh computer systems...
(10.4-10.6, PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
& X86), iPhone
IPhone
The iPhone is a line of Internet and multimedia-enabled smartphones marketed by Apple Inc. The first iPhone was unveiled by Steve Jobs, then CEO of Apple, on January 9, 2007, and released on June 29, 2007...
/iPod Touch
IPod Touch
The iPod Touch is a portable media player, personal digital assistant, handheld game console, and Wi-Fi mobile device designed and marketed by Apple Inc. The iPod Touch adds the multi-touch graphical user interface to the iPod line...
/iPad
IPad
The iPad is a line of tablet computers designed, developed and marketed by Apple Inc., primarily as a platform for audio-visual media including books, periodicals, movies, music, games, and web content. The iPad was introduced on January 27, 2010 by Apple's then-CEO Steve Jobs. Its size and...
and Android.
General information
Orx provides a complete game creation framework including a 3D scene graphScene graph
A scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....
, 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 Zlib
Zlib
zlib is a software library used for data compression. zlib was written by Jean-Loup Gailly and Mark Adler and is an abstraction of the DEFLATE compression algorithm used in their gzip file compression program. Zlib is also a crucial component of many software platforms including Linux, Mac OS X,...
license.
Features
Despite being written in CC (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, Orx has an object oriented
Object-oriented programming
Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...
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
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
libraries, such as SFML, SDL
Simple DirectMedia Layer
Simple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....
and Box2D
Box2D
Box2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the zlib license. It has been used in Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Angry Birds, Tiny Wings, Transformice, Stripe physics2, and many online Flash...
.
Build files are provided for GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
makefiles, Visual Studio (2005 & 2008), Codelite
Codelite
CodeLite is a free, open-source, cross-platform IDE for the C/C++ programming languages.- History :On August 2006 Eran Ifrah, CodeLite's author, started a project named CodeLite...
and Xcode
Xcode
Xcode is a suite of tools, developed by Apple, for developing software for Mac OS X and iOS. Xcode 4.2, the latest major version, is available on the Mac App Store for free for Mac OS X 10.7 , and on the Apple Developer Connection website for free to registered developers Xcode is a suite of tools,...
.
Orx currently contains most of game engine
Game engine
A game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
"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 graphScene graphA scene graph is a general data structure commonly used by vector-based graphics editing applications and modern computer games. Examples of such programs include Acrobat 3D, Adobe Illustrator, AutoCAD, CorelDRAW, OpenSceneGraph, OpenSG, VRML97, and X3D....
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 and joints
- animation system
- event management
- fragment (pixel) shader support
- unicode support
- custom bitmap font rendering
- real time CPU profiler
It also provides more unusual features:
- 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 custom animation event system: allows easy synchronization with parts of animations
- 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, touch, accelerometer, ...) 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.
- network support.
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 1, 2008: Orx v0.9.0b, fully working on windows and linux, is officially released.
May 17, 2009: Orx v1.0rc0, the first release candidate for the v1.0 is released.
September 4, 2009: Orx v1.0 final is released.
January 26, 2010: Orx v1.1 is released.
April 11, 2010: Orx for iPhone v1.2 beta is released.
July 19, 2010: Orx v1.2 is released.
May 15, 2011: Orx v1.3rc0 is released.
See also
- Game engineGame engineA game engine is a system designed for the creation and development of video games. There are many game engines that are designed to work on video game consoles and personal computers...
- List of game engines
- SFML
- SDLSimple DirectMedia LayerSimple DirectMedia Layer is a cross-platform, free and open source multimedia library written in C that presents a simple interface to various platforms' graphics, sound, and input devices....
- Box2DBox2DBox2D is a free open source 2-dimensional physics simulator engine written in C++ by Erin Catto and published under the zlib license. It has been used in Crayon Physics Deluxe, Rolando, Fantastic Contraption, Incredibots, Angry Birds, Tiny Wings, Transformice, Stripe physics2, and many online Flash...
- GP2XGP2XThe GP2X is an open-source, Linux-based handheld video game console and portable media player developed by South Korean company GamePark Holdings. It was released on November 10, 2005, in South Korea only....
- CodeliteCodeliteCodeLite is a free, open-source, cross-platform IDE for the C/C++ programming languages.- History :On August 2006 Eran Ifrah, CodeLite's author, started a project named CodeLite...