Project Structure
how would you guys structure a big project (planning on making a general purpose game engine) wich uses 3 base projects (Editor CoreLibrary Launcher) (windows only) in terms of folder strucutre nameing conventions and overall referencing
there could be a better way than this i belive:
8 Replies
(its alrdy about 5million LOC but i wanna refactor the entire project strucutre to maybe get a performance boost on it)
As a rule, every solution I make gets a Common project for utilities consumed by all projects, and generally these are domain-independent things that would fit just as well in any other solution. If I need a bunch of math operations specific to the domain, those might go in another project that gets consumed by multiple other projects.
If I'm using a database, that probably goes in a Repository project.
Mostly it depends what you need, and which projects need it.
uhh kind of hard to explain how it currently is but ima try it out
the Core project has all logic in it everything thats somehow need processing or methods
the Launcher and Editor are entirely UI projects in those files are only UI depended dataproviders no logic or anything that gets all importet by the core project
OK, so Core is getting all of what I would call Common or Repository or whatnot.
My reason for not doing something like that is that splitting it into multiple projects helps me enforce separation of concerns, so no class is branching out in responsibilities in inappropriate ways because it's convenient.
However, I'm not generally in a context where the overhead of loading multiple assemblies matters.
well ive had some ppl in a other server suggesting me to split it up into each type 1 csproj file so all interfaces go into one project all models get into one all enums all services etc
wich i really doubt is good
No, a project for each kind of type is silly.
But that's the only thing that stuck out to me as notable. I have no ideas about folder structure, and would expect it to be very fluid as the project develops.
hmm thanks alot still maybe someone else has a idea too
Yep.