- Home /
Team Development Extreme Frustration
I'm at my wits end trying to do team dev work in Unity. I've spent hours upon hours researching Git, Plastic and even the legacy Team Asset server built in to Unity.
I've found lots of other people with the same question, "How do teams work on the same project" but what I've found is that there are at least a hundred solutions and a hundred ways to go about each solution but they either go into intricate detail assuming the reader has deep knowledge in source control serviceX or they simply say, "Oh just use Git" as if all you do is install Git and go about your development and it all magically works, it knows where to push to, what to ignore and merge conflicts are just a scary story you tell your kids to keep them from turning into coding nerds when they grow up.
There doesn't seem to be much from the guys at Unity either, I've found vague instructions on Unity's site on how to set it up the various source control apps and tie them into Unity but don't go into work flow, or best practices. Can a 5 man team all make edits on one scene file or prefab? Can artists edit a single png at the same time?
TLDR; Does anyone know of a good write up of using Unity in a 2+ person team. Best practices, how to use source control, how to set it up from scratch, how to avoid merge conflicts, do's and don'ts?
So you have read hundreds of threads about it and none suited you. Do you really expect a better treatment? Like if any of those previous OP were given partial answers?
Simply said, use git with github (or bitbucket for that matters). Then use the template for gitignore that is available online. Then enjoy the pain of working with unity project files in VC. There is no magical solution specific to your problem. It is the same for everyone.
If you ask Unity they will direct you towards their super version control system. I have never read it actually does any better than the classic git. Only different is that it costs a kidney to subscribe.
Nothing fixes merge conflicts, this is no specific to Unity, any language leads to merge conflicts when you get two guys working on a project or even one guy working with two computers.
This is it.
I'm not sure how your response answer's my question at the bottom?
"Can a 5 man $$anonymous$$m all make edits on one scene file or prefab?"
Yes, will it go well, probably not. Scene files are hardly merged and resolving merge conflict is close to impossible. Only solution is to launch the editor to overwrite the file and probably lose something in the process.
Can artists edit a single png at the same time?
Yes, but only one can push at a time. I don't know how png are treated by git, this is no Unity issue.
TLDR; Does anyone know of a good write up of using Unity in a 2+ person $$anonymous$$m.
Yes same as any other projects. Create repo, git init, git remote and so on. Nothing new.
Best practices, how to use source control, how to set it up from scratch, how to avoid merge conflicts, do's and don'ts?
Same as any others, you won't avoid merge conflicts. You will see a lot of them and they will become part of your life. They will haunt you, you will see them where they are not, in your code, on your console, at the cashier of your 7/11, behind you when you look in the mirror.
Ever seen that movie the sixth sense? Same with merge conflicts.
Answer by Socapex · Oct 29, 2015 at 12:26 PM
For PNGs: Keep assets on DropBox (not git) and have your artists in a skype chat, irc room. Dropbox works great since it is instant. Which means you get the changes and notifications instantly, your artist can see that a colleague has edited player.png, he can backup his work, reload player.png and paste back his changes etc.
When assets are final, add them to git.
For Git: Learn keep-theirs and keep-ours for merging your scenes (and how they work differently when rebasing). Make sure 1 of your members knows git, in-and-out, rebases, interactive rebasing etc. Make sure that people pull when you tell them too. Their are some parts that you can merge manually, learn the text-file format.
TL;DR; Their is no ultimate perfect solution, because their is no ultimate perfect solution. It sucks, takes time and you will loose work someday sometime, it is part of the learning process.
Your answer
Follow this Question
Related Questions
How does Unity-free source control go wrong 3 Answers
SourceTree - UnityYaml doesn't open 2 Answers
Any cost to develop on Android? 3 Answers
Android licence 1 Answer