Quoting Gandhialf, reply 11
> For making engine I guess. But what about other stuff, like AI, game logic, scripts, etc.
For everything, except for graphics shaders, IIRC. C++ is a great choice for AI and game logic, why would you want those parts to run slowly?
I agree with TheRealWarpstorm. C++ is a terrific language, and it's very useful for a lot of game logic / AI / UI / tools stuff as well.
I've used a lot of interpreted languages and text-based scripting languages over the years (standardized ones, like Lua, plus a lot of customized, proprietary scripting languages I've ended up having to use for different projects), and it's always been a net negative. You end up missing out on the debugging and profiling tools that a standardized programming language provides, and you often end up paying a performance penalty.
I've also seen some horror stories of teams that tried to make proprietary languages that ended up basically being just programming languages, or that tried to integrate alternative languages into another code base in ways that didn't pan out in the long run.
My team is using C++ in Unreal Engine 4, and we're also using UE4's "Blueprint" visual scripting system for a lot of the more scriptable elements. We only do ~5-10% of our work in Blueprint (we expect it to grow to 15-20%) but it ends up being a real time-saver for design-centric and art-centric tasks since it's type-safe and tightly integrated into the engine.
TL;DR: Secondary languages often seem like a good idea at the start but there's a lot more risk and benefit there than you'd think.