I've got a game (a roguelike to be specific) in C# that I'm in the process of cleaning up to open source. One step I'd like to take is splitting it into three distinct pieces:
A simple package of utility classes, things like 2D arrays, vectors, etc.
A terminal UI package that gives you a curses-like display. It depends on 1.
The actual game, which uses 1 and 2.
Right now, these are all separate projects in the same solution, but I'd kind of like to make them completely separate projects (in the "open source project" sense, not the "visual studio project" use of the term) with their own names and repos. I think, at the very least, #1 is generally useful even if you aren't building game, and I don't want someone to have to build an entire game just to get some handy functions.
What I'm not sure about is how to handle the dependencies if I split up the solution. If someone decides they want to sync the game, how should I ensure they also get 1 and 2?
Include the built dependent .dlls in the games repo?
Just document, "you need these other projects and they must be in a path relative to the game like this".
Just leave it all one giant solution and a single repo.
Something I'm not thinking of?