When comparing Allegro vs Unity 2D, the Slant community recommends Allegro for most people. In the question“What are the best 2D game engines?” Allegro is ranked 15th while Unity 2D is ranked 32nd. The most important reason people chose Allegro is:
The Allegro community has produced a lot of great tutorials and resources. Allegro [Wiki](https://wiki.allegro.cc/index.php?title=Main_Page), Mike Geig's Allegro [Tutorials](http://fixbyproximity.com/2d-game-development-course/), Rachel Morris' [Tutorials](https://www.youtube.com/watch?v=E4RqHtEAAds), CodingMadeEasy's [Tutorials](https://www.youtube.com/playlist?list=PL6B459AAE1642C8B4&feature=plcp).
Ranked in these QuestionsQuestion Ranking
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 Sprite Sheet and Bone based animation supported
Both types of 2D animation for game development are supported in Unity’s system and can be used interchangeably in the timeline.
Pro Integrates with Mecanim
Mecanim brings state machines and blending to 2D bone animation. The state machine editor allows for designers and programmers to visually create a Finite State Machine (FSM) to control when animations should play. Mecanim also allows for blending so an animation can transition smoothly between two states without the need of in between frames made by an animator.
Pro Built into Unity 4.3+
2D game creation was a major feature request from the Unity community and was added with version 4.3. 2D is provided in both the Pro and Free distribution of Unity.
Pro Easily change sprites dynamically
Usually used for character customization, programmers can change any sprite in a bone animation at runtime easily by referencing the bone and loading the new sprite from the resources folder.
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 Lacks critical features
- Vertices can't be animated, so you can't have ANY organic feel (like... lungs breathing).
- Parent bone can't be animated without affecting the children. This is especially impeding for organic feel, again.
- No option to show & unshow assets (or it is hidden), like for switching weapon on your character for exemple.
Con Poor script interface for texture atlases
Accessing individual sprites within an atlas texture is possible at runtime, but requires use of the Resources folder subsystem.