(Deep Sea Game) Using Version Control with Big Project / by Legolas Wang

(Deep Sea Game) Using Version Control with Big Project

Using version control with relative big project is an absolute nightmare. In this article, I’ll share the problem we encountered in different stages of Unity game development of Deep Sea game.

Using version control is very much necessary when you do anything that involves constantly updating. That is very true for the unity games. At the very beginning stage of the game, the assets are minimal, the git version control is actually awesome. I choose to let the team use unity Unity Team Advanced to allow collaboration between team members, using built-in version control to maintain the unity game version. It was happy at the beginning when the project is small, small than 1 Gigs.

Unity Dashboard.png

Aside from the version control, unity team comes with features like cloud build which always give us testable built at any stage. So myself using Mac and iOS could collaborate with team members using Windows and Android. The problem arises when the project size reaches over 5 gigs, everything just takes too much time and the working speed had been brought down dramatically.

For example, at the time the unity project reaches the size of probably 5 gigs, every Commit and Retrieve takes quite a lot of time to scan the files. We are forced to see the long “updating” process every time starts working on project, or in the middle of editing.

Uploading.png

The updating has become a new routine for the game development process, which is really a bad things. And things only go worse from that, I still remember one time a critical bug hits and I have no choice but have to revert to previous version. It is supposed to be the moment when the version control shines. But it is not the truth about our project, after the reverting back to a supposed perfect version I committed before, the result I get is multiple prefab linking lost.

Which, to my best guess, is caused by myself moving the places of multiple files, including deleting and changing folders. Which unity team failed to get it right somehow. And the supposed good experience goes worse. At the very end, when the project size grows up to the 20 Gigs. I have to constantly do local compression just to prevent the version control fails.

It’s quite said. I haven’t found a very solid solution about large project doing properly version control. I did a search about this topic, and unity official do have an article guiding [Large Project Organisation](https://unity3d.com/learn/tutorials/topics/tips/large-project-organisation) you how to manage files with very big projects. It focus on assets optimization, hierarchy depth, etc. And it’s an interesting read. I suppose next time, when I need to work with large project organization, it is best to think clearly about how you want to proper organize those files.

Manual.png

Oh, and one thing worth mentioning! When you work with large scene, be sure to use smaller scene to test features before implement them directly, this could give you better performance in Unity editor, and less likely to break anything already in the large scene.