I started lAGE as a project to teach myself writing Lua extensions and using SDL. What came out was a tiny game engine for 2D adventure games, using Lua as the script language and SDL for the multimedia part.
Why use Lua?
Lua is the best choice, because its a tiny library, incredible fast, a procedural programing language, an object description language and can be made fully object oriented.
So the question is: why NOT use Lua?
What's the philosophy behind the engine?
Keep it as simple as possible!
lAGE gives you a dozen classes and functions. You can use those directly or write your own macros, which ensures a high flexibility, as in Lua itself.
What does the library depend on?
To make it short: Lua and SDL.
So the library should run everywhere, where Lua and SDL run, although, binary packages are only avaiable for linux at the time.