When comparing Allegro vs LÖVE, the Slant community recommends LÖVE for most people. In the question“What are the best 2D game engines?” LÖVE is ranked 2nd while Allegro is ranked 12th. The most important reason people chose LÖVE is:
Lua is an embeddable scripting language designed to be lightweight, fast yet powerful. It is used in major titles such as Civilization as well as a lot of indie games. Lua is very popular because it provides "meta language" features. You can implement object-oriented structures, or pure procedural functions, etc. It has a very simple C interface, and gives the engine developer a lot of flexibility in the language itself. Artists tend to love Lua too because it's very approachable, with plain and forgiving syntax. Lua is free open-source software, distributed under a very liberal license (the well-known MIT license).
Ranked in these QuestionsQuestion Ranking
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 Supports desktop and mobile
Support for Windows, Mac OS X, Linux, iPhone, and Android
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 Uses the fantastic Lua for scripting
Lua is an embeddable scripting language designed to be lightweight, fast yet powerful. It is used in major titles such as Civilization as well as a lot of indie games.
Lua is very popular because it provides "meta language" features. You can implement object-oriented structures, or pure procedural functions, etc. It has a very simple C interface, and gives the engine developer a lot of flexibility in the language itself.
Artists tend to love Lua too because it's very approachable, with plain and forgiving syntax.
Lua is free open-source software, distributed under a very liberal license (the well-known MIT license).
Pro Active and very friendly community
The LÖVE forums are extremely helpful. With people checking the forums every day, it won't take long to receive answer to your questions on the Support board, receive feedback on games you post in the Projects board, as well as have a chat about the LÖVE engine while learning tricks to use in the very active General board.
If you need an immediate answer though, or just want to chat, there is a very active and helpful IRC channel.
Supports Windows, Mac OS X, Linux, Android and iOS.
Pro Great for prototyping
You can learn the basics very quickly and start making simple games in no time, even if you have no previous Lua knowledge. If you're a little experienced with LÖVE, you can prototype a 2D game with it in no time.
Pro Open source and free
The LÖVE engine is licensed under The zlib/libpng License (which is very short and human readable) which allows you to use the source code and even modify it as long as you do not claim that the original source code is yours.
You can obtain the code at this bitbucket repository and even help fix bugs and participate in the development of LÖVE.
Pro Easy to understand and use
Lua2D handles loading the resources, reading input, playing sounds and displaying stuff on the screen. Only the logic is left for the developer to write. It also removes the overhead of having to use and learn a GUI game editor. All you need is a knowledge of Lua and your favourite text editor or IDE.
Pro Very good documentation
The LÖVE wiki provides full documentation of its easy to use Modules, which are conveniently located on the side bar of the wiki. It only takes seconds to find the module for love.keyboard, which provided a list of all functions along with arguments and examples where the function could be used.
Pro Many examples and libraries with source code
There are plenty of open source examples of games or components built by the community that are ready to use or learn from.
Pro Can develop within Android
It is possible to develop games directly on a tablet or cellphone with the Android system by using the experimental Android branch.
Pro Very good for education
That is a great tool for teaching novice programmers. Creating a game on LÖVE, you have to think about developing, not about the syntax of the language.
Pro C++ and Lua one of the best languages for gamedev
Because all professionals in gamedev use C++, and Lua the fastest scripting lang.
Pro Cute name
So much love.
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 Not very powerful
The engine has very few modules and only the really required one, you'll have to do almost everything from scratch.
Con The community seems juvenile
For example, some of the library include names such as HUMP, LUBE, AnAL.
Con Documentation is very dry and technical
The site has plenty of tutorials, true, but they all read very technical, and explain very little. This might be too much for beginners, even for coding purposes, because of the fact that the specifics aren't explained well enough to learn effectively. The docs can be found frustrating to understand even the basics, such as tables or the like, because of how poorly they are explained, and how few examples are given before expecting you to be able to use them.
Con Absolutely no GUI (no graphical interface)
This has no graphical interface at all, you have to know how to read script in order to know what you're looking at. After you've written the script for everything, you compile it to see the result. It's a very poor way to create a game, given how even most professional tools out there give you a GUI to work with and debug on the go. The lack of a GUI slows down the work by ten-fold, and it's just an inefficient use of your time.