There's a C++ library I'm developing and while it's not specifically targeted at games, all projects that I know of which use it are games.
It's called DynaMix. In short it 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)
The repository is here: https://github.com/iboB/dynamix
The docs are here: https://ibob.github.io/dynamix/
I have written about it before back when it used to be called Boost.Mixin. I have since rebranded it and removed the dependency on Boost. Recently I released a new version and I'm using this as an opportunity to gather more feedback and, perhaps, maybe new users.
So, any comments and questions are welcome