Haden2 / Spectrum

A horror game under development
0 stars 0 forks source link

Discuss best practices: branching, peer review. #20

Closed thomas-j-sell closed 9 years ago

thomas-j-sell commented 9 years ago

In the interest of preventing problems, I think we should have a short discussion about our workflow and best practices.

I think we should put a peer review gated wall around the master branch. Meaning nothing is committed and pushed directly to master, but instead will come to master through pull requests. This will help insure that master will always be in good shape; that is always be running, stable and relatively bug free. This will allow us to experiment as much as we want (in other branches) without fear of breaking anything and maintain the integrity of the project.

The peer review process will also promote discussion, good design choices, and testing. This will help improve solutions, prevent bugs and headaches, and keep the project running smoothly.

This might be a bit more formal then we need to be for this project, but I really think it could be beneficial, especially as the project progresses. @Haden2 what do you think?

Haden2 commented 9 years ago

Right now it appears that the workflow consists of me editing in the afternoon, you editing in the evening when I am at work, I come home to review your edits, and then you review my edits. So the system of how things are going is pretty nice actually. It seems like someone is always working on something which will make this games development so much faster.

That makes sense. Is there a way for us to see in game the changes before we move them to the master branch? Reviewing and comment is smart. We want the game to be good so getting everything solved now helps in the long run. Glad it will also help with design choice too. I need to keep in mind that you do not know exactly what I am picturing the game as in my mind. So I have to make sure I have good communication there too.

thomas-j-sell commented 9 years ago

Yes, a hands on with changes before a merge is a big part of this. When you review a pull request you would switch to that branch and test out everything that's changed.

Haden2 commented 9 years ago

Funny how we mention doing different branches to prevent errors, and then errors happen. Haha. So in light of todays events, we should discuss how we want to prevent that from happening again. What option do you like best: Giving separate tasks for each person, working at different times, or working in small chunks? I am not great at working in small chunks. I work best by taking breaks between work so I can reset my mind. So I work over long durations of time. My work schedule is 5pm-1:30am on weekdays, alternating between every other tuesday and thursday off. And then I work 3pm-11:30pm on alternating weekends. I am not sure what your schedule is like or when you prefer to work on the project. But typically what I have been doing is working on the game in the morning, reading your edits when I am on break at work, and then reviewing and editing when I get home from work. Delegating tasks wouldn't be too hard, but I kind of like the checks and balances system that we have going on right now by working on something, reviewing it together, and then fixing it. I guess once something is reviewed, it can be assigned to someone. And to clarify from the macaroni art comment from earlier, I wasn't saying you were critical or anything like that. My point was just that I was excited that I was actually creating something and was really excited to see it work. Absolutely critic me and tell me when something is wrong. I want the game to work well, my feelings won't be hurt.

thomas-j-sell commented 9 years ago

Most merge conflicts are easy to reconcile. The issue is the way that unity encodes the scene is not something that I understand and not something I can manually edit, at least not yet. So we just need to be careful to work on different parts of a scene or work in different scenes. All of the assets are scene independent so working on new models, animations or scripts can be done in temporary scenes while other people work on other things or other scenes.

Here the benefit of working off branches, not master, is that we can't accidentally push changes that break things. If this kind of things happens again there are some more work intensive options that we can do to recover things that would be lost.

Moral of the story is that even if we do everything right we can still run into surprises.