I'm undecided on a design decision. Now for my game I was thinking on splitting components into separate dlls. This would allow for a more modular approach, especially when in need of updates. On launch it [the game] could swap out newer versions of the dll coming from a centralized server. This would allow us to provide updates to each component separately and also allow us to quickly swap dll's for different implementation.
Now is this design used, and how effective is it?
I started implementing it, and loading a dll through run-time ads a lot of complexity (unless i'm doing it wrong). Another problem that could arise is some components are optional. So it would ad additional complexity.
So what i'm trying to get to is: Is splitting separate components and subsystems in dll's?
This would allow the exe to be a lot smaller, and possibly make the whole system a little more organized.