[英]Version control system for game development with UDK?
我們的團隊正在考慮使用虛幻開發工具包制作游戲,我們正在尋找版本控制解決方案。
我一直偏愛分散的VCS,如Git和Mercurial,並將其用於我的所有個人項目。 雖然我聽說過使用這些系統進行游戲開發的問題,但它們並不適合大二進制文件。
Subversion似乎是一個很好的解決方案,但我過去根本沒有使用它,所以我真的不知道它提供了什么。
您可以毫無問題地使用Mercurial或Git。 我不知道為什么@TomTom在沒有提供任何關於原因的提示的情況下以這種方式說明。
當然,您必須管理每個游戲開發(電影,紋理,地圖等)附帶的各種二進制文件。 但是這兩種軟件都有辦法處理它們。
Mercurial有各種擴展來處理大文件,特別是二進制文件。
從版本2.0開始, 大文件擴展包含在Mercurial中,您無需下載任何其他內容即可使用它。 文件不直接存儲在存儲庫中,但Mercurial會跟蹤每個變更集所需的文件版本,因此您可以在需要時使用正確的文件下載游戲的精確版本。
在2.0之前,主要使用了兩個擴展:
我不太熟悉Git處理大文件的可能性,但我知道存在各種解決方案。 這篇文章應該給出一些好的指示: 使用git管理大型二進制文件
我聽說很多關於git-annex的好消息。
我已經將SVN與大文件一起使用,並且我沒有比Mercurial(沒有擴展名)更好地管理它們的印象。
如果你決定使用擴展來管理Mercurial / Git的大文件,那么Subversion在功能方面就落后了。
關於保持二進制文件版本與源同步的問題,bot Mercurial和Git擴展可以很好地處理這個問題。
每個版本的二進制文件都存儲在一個單獨的集中目錄(Mercurial術語中的largefile store
)中,當dev克隆存儲庫或更新到特定的變更集時,只從該存儲中下載所需的文件 。
您甚至可以將同一商店用於各種存儲庫!
將文件添加到商店或更新文件的過程對開發人員來說幾乎是透明的,因此例如對於長學習曲線沒有問題。
總而言之,我真的不明白為什么Git或Mercurial沒有完成任務,沒有其他答案給出任何真正的理由。
在我看來,大型游戲公司堅持使用較舊的工具,因為更改需要時間,當您付費購買時,您會使用它! 有多少公司仍在使用VSS或CVS,因為層次結構不會聽到任何其他內容? 上個月我們剛剛遷移到TFS(來自VSS)我正在工作......
我堅持用Git。 存儲大型二進制文件可能會導致丟失的內容,您可以通過團隊協作獲得更多收益。 您將更新,更改,合並代碼,而不僅僅是存儲二進制文件,DVCS可以更好地處理這些問題。
Hq(Mercurial)2.0支持大文件很棒。
以前它是LargefilesExtension ,但是從版本2.0開始,這是與核心一起分發的。
大型游戲工作室通常使用http://www.perforce.com/ (說實話,我不知道為什么。)
SVN也是一個不錯的選擇,但與Git和Mercurial相比,它有點過時了。
無論如何,為什么要在存儲庫中放置大型二進制文件? 您肯定希望為所有已編譯的二進制文件等添加忽略行。始終確保只包含源文件:-)
我個人堅持使用Mercurial或Git。
我總是喜歡分散的VCS,如Git和Mercurial,
完全無法使用。 點。
這里的訣竅是,在您的存儲庫很重要的時候,您不能擁有一個分布式存儲庫,這種重要性(數據量)可能與大多數人無關。
如果你進行游戲開發,你將擁有大量受版本控制的資產,程序員對ZERO感興趣。甚至大多數圖形用戶也不會關心。 DCS可以在您希望存儲庫大於典型硬盤的那一刻分崩離析。 根據你的圖形有多好,你可以很容易地擊中千+ gb opf存儲庫。 必須將其合並到我的本地存儲庫中作為一個程序員而不是處理除了小測試圖形之外的grpahics的概念讓我感到害怕 - 因為它會讓網絡管理員瘋狂。
當你正確處理動畫/電影時,這會變得更糟。 每個更改和渲染都是另一個版本。 繁榮。 這很糟糕,可以在中央存儲庫中處理(我可以將光盤添加到中央服務器),當你將它分發給每個版本的每個團隊成員時,它就完全無法使用。
顛覆似乎是一個很好的解決方案,
可能,如果你能處理它的愚蠢行為。
我強烈推薦一個prooven解決方案 - perforce幾乎能夠處理它prooven。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.