So I've never really worked or even opened Unity for that matter and now having to dive right in I have a ton of questions.
Basically some features that are in UDK / Unreal that I would like to find out if they are in Unity or if there are similiar work arounds with it.
So on with the questions.
1.) Q: Can multiple people work inside a unity map / level like in UDK.
Ex. I create a persistent map titled RaceTrack_P and then add in RaceTrack_GEO (for all the geometry in the map), RaceTrack_LIGHTS, RaceTrack_GP (for gameplay, kisment, etc)
Basically I want to be able to do the geo and lights together while another person does the gameplay / scripting part.
Currently I have to hand everything off to the other person and wait until they are done before I can make more changes. A:
Don't know if this has been mentioned before but what me and others do at my studio (since we have that same problem of not being able to work on map layers like Unreal allows us to) we'll have different layers of gameobjects in the hierarchy.
For example all the design stuff goes in the design gameobject (paths, specific designer assets, designer scripts, etc), another one called data (for persistant game data and certain scripts), UI (pretty self-explanatory) and of course environment (prefabs of art assets essentially with triggers and collision tossed in there).
with that set up, say I'm working on a level named "Level A"...now I can open up "Level A" on my pc and access the environment gameobject with all of the art assets and my buddy can be working on the design end on the design gameobject.
I do my work locally and once I'm done with my pass on art, I then take the entire environment gameobject and paste that into a new .unity file named "Level A Art" and export out just the level and not the prefabs (unless I made any changes to a specific prefab) and from there I access the main computer we're merging our stuff into, import the package I exported from my machine, take the environment game object from "Level A Art" and paste that into "Level A," and now the art is updated for that Level and anyone who syncs to latest content will get the latest changes I merged.
Yeah, there's definitely some drawbacks to this method and some pros (such as programmer, designer and art being able to work on the same map at the same time if need be) but that's the way we've figured our way around this missing feature in Unity.
Hopefully that was clear enough and might help in some way ?
2.) Can you change the mouse movement controls in Unity to act more like UDK?
More questions to come. I'll update this first post as they get answered.
Replies
If you have a server, and multiple people are working on the files it might corrupt the whole thing. Unless you use a SVN system or Unity Asset Server itself.
You won't be able to save the scene separately tho. Whoever has the scene can move objects and light, the other people will only be able to update scripts, textures, etc.
And that will be automatically updating. Believe me, that's not a good option if your scene is heavy.
There's support in the Pro version for hooking the project up to a CVS type system, too.
So if I understand right. I can say take my Track level, geometry for the terrain, track, side of the track stuff, props, etc and lay it all out in the level as i need and save it all as a giant prefab?
Then I can also do this for lighting?
After this is done I can then load a level where the designer or programmer can then edit code, scripts, etc while I make changes to the prefab?
so for example you can add a Props Prefab in your Production Scene and check in. Now create a work scene and place all the stuff where you want it. when youre done overwrite the prefab you have created before with your new stuff (make new empty game object paste everything - now drag&drop the gameobject to your prefab in project view).
but remember - prefab in prefab dont get updated, which sucks hard (called nested prefabs).
but looking at their 2011 roadmap - it seams like theyre already after fixing all this crap and implement colaborative scene handling and the like..
edit: well yeah - use a work scene and update the gigangtic level prefab
The good thing about component design is that it tends to be very good for rapid prototyping. (one of Unity's biggest strengths) It also responds well to data-driven design, and incorporating external scripting into games. (such as XML or LUA)
So, if your coder kinda owns the unity project, and your doing arts, you can take your stuff, create a unity package, and pass it to him. Then when he/she opens that package, it will place everything in the same location within the directory that you had them in.
Not sure how you would go about making changes, you would have to see if sending a new asset bundle with over-wright the existing files with the same names. If it does though, that would be a good solution.
Yeah, that's pretty much how I did it and it was the simplest option for me outside of taking turns with a scene or manually copying assets. Stuff to keep in mind would be anything that is saved in the scene itself, such as beast or render settings. Additionally, connections to lightmaps are scene dependent, so while you can bake outside of the scene (obviously saves a lot of time) you'll need to edit the main scene to attach the lightmaps afterwards. Prefabs are a good workaround and are serviceable for collaborative development but clearly are not ideal.
For example all the design stuff goes in the design gameobject (paths, specific designer assets, designer scripts, etc), another one called data (for persistant game data and certain scripts), UI (pretty self-explanatory) and of course environment (prefabs of art assets essentially with triggers and collision tossed in there).
with that set up, say I'm working on a level named "Level A"...now I can open up "Level A" on my pc and access the environment gameobject with all of the art assets and my buddy can be working on the design end on the design gameobject.
I do my work locally and once I'm done with my pass on art, I then take the entire environment gameobject and paste that into a new .unity file named "Level A Art" and export out just the level and not the prefabs (unless I made any changes to a specific prefab) and from there I access the main computer we're merging our stuff into, import the package I exported from my machine, take the environment game object from "Level A Art" and paste that into "Level A," and now the art is updated for that Level and anyone who syncs to latest content will get the latest changes I merged.
Yeah, there's definitely some drawbacks to this method and some pros (such as programmer, designer and art being able to work on the same map at the same time if need be) but that's the way we've figured our way around this missing feature in Unity.
Hopefully that was clear enough and might help in some way ?
Here's the link: ROADMAP 2011
Until then, you're stuck with the prefab trick etc.
Can you change the mouse movement controls in Unity to act more like UDK?
the unity documentation doesn't have any mention of this and i think it might be something important worth noting for people not to get all frustrated with ><