allows you to compose and modify polymorphic objects at run time. This has proven to be rather useful in gameplay programming. Compared to more traditional ways to write gameplay, like scripting, it has some benefits (well, and some drawbacks).
- It's C++ so it usually is at least a bit faster (and in the cases that I know of a lot faster) and less power consuming than scripts
- You can reduce code complexity when you don't have a C++<->scripting language binding layer.
- You can reuse utility code between the core and gameplay subsystems (instead of having to rewrite it in the scripting language.
- Hotswapping is supported relatively easily achievable
- Still, it's C++ so I guess it's a bit harder to write, and impossible to delegate to game-designers and other non-programmers
Because of this it has found a niche of sorts in mobile games, where the benefits from the performance and smaller power consumption outweigh the fact that the gameplay code is strictly programmer country (whereas desktop/console developers, might be less willing to pay this price)
Learn more from the thread: