Purely personal insights.
Broadly speaking:
The high efficiency of the C + + implementation, some of the performance-sensitive complex calculations in the game need to be implemented in C + + to prevent game lag and low frame rate. These complex calculations include battle logic, complex AI, coordinate calculations for bone animation skinning bone points, and more.
However, C + + is a relatively complex programming language with low development efficiency. Well, but this is not the main problem, for the commercial hand-tour project only in C + + development, is fatal. This is specified behind Lua.
Lua is a scripting language that performs less efficiently than C + + and is often used to implement performance-insensitive game logic, such as window interfaces and so on. In addition, LUA syntax is simple, the development of high efficiency, no programming background of planning to spend energy can also be mastered, part of the planning of the commercial end of the project is the need to use LUA to implement some simple window functions.
As a scripting language, LUA also has a very important feature: Support for dynamic updates!
A full-C + + implementation of the release on the Apple AppStore on the Hand tour project, if you encounter a bug, or need to add new game features, you need to submit a game pack waiting for Apple Audit, need to wait a week or more time. If it's an emergency game bug (it's almost impossible to avoid bugs completely during game development), this week's time can be a huge loss.
My own project, a weekly content update, completely in C + + development projects are not possible.
In addition, Lua's features can be done such as non-stop service to complete the server-side code updates and so on.
Therefore, the solution to the usual hand-tour project is to use C + + to implement some of the underlying, performance-sensitive modules that do not need to be updated frequently. Use LUA to implement game logic that needs to be updated frequently.
Off-topic: The meaning of Lua scripting language existence