Jump to content
  • Advertisement
Sign in to follow this  

C++ DynaMix polymorphism library

This topic is 818 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Edited by Bleys

Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!