inda21plusplus / Project-Delta

This is the repository for the group project assignment in the course "Project in Introduction to Computer Science" (DD1396), by the Inda21plusplus group.
MIT License
8 stars 0 forks source link

First commit #3

Closed ollisco closed 2 years ago

ollisco commented 2 years ago

Closes #1, #2 This is the first official commit to the project where I added the base crates for the rust development process and GitHub Workflows folder with a base action to check the rust code.

If you have any ideas or opinions, please share them.

foodelevator commented 2 years ago

Since a lot of code will be shared between the two binary crates I think we should make a cargo workspace in the root folder. This would also sinplify the CI/CD since the whole project can be checked with one command

lukasfri commented 2 years ago

Since a lot of code will be shared between the two binary crates I think we should make a cargo workspace in the root folder. This would also sinplify the CI/CD since the whole project can be checked with one command

Isn't this a one-sided relationship since the IDE imports all of the game engine but the game engine imports nothing? I agree a workspace makes sense just in general, but rather just because it is easier to manage.

foodelevator commented 2 years ago

It would probably make our lives easier if we would split the code base up in several library crates (such as ecs, graphics, physics, sound, scripting, etc, and some kind of core that binds most things together) and two binary crates, one which is an IDE/Editor and one used when distibuting a game.

The binary crates would (in)directly depend on (almost?) everything and there would be a few dependencies between the library crates.

lukasfri commented 2 years ago

It would probably make our lives easier if we would split the code base up in several library crates (such as ecs, graphics, physics, sound, scripting, etc, and some kind of core that binds most things together) and two binary crates, one which is an IDE/Editor and one used when distibuting a game.

The binary crates would (in)directly depend on (almost?) everything and there would be a few dependencies between the library crates.

Yes I agree if we want to go that route then ofcourse it makes sense. I do like that approach even tho it can become a bit too convoluted at times. I don't think we should use it to an unnecessary degree and generally be taken on a case by case basis. How detailed would we want it to be? Should animating movements etc be a separate crate? Should 3D models be a separate one, should 2D sprites be one(assuming we plan on supporting them? To what degree do we break it down? Maybe seems a bit unneeded to decide right now, but food for thought.

ollisco commented 2 years ago

Since a lot of code will be shared between the two binary crates I think we should make a cargo workspace in the root folder. This would also sinplify the CI/CD since the whole project can be checked with one command

Like @DreamplaySE said, Do we want our code to be shared both ways? Also, the upside of having "duplicate code" where ide and game engine has its own runs is that you can see easily if the job failed while checking the IDE or the Game Engine without having to look at the error message.