Jump to content

Unigine Version Control Help Request


photo

Recommended Posts

Dear Members of Unigine.

We are new to Unigine and we are currently struggling to properly set up and use version control with Unigine.  
We are currently using Perforce (as It was working very nice with Unreal) and I am following the instructions at https://developer.unigine.com/docs/future/editor2/assets_workflow/version_control


We have two main issues at the moment:

  1. Initial Version Control configuration
  2. Version control collaboration.
     

Initial Version Control configuration:

The initial set-up seems to be a bit confusing. Could you please confirm the following steps:

  • Create Unigine project.
  • Add the following to version control:
    1. Data
    2. Source
    3. *.project and *.csproj (as we are working on a C# project).
  • Create an ignore file (I am attaching my ignore configuration as p4ignorne.txt)
  • Manually send the bin folder to the other members collaborating on the project for them to add it to the project folder.   

Sometimes they are not able to add the project to the Unigine SDK Browser. The browser seems to find the folder but all of the project details are blank and they cannot add the project. (I still don’t understand what triggers the ability to add it to the SDK browser)

Version Control Collaboration

 We noticed that every time we create/import a new asset, Unigine creates a *.meta file that accompanies it. Do we need to add both (the file and its relevant metafile for every Unigine asset like materials, textures, world) to the version control?

Once we finally managed to get a team working with Version Control (which is often a hit and miss due to the problems previously mentioned), we are experiencing sync issues.

For example:

  • Sometimes, when selecting an Unigine world, it  goes completely black when it opens, or disappears from the asset browser (in Unigine)
  • The asset browser preview of objects and materials does not get sync.  If I create a material, added to the world send it to version control, the other person would see changes in the world, and the material properties but the preview in the asset browser does not get sync. This could be extremely confusing and difficult to manage when working on a large number of files.

 Thanks in advance for your time.
Mario

p4ignore.txt

Link to comment

MarioBag

Quote

Sometimes they are not able to add the project to the Unigine SDK Browser. The browser seems to find the folder but all of the project details are blank and they cannot add the project.

Try to set Allwrite attribute in Perforce Workspace (Advanced tab). It's disabled by default and more likely causing the issues with SDK Browser and .project file.

 

Quote

We noticed that every time we create/import a new asset, Unigine creates a *.meta file that accompanies it. Do we need to add both (the file and its relevant metafile for every Unigine asset like materials, textures, world) to the version control?

The only folder that you can safely remove from VCS (but we do not recommend to do this) is data/.runtimes. If you will not commit changes to this directory it will be regenerated on Editor start, so the Editor launch speed would be quite slow (tens minutes on clean repo with a relatively big project like Fox Hole, the bigger project - the longer it would load), so there is no real need to exclude this directory from VCS.

Deleting .cache_textures and .thumbnails textures also will lead to spikes when you scroll asset browser or material browser, since each time on clean repo all these thumbnails needs to be generated from scratch.

 

Quote
  • Sometimes, when selecting an Unigine world, it  goes completely black when it opens, or disappears from the asset browser (in Unigine)

Maybe it's related to Allwrite option, but it's quite hard to predict what can cause this behavior. We need some stable reproduction or repo access and commit revision, so we can check what's really happens there.

 

Quote
  • The asset browser preview of objects and materials does not get sync.  If I create a material, added to the world send it to version control, the other person would see changes in the world, and the material properties but the preview in the asset browser does not get sync. This could be extremely confusing and difficult to manage when working on a large number of files.

How do you commit and checkout changes? Do you close Editor before commit and before checkout? Or you commit and checkout with running Editor instances? We do recommend to close the Editor before commit and checkout to avoid any possible conflicts that may occur to the currently opened for editing files.

It's also quite hard to guess what's going on there without a proper reproduction, so if it's possible to see this in live action on some content repo - it would be great.

Thanks!

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment

Hi Silent. 
Thanks for your detailed response. 

I tried again on a clean repository, manually providing the bin folder to the another developer and setting up Allwrite attribute in the workspace. This combination seems to have work on his computer to be able to visualize and open the Unigine project. (I still need to check with other developers and will confirm after). 

The material preview on the asset browser now seems to be fixed (probably as a combination of both a clean repository and your suggested Allwrite settings). Will keep an eye to see if the problem persist. Following your suggestion, we will now close Unigine before checking out and committing files. 

We are now facing another issue (which I think could be related to the AllWrite).  Checking out and locking a file does not block other uses to overwrite that file.
If I checkout and lock a file, the other developer can see the status (both locked and checked out by me) but he can still modify the file.

Is there a way to block other users from modifying a files that are currently edited locked/check out? 
We are using the same example of the material. If I checkout and lock a material, the other developer can see its state, but he can still change the material properties in engine. Is there a way to stop this ?

Once again thanks for your time.

All the best
 

Link to comment

Unfortunately, Editor doesn't understand what files are locked / unlocked, since that's only a Perforce abstraction.

In order to support this functionality some kind of Editor extension plugin is required that would connect to Perforce and tell the asset system which files can't be edited. I'm also not quite sure if it's even possible at this time to lock files for editing. There might be some additional changes required to the Editor's API first that will allow such plugins to be written.

How to submit a good bug report
---
FTP server for test scenes and user uploads:

Link to comment
×
×
  • Create New...