When comparing Moai SDK vs Allegro, the Slant community recommends Allegro for most people. In the question“What are the best 2D game engines?” Allegro is ranked 15th while Moai SDK is ranked 19th. 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
Because it uses Lua + C++.
Pro Gives you total control
You can use your own custom shaders and extend the language with C++. MOAI doesn't give you everything, instead it gives you the tools you need to develop any game you want.
Pro Full source code is available
So it is extendable with C++
Pro Easy-to-use particle engine
Uses a limited subset of Lua
Pro Uses Lua, with LuaJIT where possible
Pro Is used by many pro developers
Moai SDK is used by popular developers including Double Fine for their mobile game, Middle Manager of Justice, and for their Kickstarter hit, Broken Age(formerly, Double Fine Adventure.) It was also used to create the popular mobile game Bubble Ball 2.
This proves that this engine can be used to make fully-featured and fun games.
Pro API interfaces
Has options for development like Hanappe and Rapanui, providing a different way to interact with the engine.
Pro Helpful community
The Moai SDK Forum is active and users will go to great extents to answer queries, post code snippets, beta test, and even purchase and give feedback on each others' games.
Pro Helpful and detailed documentation
Although the Moai SDK is very advanced and uses complicated features, the documentation wiki thoroughly and clearly explains how to use these features, such as the Moai Cloud(a service that provides web services for your game), and multiple ways to build from source.
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.
Con Not for beginning developers
The Moai SDK has very advanced features which allow it to create powerful games. A drawback from this is that it is not very suitable for beginners.
Con Not necessarily tested or stable
Con Scarce documentation
Since it is a minimalist framework there is not that much documentation, but if you are used to reading API references and source code you are good to go!
Con Development has ceased
The last update was over a year ago. Users should not expect things to still work on future OS versions unless they're ready to fix them yourself.
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.