團隊合作如何對Unreal/Unity這樣有大量非Source Code的項目進行版本管理?


謝邀。

有錢的話用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的場景烘培速度慢到令人髮指是什麼原因?有什麼提高速度的優化方案?

TAG:Unity遊戲引擎 | 代碼管理 | 團隊合作 | 虛幻引擎 |