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

Unity Asset Server vs. Dropbox vs. SVN vs. AssetCloud?

Discussion in 'Editor & General Support' started by timjaeger, Jun 2, 2011.

  1. timjaeger

    timjaeger

    Joined:
    Jun 2, 2011
    Posts:
    4
    Hi,

    I'm starting a new Unity project with a small team, and am researching the pros / cons of the various ways of utilizing a version control system to manage the code and assets, and am eager to find real-world examples of successes in using either:

    1. Unity Asset Server
    2. Dropbox
    3. SVN / Subversion
    4. AssetCloud

    If there is one sure-fire way someone has found, I am all ears..

    Note: our team is already using Beanstalk for version control, and love the way it works.

    Tim
     
  2. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    0. Basic assumption is that you own Unity Pro and have VCS enabled, otherwise the answer is "don't waste time trying it, you will not have any fun". Thats a general note here, I've seen that your team likely already is on Pro but others might find the comparision meaningfull too.


    2. Suicide unless the harddisk and machine are slow as concurrent access from the dropbox version handling and unity editor lead to write failures and at worst to data lose.
    Also its versioning is very limited and not really usable for game dev - no commit comments etc - only usable for 1-3 person teams at max and even there only if above problem is not present


    1. Great if you don't need branches. Costs $500 / seat on top of pro and requires a vdedicated / dedicated machine with root / admin access. Is the only "artist proof" solution. A clear benefit is that the cache is versioned so no 100 year import wait times after an art checkout - even better, artists with 3ds max can push in max files and it just works for you independent on if you have max or not

    3. Given you are on pro this works for all but prefabs and scenes (same holds for GIT and mercurial too - I would likely go with one of the later two). Definitely the most cost efficient and usable version

    4. Still in beta, hard to say much. Concept wise likely the winner, but how much of it works, how performant it is and if its collision resolution for concurrent editing works makes a "do or die" difference.
    Also its the only solution with an undefined price, no proofen track record and not needfully any guarantee to remain in support (its thread is rather dead unhappily :( )
     
  3. timjaeger

    timjaeger

    Joined:
    Jun 2, 2011
    Posts:
    4
    Dreamora,

    Thanks for you response...It seems clear that SVN is leading the pack here, which isn't a big surprise...I am still looking into AssetCloud, though, as they are very responsive over email.

    Thanks! Thanks! Thanks!
     
  4. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    I wouldn't consider the worst of the 3 "nowadays used low cost" VCS leading the pack.
    Unless you are forced to go with SVN or already are using it, GIT and Mercurial definitely are much stronger than SVN (CVCS as SVN <<<< DVCS as GIT / hq)
     
  5. timjaeger

    timjaeger

    Joined:
    Jun 2, 2011
    Posts:
    4
    @dreamora, thank you for this insight.
     
  6. Demostenes

    Demostenes

    Joined:
    Sep 10, 2010
    Posts:
    1,106
    2dreamora:

    1) Unity asset server does not version cache. After importing assets from asset server Unity ALWAYS do cache, so in case of first sync on huge data it can work for many hours and Unity crashes on out of memory (this bug is not repaired even after half of a year), so you cant just go away and return next day. Lots of fun. AFAIK for asset server you dont need to turn external version control on, it is only meant for SVN etc.

    3) No version control system I know can handle large files well (10MB+), not even SVN, Mercurial....There are some extensions for large file support, but it is pain in the ass and does not work 100%.

    Since asset server was rewritten to use postgress DB it works quite OK. There are some problems (crashes...), but it can be used, it is most usable sollution for unity assets now.

    Most wise is probably to combine asset server with some external version control. Asset server for assets, SVN/Mercurial for code.
     
  7. timjaeger

    timjaeger

    Joined:
    Jun 2, 2011
    Posts:
    4
    Doesn't Asset Server require it's own dedicated machine though? I set it up on my laptop running on localhost, but am confused by how others would access it when my laptop is, say, turned off.
     
  8. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Thats what I said yeah, you need a vdedicated or dedicated machine, thats one of the larger cost drawbacks of AS, as you won't find a hosting service to rent a repo


    @Demostenes:
    Asset Server: I know how it works, I own it since 2.0
    I also don't see the importing you are seing, just updated a 3GB bomb yesterday, no 30mins of import wait.
    The only reason I'm aware of for importing is end user error, more precisely not disabling VCS support, as thats not going to work out. The meta + AS will totally F***up the project and its a matter of a handfull of commits and updates on the 2 systems to break the project for granted (it will start with the AS server refusing to commit cause you are out of date, even though nothing changed on AS and alike)

    Large Files: We don't have problems and sit on SVN too. Yeah it bombs the repo size if they get changed but thats a problem for any versioning system not able to do binary delta patching which would be all (unsure on perforce, never used it, my money tree isn't that large ;)). I know that Mercurial has an extension for it to just kill them from versioning but I'm unsure what to think of it (given I understood right what it does)
    If MOG were crossplatform, I would put binary assets in there and letting SVN / GIT / hq handle the source code only

    Postgres SQL: Must have missed the rewrite I guess. Since I own my AS license back from Unity 2.0 days it was always Postgres SQL, AS2 hasn't changed that end, the implementation just got better and finally more performant as far as I can say
    If its good or not is a different matter, I never had problems with it. My only dislike is that postgres is not the exactly resource saving SQL server but I wouldn't be able to name a usefull alternative that offers the same benefits of external connectivity (for the cool thing that the blurst guys offer on their blog) etc without having other at least as large drawbacks or being undistributable without major license costs (like mysql)
     
    Last edited: Jun 2, 2011
  9. GennadiyKorol

    GennadiyKorol

    Joined:
    Jul 10, 2010
    Posts:
    107
    SVN is actually treating binary and text files in the same exact way, doing DIFFs. It's a known feature and it deals with it without any problem.

    We have been using it for relatively big files and have no problem so far. That being said, it's good to "rebuild" your repository from scratch once in a while.
     
  10. 2dfxman

    2dfxman

    Joined:
    Oct 1, 2010
    Posts:
    178
    Not dropbox. Whatever but that.
     
  11. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Just that there is no binary diff. it would be better if it treated binary changes as such and storing delta patches to apply sequentially instead of just not offering versioning at all aside of full binary blob out of which you commonly can't make anything unless its your own binary format and you wrote a merge / diff tool for it
     
  12. GennadiyKorol

    GennadiyKorol

    Joined:
    Jul 10, 2010
    Posts:
    107
    You could use programs like HexWorkshop to perform the diffs on binary files.
    At the same time, would that help? I don't think any binary format would be mergeable. Not trivially anyway.
     
  13. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    hex does not allow you to do binary diff.

    With untiy its not possible to do it anyway. reason is that the order in files is not fixed. it can change in unpredictable ways
    This lack of continuity makes diff extremely hard to impossible on bit level.
     
  14. zipper

    zipper

    Joined:
    Jun 12, 2011
    Posts:
    89
    I use sugarsync for small projects. It works much better for than Dropbox for Unity projects.

    It is also great for solo projects -> providing an online backup and sync between my desktop (Win7) and laptop (iOS). Additionally, it's simple implementation of file level versioning and restore are useful. And, you can specify which directories files should be stored in when mapping synced folders between synced devices.

    2 cents :)
    zipper
     
  15. andymads

    andymads

    Joined:
    Jun 16, 2011
    Posts:
    1,614
    We're just trying to figure out our work flow before we start an iPhone project. What is the deal with prefabs and scenes?
     
  16. Dreamora

    Dreamora

    Joined:
    Apr 5, 2008
    Posts:
    26,601
    Define a designated "owner and maintainer" and only that person is allowed to modify and commit it. all others can only update their local copy

    That way you can have multiple persons working on one scene with each on its own prefab and only the scene owner commiting scene updates
     
  17. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,772
    We use SVN. I find it does a pretty good job. You'll have a few conflicts early when the project is small but as it grows and there are more prefabs and scene files you'll find that conflicts happen less and less. You just have to be aware of what your team members are working on and practice good habits like committing and updating many times a day.

    Also consider how long the project will run for. Unity is currently integrating SVN into the editor and is also changing the format of scene and prefab files so they can be merged easier. This will be released in the next few months I believe (correct me if I'm wrong).

    Another bonus I've found with SVN is being able to use externals. This is useful if you would like to share common files between projects. Rather than duplicating those files and having to maintain them manually the externals in SVN do all the hard work. The only draw back with externals is you should never set your external to the head revision as if you even want to get an old build out it won't know what revision of the external to get. So you have to explicitly set the revion number and bump the external revision number when ever you update common files. It's not a big deal though.
     
  18. Alexandre-Szykman

    Alexandre-Szykman

    Joined:
    Jul 1, 2014
    Posts:
    2
    Alright guys, sorry if I'm telling any bullshit... I'm doing my first research.

    If I understood, the decision would be between the Unity Asset Server and SVN. For this last one, I have been using a similar, the BitBucket (https://bitbucket.org/), and has been working very well.

    The question is:

    - For the Asset Server, I have to have my own server, which I can set in any computer or find one online. So, if I intend to keep files on cloud and upload a huge amount of data, I would have to pay both for the Team License and a premium storage in a server.

    - For the other option, BitBucket and .git based versioning, in my case, I will use a free service and have unlimited storage (am I right? https://bitbucket.org/plans - Here it says "unlimited repos", which is the closest I found on the site of storage limit, so, so far, I am assuming unlimited storage, the price apparently varies only according to the number of people in the team).

    If I did not say anything wrong, there would be no doubt that the second option is the best, right?

    Thanks!
     
  19. Ignorant

    Ignorant

    Joined:
    Jan 7, 2013
    Posts:
    6
    Alexandre - not exactly. BitBucket allow unlimited repos, but repo is limited to 2GB. (After 1GB you get warning)

    In any case I've used sucessfully both svn and git. For me they are quite similar. However once I (not exactly, mate in my team) encountered problems. I had lot of work then so didn't follow his problems and am not sure what happened. Anyway he couldn't upload very big ligthmap files, or couldn't link them with something. Anyway this huge files were only problem ever encountered by me. And it was repo on github.