As the main developer behind orx, it's hard for me to have an objective point of view, but I'll try.
@rivon: Orx has reached a production state about 2 years ago when 1.0 was released. It's now in its 1.3 version.
@Hima: Presentation is indeed very poor for orx. I hate web design and I'm terrible at it. However I think we make up for it with a wiki that is maintained by the community and extremely short answer times on the forum. Almost all the questions are answered within a few of hours with a lot of details, bugs are corrected within a couple of days max and new features don't usually take too long before being implemented either.
@k0tn: It's hard for me to give any advice on this point as I barely know polycode but I'll try to the best of my knowledge. Polycode looks like a very clean framework that has some interesting features. It truly looks like a great project.
It even comes with some features that orx doesn't match:
- 3D rendering: orx has a 3D world space but only a 2D renderer plugin has been written. Orx however provides hooks if you want to roll some custom rendering code (including 3D rendering). Some projects have done it before but if you need 3D for your whole game, I don't think orx would be the best option.
- LUA API: orx comes with no scripting wrappers. Some users, such as
Newton64 have created their own LUA wrapper but there's nothing officially available from us.
- Skeletal animation: orx supports sprite animation for now and I'm currently working on a skeletal animation system. I don't think it'll get released before late January at best though.
As far as I can tell, most if not all other features of Polycode are to be found in orx.
Now for the pros of using orx. First of all it completely runs on windows, linux, OS X, iOS and Android. One can publish a game on all those platforms with very little modifications in one's code, if any.
The only obvious platform-dependent thing I can think of is multi-touch support. If you don't need it, you shouldn't need any platform-specific code in your game to have it run on different platforms. Even single touch and accelerometer on iOS/Android support are mapped to mouse and keyboard inputs for convenience.
Beside being written in C, orx has an object-oriented API. That means differences are almost purely syntactical: instead of writing MyObject->setPosition(...), you'll write orxObject_SetPosition(MyObject, ...).
However, orx is internally using a Data Oriented Design scheme for greater performances (objects are component-oriented, structures are contiguously allocated in memory for better cache friendliness, memory banks are used to prevent dynamic allocation as much as possible, batch processing, etc...).
Orx is also data driven. That means that you can control most of its features via config. If you create an object with orxObject_CreateFromConfig(), this can go from a simple image to a whole game level, including particles, collisions, sounds, etc... The goal is to write as few as possible lines of code and being able to develop as fast as possible.
Last but not least, orx is feature rich.Beside scripting and networking (that can be achieved with excellent external libraries), orx implements all the features you'd expect from a 2D game engine/lib and a bunch of others.
Here are also a few more or less unusual features you can find in it:
- input abstraction: you never need to query directly a peripheral, you can add as many abstract inputs "by name" (like jump, attack, select, etc...) and bind them in config or re-bind them at will during runtime. That makes it very easy to go from one platform to another, no matter which peripherals are available.
- internal clock system: you can easily define which parts of your code will run at which frequency, but you can also prevent excessive stuttering and/or slowdowns, run in lockstep mode for networking, do time stretching (that will affect all the objects properties, including physics, animation, sound)
- animation graph: no need to poll for chaining animations. You can define your full animation graph and tell orx which animations you want to play now: If you say "walk" and your character was sit, it'll automatically stand up first and then walk, whereas if it were already standing up it'll just start walking.
- animation custom events: you can setup events that will be sent when animations are played. One use of this would be to add synced particle/sound on footsteps or gunshots, for example: no need to write a single line of code to add those.
- powerful config system with inheritance and randomization that allows to control most of orx's behavior via config file and can be used for your own game purposes
- easy localization module: you can associate your typical strings to texts and/or fonts in config, and when calling a language switch, all the existing text objects will be automatically updated, fonts loaded/unloaded if need be, etc.
- powerful rendering pipeline: in addition to custom hooks that lets you issue your own rendering calls at any time in the rendering process (including substituting an object's default rendering to your own custom one), you have full shader supports on all platforms, rendering to texture support for easy compositing/post-processing.
- resolution independent rendering: all objects are in a 3D world. You also create camera in that world and link them to viewports. Those viewports will then render either to textures or to screen and will adapt scaling to the target's resolution while maintaining aspect ratio (framing/letter boxing). You can also define camera-relative objects for easy UIs. You can then easily have your UI adapt not only to the resolution but also to different aspect ratio.
- on the fly sound processing: you can inspect sound packets before they're played (or recorded as orx supports sound recording) or even generate them on the fly. That allows easy speech distortion or other interesting sound effects that simple volume/pitch control wouldn't allow.
- solid physics support, including joints
And many other features but that post is already too long and I'm pretty sure no one will read that far.

As for examples of games, I don't know all the games that have been made with orx, but you can check my TIGSource Assemblee entry
Mushroom Stew that was made in 20-25 hours of work and comes with full source code, a level editor and a thin C++ convenience wrapper. There's also all the latest games made by Newton64 (linked earlier in this post), or a remake of the
C64 game NEXUS by Sausage. A Gameloft studio is also using orx for some iOS/Android prod but I can't give any details. There are also other projects that have been privately disclosed to me, but again I don't have the right to show anything yet.
To sum it up orx is focusing at ease of development, portability and performances while packing an extensive list of features.
If you have any questions regarding orx, feel free to ask them here, on orx's forum or by PM.
Sorry again for that gigantic post (part of my poor presentation skills!

).