Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Preparing for an upcomming project with 18 collaborators. Advice is needed.

Discussion in 'General Discussion' started by Freaking-Pingo, Sep 23, 2014.

  1. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,039
    Was a more general statement applying to everything being discussed. You don't want to spend 2 of your 6 weeks getting everything set-up, training people how to use the tools, etc. You need to pick and choose the key things that will help you deliver your goals.

    EDIT: More specifically given your project is 6 weeks long, if code works and is tested do you really care if it is hard to read? If you do care is peer review a better way to achieve that goal given its many other benefits?
     
    Last edited: Sep 26, 2014
    angrypenguin likes this.
  2. Freaking-Pingo

    Freaking-Pingo

    Joined:
    Aug 1, 2012
    Posts:
    310
    What I am afraid of is after 3-4 weeks of work, already a lot of code have been written. If the programmers is to maintain overview, the code must be readable for all programmers so it doesn't end up in a bundle of hard readable code. I am not sure how much mess 9 programmers can do, during a six week period, but I believe it is a lot. My hope was that a tool such a gendarme, could prevent bad practices, and thus ease programming in the long run. I agree with you, that we don't have the necessary to introduce Gendarme during the six weeks period, but my role in this team is to facilliate work for all the programmers, and so I hope,when not facillitating do quality assurance of the written code using a tool such as gendarme. I have never played around with gendarme before, and so I don't know whether such a tool would become overkill in such a project. To me, it just sounds like a preemptive problemer solver.
     
  3. AndrewGrayGames

    AndrewGrayGames

    Joined:
    Nov 19, 2009
    Posts:
    3,822
    One of the cool things I learned in a previous job, was that there's ways to fight cyclomatic complexity. In a lot of my code, I have setups like such:

    Code (csharp):
    1. public void Foo()
    2. {
    3.     if(_somethingDisqualifiesRunningFoo)
    4.         return;
    5.  
    6.     if(_somethingElseDisqualifiesRunningFoo)
    7.         return;
    8.  
    9.     // Magic...
    10. }
    It's not a silver bullet; there are times when you have to have ifs with a bunch of stuff inside, and you can't just put all that complexity behind a function with disqualifying clauses (that's what I call this particular kind of if). But, it does help.

    If you're really curious, you can see how I'm doing it in my current project, Sara the Shieldmage. Bear in mind this is a work in progress.
     
  4. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    5,039
    Readability is not well addressed by these kinds of tools. They are great for picking up bad habits or common mistakes, but also relatively limited. The readability example wasn't a great one to make my point which was simply that you need to weigh the benefits vs the cost.

    I'd say your number one concern in terms of code quality should be code review. Ideally this should be systematically enforced by for example only allowing code on to the mainline once review is passed.

    Crucible is my favourite tool for this, although you have just a few too many developers to use the really cheap version.
     
    Last edited: Sep 26, 2014
  5. Gigiwoo

    Gigiwoo

    Joined:
    Mar 16, 2011
    Posts:
    2,981
    You don't have time to learn and adopt tools. Focus on the app, setup simple pair programming reviews, and get cracking! Time's a ticking, which is one of the main points of the project. And if, at the end, you learn how to build, finish, and release games in a short time frame, then you will have learned something many pros still struggle with.

    "Finishing is a feature. A very important feature. Your product must have it." - Joel Spolsky.

    Gigi
     
  6. Freaking-Pingo

    Freaking-Pingo

    Joined:
    Aug 1, 2012
    Posts:
    310
    Hi all, we have finally finished our 6 weeks of game development and I have returned simply to provide with an update on how it all went.

    The game we developed is called Dragon Journey. I have created a thread in the Work In Progress forum, which can be found HERE.

    Related to our actual production, things went much smoother than I thought. We managed to establish a code base which was properly maintained and refactored once in a while. It was only in the last week, close to our deadline, that the code based turned into spagetti. Everyone on the team used Git, which was very succesful and only with a few Git conflicts (Which was primarily caused by me). In order to avoid versioning conflicts when working on scene files, we had a post-it with the scene file's name. The owner of this post-it note was crowned as scene maister, and were allowed to work on that scene and none else. As for management, we used Trello which worked very well. My primary job was to make sure that there always was available tasks, and the programmers took those tasks when they had finished their previous task.

    Thank you all for the feedback, it have helped both me and my team during our production period.
     
    angrypenguin and Gigiwoo like this.