The Lua script is used extensively in CryENGINE. Many entities, such as AI behaviors or game rules, are created by using the Lua script. The accessibility and the ability to reload any script at runtime makes Lua a nice middle ground between the complexity of C++ and the ease of use of the flow graph. The role of a developer in the production environment determines how much Lua will be used on a day-to-day basis to perform certain tasks.
Although easy to learn and very flexible, the Lua script has its pitfalls. For example, as the language is strongly typed, this makes things a bit more difficult since mistakes can easily go unnoticed for a while.
A level designer, for example, does not usually touch C++ code, but might now and then create a new entity type by using Lua. A C++ developer, on the other hand, will do most of their work directly in C++ and only sometimes work with Lua to create new script binds or AI behaviors.
While simple...