Home

Awesome

Join the chat on https://orx-project.org/discord Travis build Build status

Orx - Portable Game Engine (Version 1.12)

Email iarwain [at] orx-project.org to contact the author; or, better, check orx's homepage for the most up-to-date contact information. You can also come chat with us if you have any questions or comments.

This engine is licensed under the very permissive zlib license, see the LICENSE file for details.

Summary

Orx is a 2D-oriented, data-driven, portable game engine focused primarily on ease of use and powerful features. See below for a list of supported platforms.

This is a release candidate for orx v1.12. If you find any bugs, please report them on the forum, in the "Bug report - Feature request" board, or via orx's issue page/tracker.

Some notable features of the engine are:

See orx's wiki for detailed information, including:

See the doc/html directory for the doxygen documentation of orx's API. The documentation for the latest release version is available here at orx's homepage.

Supported Platforms

The engine compiles and is tested for:

Versions

Those are not revision versions but link/run versions. Orx library can be compiled as a static or a dynamic library. In addition to these modes, orx can be compiled as an embedded version or not.

Orx's core is basically platform-independent. All the platform/OS-dependent features are implemented via plugins. These plugins can be loaded at runtime (hotplug) or they can be embedded at linktime.

If you use the non-embedded versions, you'll have to specify which plugins to use. This is more flexible but also requires additional files (the plugins themselves). The embedded version will store everything in orx's library, meaning you won't be able to choose which plugin to use at runtime, but will also be more compact. This will also make orx run considerably faster.

From the download page you'll find precompiled binaries for Windows (x86), Linux (x86/x86-64), MacOS X (ppc/x86/x86-64), iOS and Android, using the dynamic embedded versions only. If you want to use the non-embedded versions (to use with your own plugins), you'll need to compile orx yourself from the source. Everything compiles out-of-the-box for the hardware platforms cited above.

The embedded versions currently use:

All the 11 basic and advanced official tutorials are shipped with the dev packages, including precompiled release binaries.

Some tools (precompiled binaries only) are also shipped with the dev packages:

Packages

You can download all the packages from sourceforge or github. Here is a list with a small description for each package.

All the *-dev-* packages above include:

All the *-tutorial-* packages above include:

Compiling

Important - first step:

If you just downloaded the src package or cloned orx with mercurial or git, you will need to run the setup.bat / setup.sh script that's located at its root before being able to compile the engine. This script will download all the needed dependencies and generate all the project files for your platform. The script will then hook itself to mercurial/git and you shouldn't have to run it manually after subsequent pulls.

The easiest way to learn how to compile your project using orx for a given platform is to look at the tutorial build project files.

NB: The debug version is far slower than the release one, but will output all the warning and error messages useful during development.

Here's a quick list of the available compile preprocessor flags:

There are other preprocessor flags used when compiling the orx library, but those should be easy enough to decipher. markdo However, you might want to specify them manually for cross-compiling or use them so that your code will behave differently depending on the architecture for which you're compiling. Here's a quick list of these flags:

FlagDescription
__orxARM__orx is being compiled for an ARM architecture
__orxPPC__orx is being compiled for a PowerPC architecture
__orxPPC64__orx is being compiled for a PowerPC 64 architecture
__orxX86__orx is being compiled for a x86 architecture
__orxX86_64__orx is being compiled for a x86-64 architecture
__orxLITTLE_ENDIAN__orx is being compiled for a little endian architecture
__orxBIG_ENDIAN__orx is being compiled for a big endian architecture
__orxGCC__orx is being compiled with gcc
__orxMSVC__orx is being compiled with visual studio C/C++
__orxLLVM__orx is being compiled with llvm/clang
__orxWINDOWS__orx is being compiled for Windows
__orxMAC__orx is being compiled for MacOS X
__orxLINUX__orx is being compiled for Linux
__orxIOS__orx is being compiled for iOS
__orxANDROID__orx is being compiled for Android
__orxANDROID_NATIVE__orx is being compiled for Android Native
__orxCPP__orx is being compiled with a C++ compiler
__orxOBJC__orx is being compiled with an Objective-C compiler
__orxPLUGIN__a plugin for orx is being compiled
__orxEXTERN__code using orx's library is being compiled

Comments

If you have any questions, comments, ideas or reviews, feel free to either post them on orx's forum, come chat with us or send them directly by email to iarwain [at] orx-project.org

Enjoy!