I'm trying to make a multi-platform 3D game engine in C++, but I have a little big problem... The game engine would have a plug-in system so other people could replace the default components if they wish. That way, if somebody makes a better physics engine or a better render engine, he could...