|
Unity supports external version control in Pro, and has Asset Server for those who wish to license it. Neither version would seem to be very merge-friendly, so I'm curious to hear various workflows for having several people working on a scene simultaneously.
(comments are locked)
|
|
In the early days of Flash game development, when having a .fla was required, before ActionScript-only projects were possible, a big rule we had was to put nothing in the scene, nothing on the timeline. The .fla only contained a single line of code, which called main() in our external code files. Assets/data were kept elsewhere. We are doing the same in Unity, to solve the same problem of a highly shared binary file. We don't attempt to share the file, but rather, make it so this file is insignificant, or infrequently changed. Essentially, we have 2 tools; one which goes thru the scene and exports the representation to an xml file, and another which rehydrates the scene from that file... which is used during both design-time and run-time. Our workflow is, we source control the xml file and an almost empty scene. When someone wants to work on the scene, they load from xml, modify the scene, store to xml, and then we can merge the xml files. Another advantage to this approach is that in the xml file, instead of storing the position for Prefab X, we store it as the spawn point for MobID X (conceptually). This allows us to create more of an abstraction between the "mechanical" art assets and level design, so each can vary independently. Even doing this, the content of our scenes is limited. We data-drive as much as possible. (We actually don't have spawn points, but spawn regions. We don't place monsters with items, we have xml drop tables.) This also solves another problem we have; which is our server isn't Unity, but still needs a representation of the world we can easily keep in sync. Could you give a little more details on this solution? For example are these 2 tool custom made by your team?
Mar 25 at 12:30 PM
John_
This is a workaround, albeit an elegant one. Is it really true that the best answer to "How do you use version control with Unity scenes?" is "Don't"?
Mar 18 at 11:29 PM
yoyo
(comments are locked)
|
|
You might want to check out our newly open-sourced(*) project Unity Text Scene, available at GitHub here: UnityTextScene project. As it currently says in the README:
(*) The code is available under an MIT license (see the http://LICENSE.txt file in the project). It's an interesting project. Too bad Unity doesn't expose all component variables.
Apr 09 at 10:59 AM
Statement ♦♦
It's really a interesting project. I wonder if TextScene can compatible with Unity 3.3.
Jun 15 at 07:43 AM
jose
Unity 3.5 will switch serialization to yaml text files, at which point TextScene will be redundant.
Jul 20 at 05:50 PM
yoyo
(comments are locked)
|
|
Updated for Unity3.5: All Unity versions (including Free) now support version control. Steps:
Hope this helps! Source: http://unity3d.com/support/documentation/Manual/ExternalVersionControlSystemSupport.html Also, the version of MonoDevelop that ships with Unity 3.5 has integrated git support, a highly useful addition to the version control workflow!
Mar 09 at 06:37 AM
yoyo
(comments are locked)
|
|
A way to do it if real source control is not an option is distributing asset bundles with the changes. Beware that there seem to be quite some bugs and differences in the importers/exporters of different versions. My designer works mainly with Unity on PC and I import it into Unity iPhone, but have to make a backup first because often after importing an asset bundle all Unity can do is crash. Although it's not without problems (mainly the instability of Unity after imports), it is an easy method to work as long as different members of the team do quite separate things. If you have more than one coder, it could be an option to at least have the Scripts under source control (should work with even the free Unity).
(comments are locked)
|
|
The way my team does it is separate out the assets and the code (zipping up with the package option) and then using SVN to take care of it. When a person downloads the latest updates they just have to unzip the code over the assets and away they go. Then when pieces need to be merged one of the team locks everything down and creates a new build for everyone to work from. Same goes for scenes, we'll all work on our own version off the base and then one person will take responsibility for copying it all together. A little fiddly but it works.
(comments are locked)
|
1 2 next page »
Unity Answers has moved to a new system, and some users may have trouble logging in.
Removed pro-only tag, as the discussion on vcs workflow is also relevant for people without Unity Pro.
The Unity roadmap says that Unity 3.5 will include text-based scene and prefab support, which will be a huge step forward! "Unity will now write all data in a text-based file format for scenes, prefabs, materials and other binary files in your project folder. The format is based on YAML and is optimized for being easy to merge. Multiple team members can work on a scene at the same time and merge the resulting changes afterwards."
Until recently we've had labelled washers hanging on the wall of our studio for the most popular binary files in our project, including several scene files and some key prefabs. If you want to work on those files, get the washer first! We recently virtualized the washers with http://trello.com. We also just upgraded to Unity 3.5 and text-based serialization, so merge conflicts should be fixable (with caution) as opposed to in the past where one person had to redo their work.