團隊合作如何對Unreal/Unity這樣有大量非Source Code的項目進行版本管理?
01-13
謝邀。
有錢的話用perforce,沒錢的話就有一個hack的做法。建兩個repository,一個專門代碼,一個資源文件等。在代碼構建的腳本里,加上自動下載的代碼。這樣構建過程就好像是同一個庫,雖然其實是兩個。
資源那個repository,需要定期清理,可以用git gc --aggressive,也可以幹掉重建。因為有自動下載的代碼,自動重建後只要改一下地址就行了,影響很小。
perforce太難用了!!推薦plastic svm。
UE4自身可以和Preforce做深度結合,包括源代碼到項目管理,相當方便。
當然如果你愛Git,UE4也內置了Git插件
如果沒錢買perforce實際上git/hg也可以用。
我現在的做法是unity使用force text進行序列化,這樣保存的各種prefab和場景都是文本格式直接可讀,甚至支持直接merge場景。
美術素材的話開sub-repository,並定期清理。
當然,prefab的結構上也需要一些設計,使得美術和程序的修改可以並行進行。
這就是為什麼遊戲公司都用perforce來做源碼管理,因為他對非文本文件優化的好啊(不像git的資料庫一樣會迅速膨脹到媽媽都不認識)。你可以配置一個規則,讓這些非文本文件checkout的時候都上鎖,反正美工們也不會同時修改一個文件的,完美解決。
我們代碼和美術資源都是用的svn,但分兩個svn庫,在unity中資源使用force text進行序列化,這樣保存的各種prefab和場景都是文本格式直接可讀,甚至支持直接merge場景。
A:
嘿,你要改這個嗎?改得多嗎?不多我頂了哦。B: 你改吧,我只是把一根線拖了一下。
A:
我去,怎麼又衝突了?誰改了?B:好像我把這個文件改了個名字,所以你這個文件也跟著更新引用了。
我們用UE和SVN,這是我們的日常。perforce,最好的選擇,針對二進位文件有過優化,不過這玩意兒就是挺貴
這也是我們拋棄Unity的主要原因之一。
P4絕對不算最好,功能不足,用只讀來管理狀態的也真是夠了,但如果全部代碼資源一鍋端,它的速度確實是最優的。個人覺得還是分開管理,代碼走git,美術走P4/AB,專人管理接入。
推薦閱讀:
※怎樣評價新發布的unity5.3?
※如何進行Unity3D與Android消息傳遞?
※為什麼Unity3D能夠產生如此多的插件(中間件)?
※Unity3d,UDK 和 CE3 三者之間各有什麼優缺點?如何選擇?
※unity5.X的場景烘培速度慢到令人髮指是什麼原因?有什麼提高速度的優化方案?