Lua was a language that I really did not give any attention to back when I was making hobby games.Who could blame me? It was not really intended for games. It was more for embedded systems like phones, appliances and the like. It was only natural for it to be overshadowed by the widely preferred Actionscript as well as the advent of Unity and HTML5.
It was only recently that I became acquainted with Lua thanks to a project I have been given that requires me to use Cocos2D-X with Lua.
Now Cocos2D-X is an already well established development platform for mobile devices. Powered by C++, it is already powerful in its own right. Couple it with Lua, and you got yourself a thing that is both powerful and fun to work on.
You see, Lua is, in its basic form, a scripting language. It means that it is not compiled but is executed at runtime. This gives you the freedom to create your own structures without worrying about rules a compiler imposes. This makes it the perfect prototyping language.
I am not saying, however, that Lua is only limited to prototypes. You can create something as complex as the games found at Castle Jackpot or maybe a Triple-A title given enough time and discipline, of course. I say discipline because since there is no compiler to guide you when writing your code, it is up to you to police yourself to avoid any problems in the future. This means discipline in leaving program comments and a proper program structure followed all throughout.
Lua is a nifty little language. And as I spend my days working with it, I learn always learn something cool and new. I am actually looking forward to create my own game using this platform, but for now, the boss awaits.