Search Unity

  1. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

Sharing project with contractor

Discussion in 'General Discussion' started by FiveFingerStudios, Jul 6, 2018.

  1. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    404
    I have been working on my VR game for the past two years, and I'm a programmer by trade but need to contract an outside programmer for additional work. I'm curious to know if it is standard practice to share entire or partial projects with contractors who need it for their work tasks? I will have an NDA for this contractor, but I'm not going to lie...it makes me feel really uneasy, this is so much code, assets, and just all of my work!

    Any advice is much appreciated, thanks!
     
  2. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    8,953
    It depends on the type of work they will be doing. If for example they were to design a complex but isolated system, they may be able to develop it without any of your code, just like building any system that you'd throw up on the asset store.
     
    Kiwasi likes this.
  3. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,256
    The best idea is most likely to share as little as possible. Meaning isolate and remove anything not related to their task at hand.
     
    Kiwasi likes this.
  4. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,853
    Its absolutely standard practice to share entire projects. There are some specific cases as described by @Joe-Censored but this is the exception not the rule.

    If you are worried someone will take your work and publish it then hire someone else. Factors to protected against this in rough order of best to worst:

    1. Hire someone you know well
    2. Hire someone who is well known publicly
    3. Hire someone who comes recommended form people you know well
    4. Hire someone who will work in your office on your equipment
    5. Hire someone who will work in your office
    6. Hire someone who works locally so you can easily and frequently meet in person

    If you must hire a remote contractor, do lost of research, get recommendations from verifiable sources, etc, and try to hire someone in your country.
     
    GetBrinxed and Kiwasi like this.
  5. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    404

    This work will require access to code, but I'm thinking it is a good idea to try to "isolate and remove anything not related to their task at hand" as suggested by @neginfinity. Thanks
     
  6. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    404
    This is the route I'm going to go, I feel better hearing that even isolating certain things in the project is still ok. Thanks
     
  7. FiveFingerStudios

    FiveFingerStudios

    Joined:
    Apr 22, 2016
    Posts:
    404
    These are great suggestions, but since this person would work remotely and lives across the country, factor 2 would be my best bet. I'll continue my research, and work on isolating the project so that I can share only what is absolutely needed. Thanks for replying.
     
  8. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,729
    Just be aware that the more you cut out, the less effective your freelancer can be.
     
  9. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,256
    It depends on the work freelancer has to do. Certain things can be completely isolated from ANYTHING the came could possibly do.
     
  10. passerbycmc

    passerbycmc

    Joined:
    Feb 12, 2015
    Posts:
    1,479
    Well you would be spending your own time cutting it up, and you will slow the process down when the contractor has to see how it all works.

    Assuming you are getting one to save time, but trying to be overly restrictive will waste time and money.

    Hire someone you trust or a professional with a reputation. Also hire local it makes stuff so much easier.
     
  11. neginfinity

    neginfinity

    Joined:
    Jan 27, 2013
    Posts:
    8,256
    You're making it sound more complicated than it is.

    The thing is... it isn't even difficult.

    Last things I were working with were completely isolated from everything else without any cutting up.

    The way it worked for me was that I got task description, wrote an api for it, wrote a sample, documentation, etc, and then would hand it over to employer, who would integrate it at their side.

    And everybody was happy with it.

    The approach was used all the way to full game prototypes. I make a prototype with simplistic graphics, make sure it works as intended and that models can be swapped, hand it over, and they replace stuff with theirs.

    Of course in a few cases I got a bit of extra back, like stuff that had integrated models in it, but in most cases I saw less than 1% of the other stuff that wasn't made by me.

    No complaints from me, no complaints from employer, good/solid relationship.

    Not seeing a problem.

    But as I said, it depends on the type of work beign done. If the employer has coded himself into a corner and now looking for a way out, they'll probably need to give full access, and even in this case they can withhold most of art assets without problem.
     
    Ryiah, Billy4184 and Kiwasi like this.
  12. Billy4184

    Billy4184

    Joined:
    Jul 7, 2014
    Posts:
    5,358
    If you have your freelancer write something approximating a well-written asset store package with a limited scope of flexibility, it shouldn't be hard to integrate it. It depends though on what sort of stuff you're getting done, and how much you are familiar with the area they'll be working in.
     
    GetBrinxed and Ryiah like this.
  13. eatsleepindie

    eatsleepindie

    Joined:
    Aug 3, 2012
    Posts:
    348
    Just throwing this out there based on experience both as the one hiring and the one getting hired, but you might want to consider hiring someone for a relatively simple task to see how things go. It'll cost you that extra investment, but the experience you gain even from that small project insofar as whether they deliver, the quality of their work, etc. can save you a lot of headache in the long run. It saves you from having to hand over any of your work before receiving work from the person you've hired. If things work out then you can start sharing the project, if not then you have nothing to worry about.

    I have heard a lot of horror stories from clients who in the past had handed over source and payment to just never hear from the other party again. It doesn't take much steal someone's videos/screenshots, toss up a website, and appear to have experience. The only way to really know is to work with them.

    * Edit: That last bit was a bit melodramatic, yeah? It's not the only way to know, since there are obviously developers/artists known and trusted in the community, etc. It is the only way to know if you''ll work well together, however.
     
    Last edited: Jul 17, 2018
    ikazrima, angrypenguin and Kiwasi like this.
  14. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    13,049
    I think it was spot on.

    I wouldn't be concerned about a well-reputed person stealing my stuff, but there's plenty of other reasons I might not want to work with someone on a longer / harder / higher-risk project. Doing something small first is a very good idea.
     
  15. eatsleepindie

    eatsleepindie

    Joined:
    Aug 3, 2012
    Posts:
    348
    I was just covering my bases before I got "that is not the only way to know" responses, which would have just distracted from the point.
     
  16. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    13,049
    I figured as much. But since you did cover your bases, I could come right along and underscore your point. ;)
     
  17. djweinbaum

    djweinbaum

    Joined:
    Nov 3, 2013
    Posts:
    525
    To answer your question, yes its very common practice. If its any consolation, consider this: If you take any game dev at random the chance that they are a thief is very low. If you contract a game dev who you've talked to, seen their portfolio, and vetted, the chance that they are a thief is astronomically low. You just need to make sure they understand that nothing is to be shared or used in their own stuff, and then on top of that a written contract (NDA). Even if they do steal something, the chance that it will do substantial damage to you is low. I mean Half-Life 2 was stolen, source code and all back in 2003 before it was released. Look how much it totally destroyed them (not at all), and their assets are likely much higher profile and sought after than yours. Basically I think its nothing to worry about. And extra precaution may be wasted energy ¯\_(ツ)_/¯
     
  18. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,729
    Honestly for a programmer even that is a bit over the top. You can cut my workload (and hence your costs) dramatically if you let me drop in shared stuff. 95% of the code in your game isn't unique. Incorporating existing systems is often the best solution.
     
  19. aer0ace

    aer0ace

    Joined:
    May 11, 2012
    Posts:
    1,273
    Since I have somewhat the same concerns, I thought I'd chime in.

    I was thinking along the same lines as @neginfinity. What if the work is such that you can create a completely separate system accessed via an API? The system could be a separate dll that the game can load, and you provide an initial API to the contractor, and provide builds to them rather than source. Yes, that's a lot of overhead, but it could possibly mitigate some of those concerns. Since I'm also concerned about decompiled projects, I decided to invest some time in using an obfuscator, which could possibly help even more. Just some thoughts. I don't know how practical that is, but it's definitely an option.
     
unityunity