Lua is a pretty well developed scripting engine that is flexible and easy to integrate to your games, and is already supported in many game engines, for instance:
- Agen (Lua; Windows)
- Blitwizard (Lua; Windows, Linux, Mac)
- Corona (Lua; Windows, Mac; iOS/Android)
- EGSL (Pascal/Lua; Windows, Linux, Mac, Haiku)
- Grail Adventure Game Engine (C++/Lua; Windows, Linux, MacOS X (SDL))
- LÖVE (Lua; Windows, Linux, Mac)
- MOAI (C++/Lua; Windows, Linux, Mac; iOS, Android; Google Chrome (Native Client))
And as MJP says from gamedev.net:
Using a scripting language was/is very popular for games for a few reasons:
Most scripting languages are much more high-level than C++ (which just about all commercial games use), and can be used much more readily by gameplay or level designers.
The portions of a game written in scripting languages can be modified while the game is running, without having to restart or recompile. This is important if the people working on the scripted portions don't have access to the compilation tools, or if compilation takes a long time.
C++ has no built-in reflection capabilities.