I’ve recently finished a core functionality for my project, whose purpose is to do some weapon management (equip, switch, drop, reload, fire, networking etc.). But even though this library is somewhat stable, the project itself is not, and I see myself recreating copies of the project, moving assets around to create more “final versions” after many drafts. This usually happens when I’m just trying to figure out a new functionality or new asset and decide to leave out, or moving things around to improve/adjust them.
Recently, after checking the Loading Screen sub-project, delivered in the Shooter Project, I was considering doing something similar with this Weapon API (and perhaps with some others too). I think this could allow an easy transfer of this core functionality, and perhaps even allow me to create some abstractions and re-use it in another project. But I’m not entirely sure this is not an over-design, trying to solve an issue related to my workflow for project setup/management.
I’d really like to read some input on the subject, before really deciding to go ahead and break the main C++ project into a “core project” which depends on some others, including the aforementioned weapon lib. So, thoughts? =)