Lua is a scripting language; it is the most commonly used publicly available scripting language in Video Games development. While the Unreal engine's scripting language might be more commonly used, that language is bound to the Unreal engine, while Lua can be used in anything.
Lua is often used in games for many reasons:
- Lua is the smallest scripting language available. It has very little overhead, and its standard library is very small and tight.
- Lua is the fastest VM-based scripting language, and even faster as LuaJIT.
- Lua, as a language, is very flexible and easy to learn.
- Lua, unlike many other publicly available scripting languages, is designed to be embedded in an application. Embedded scripting languages offer a degree of developer control that non-embedded languages lack.
- On top of being easily embedded, Lua is easily extended, with a simple API used for both that can be used to make Lua interface modules for any C library. (This allows, for instance, an external window using the IUP UI library to control an NES game running in the FCEUX emulator, which has Lua embedded.)
- Unlike almost all other open source projects, Lua (and other projects in its culture) has no "copyleft" clause (under the MIT license), meaning that you are free to do whatever you want with derivative works that use it, including selling them without disclosing the source code.
Lua is a pretty respectable language by itself. STUART provides standalone Lua scripts for editing TV Tropes.