When comparing Allegro vs Orx, the Slant community recommends Orx for most people. In the question“What are the best 2D game engines?” Orx is ranked 5th while Allegro is ranked 12th. The most important reason people chose Orx is:
Powerful config system that makes orx data-driven and provides an easy to use load/save system.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Supports desktop and mobile
Support for Windows, Mac OS X, Linux, iPhone, and Android
Pro Good engine architecture
Allegro is well designed, easy to use and has many useful features.
Pro Good documentation and lots of tutorials
Since it has been in development since mid-90s with hundreds of people contributing to both the engine and documentation, it has all of its bases covered when it comes to standard support.
Pro Per-platform library optimization
Allegro uses DirectX for Windows, and OpenGL for other targets.
Pro Freedom to implement your own game engine
You are not bound to the limits of existing game engines, and you can actually implement your own engine.
Pro Powerful config system
Powerful config system that makes orx data-driven and provides an easy to use load/save system.
Pro Friendly community
Good friendly development community ready to help each other with tips and advice for setting up and best practices.
Pro Automatic hot-loading of resources
Automatic hot-loading of resources upon modification on disk, shortens drastically iteration times.
Pro High performance
Written in C with high emphasis on memory and CPU efficiency.
Pro Supports desktop and mobile
Supports Windows, Linux, Mac OS X, iOS and Android.
Pro Data configuration
Orx is a Data Driven engine that greatly reduces required code. You can configure object definitions, bodies, cameras, sound, animation, event tracks, etc.
Pro Custom shader support
GLSL code can be added straight into data configuration files and can be applied to any texture: background or objects whivh allows for some amazing effects. All GLSL versions are supported, again by providing the shader language version in your configuration file.
Parameters are supported and values over time for shader animation.
Pro Flexible clock system
Clock system that provides time consistency and allows time stretching + high precision timers
Pro Flexible and simple FX
Color and translation FX are simple to configure and apply to objects.
Pro Good animation engine
Includes a chaining graph & custom animation events for synchronization.
Pro Free and open source
Uses the zlib license. Lets you use Orx for free for any kind of projects, even for commercial ones.
Pro Input controls and binding
All input devices are fully supported: Joysticks, Mouse, Gamepad, Keyboard and Touchscreen. Multiple physical devices and be mapped the same binding.
Pro Excellent results on performance benchmark
Rated the fastest engine in the OpenFL’s BunnyMark since October 2015.
Pro Great audio support
Samples for sound effects, or streams for music. All sounds can be groups via audio buses just like in a typical DAW (Digital Audio Workstation).
All sounds can be spatial relative to the camera.
Pro Viewport scheme allowing multiple views
Camera/viewport scheme allowing multiple views displayed with camera translation, zoom and rotation.
Pro Good render support
Fragment (pixel) shader support, render to texture, MRT, easy composition and custom rendering support.
Pro Easy post-processing/compositing for complex visual effects
Pro Integrated runtime profiler
Integrated runtime profiler (with graphical display) to easily spot which parts of your game need to be optimized.
Pro Collision handling and rigid body physics
Pro Screenshot capture tool
Supports .bmp, .png, .jpg, .tga and .dds
Pro Multi-Threading
Pro Great IDE Support
Out of the box Windows support for:
- Visual Studio
- Codelite
- CodeBlocks
- gmake
Out of the box Mac support for:
- XCode
- Codelite
- gmake
Out of the box Linux support for:
- Codelite
- CodeBlocks
- gmake
Pro Well-supported C++ wrapper
Orx provides a excellent c++ wrapper for object oriented design, called: orx/Scroll. You can, of course, roll your own.
Cons
Con Learning curve for hobbyist developers
Hobbyist developers coding alone may experience a learning curve with Allegro of about 200 hours (if you are rusty on C++). To learn quickly, see Mike Geig's tutorials at Fix By Proximity. This learning curve may be fine if you are considering going professional, but are still unsure.
For hobbyist developers not planning on going professional, you may want to look into a complete 2D game engine, rather than a coding library. For example, there are "non-coding" engines that provide support for coded plugins or scripting. But, if you are a dedicated hobbyist planning to use Allegro as your coding library of choice, you can still develop great games as a hobbyist.
Con Isn't great for C++
If you are a fan of object oriented programming, and want to use this library, then the chances are that you are going to be creating a lot of wrappers for functions in this library.
In short, if you're a C++ person, it could be recommended to check out SFML instead.
Con Feature discovery and explanation could be better
Some features are not well explained / highlighted: for example, unless you use the interactive project initialization, you have to go over the tutorials and examples in the wiki to learn that there is an optional C++ layer, Scroll, developed on top of the C API. Similarly, some major information are missing from the website, wiki and Doxygen documention, and are left for the users to discover in source headers and INI template files, or by searching the forum (e.g. the 0,0 coordinate being the center of the screen and not top left, the list of all Orx scalar types and their use, etc).