My engine is organized into mini-engines, which are each their own projects (brought together into one master project) and build into separate libraries. The sound library, terrain library, physics library, etc. This keeps things highly modularized and ensures a logical connection between components. It would be similar to keeping each library in its own folder inside as part of the master project, except that it forcibly ensures that libraries can’t lazily #include files from outside their designated scope simply by adding another ../ to the #include path. It also makes it very clear how each library related to the other libraries.
Hi lspiro, could you please explain this some more with examples? Especially the part about preventing lazy includes.
In my projects,I've used seperate projects for maths,primitives etc but still have to do -
#include "../Maths/Vector.h"
from other parts of the engine.
How are you handling this kind of connection between the projects.