遊戲開發如何處理美術資源和程式分支比較好?
程式策劃美術協作需要版本管理工具,做過端遊手遊,知道全用svn的,美術用alien brain程式用perforce的,美術用svn程式用git的,還有全git的,但遇到美術資源要往版本分支提交或合併回來時總沒有優雅的方案,總會有痛點,尤其在git flow下各種feature分支。主機遊戲那麼大的規模是怎麼處理的,其他專案有好的處理方式麼?
1好問題。
這個問題沒有完美的解決方案,就算是成熟的公司也要持續在版本管理方面下功夫,包括持續的培訓和修訂工作流。
這個問題是多個矛盾的綜合,並非單一難題,先談談本人觀點:
1、美術資源用版本工具管理,不像程式那麼自然。
程式使用版本管理可以進行diff、merge等操作,不易丟失**等等,可以說只有好處幾乎沒有壞處,學習版本管理有助於工作,是乙個正反饋;而對很多美術工作人員來說,資源不易在git操作時直觀檢視,無法diff和merge,操作和衝突時必須有清晰的思路,如果理解不準確反而會破壞本地資源,可以說是額外增加了工作量和風險,像一種負反饋。
工具越是複雜,美術人員直接操作vcs的成本就越高,如果說svn勉強可以熟練使用的話,熟練掌握git的分支操作對於偏感性的設計師們來說簡直就是天大的挑戰。
2、vcs管理二進位制檔案,比管理文字檔案要弱很多
特別是svn管理二進位制檔案效率非常低下,相對來說git的large file storage效果就很好,所以很多團隊傾向於使用git或其它工具。但是上面說了,git使用門檻比較高。nainaitea.com
3、美術資源需要的可能是更簡化、更不容易誤操作的工具
例如檔案鎖定後才能修改,這種操作就特別適合日常對美術資源的操作。所以我也比較推崇perforce和team foundation等工具。
4、多個版本倉庫的問題本質上是複雜的
中國網遊發達,多版本的坑也踩的比較早。很多網遊都包含:
1. 正式服
2. 體驗服(也是正式服,新版本進入正式服前,先讓部分玩家先體驗,以避免惡性問題)
3. 測試服(測試人員上線前測試用)
這就導致外網正在運營的就有3個版本,除此之外還有各種各樣的開發伺服器,包括:最新的周版伺服器(功能測試)、相對穩定的伺服器(遊戲性測試)、各種臨時插入版本(節日活動、商務合作、sdk測試等等)。還有更嚇人的:海外版本,這時候連運營商可能都換了另外一家,讓專人負責是必然的。
一般稍微比較成功的端遊,都免不了要同時維護一堆版本。要管理好它們,指望某乙個vcs工具顯然不夠,還得協調好每個開發者在每乙個版本的工作安排。(所以小的團隊控制好分支數量,能減少不小的工作量)
因此,這裡實在無法給出完美的解決方案,直說乙個最容易想到也比較有效的方案:
——必要時,專人負責版本管理
據我所知某些大公司可以聘請專業人員(有程式開發背景)來作為pm,專門負責維護工作流。程式分支相對好說,處理好git分支即可;美術資源可以用較平坦svn、專用倉庫加文件來管理,然後由pm負責照顧好每個分支中美術資源和程式的對應關係。
有一種比較費時但是有效的做法,就是pm對一套新功能專門開乙個分支,然後單獨開發、測試,最後再將這個分支合併到對應的版本。
另外也可以對小團隊給出乙個建議:
——隨著工作進展慢慢改進版本管理方式
每個團隊背景不同,不好說哪種方式就一定好。在每個階段採用不同的管理方式,不斷改進工作流程,我覺著更為可行。
2我在之前的乙個專案專門負責過在兩個svn版本之間同步美術資源的工作。我名義上是技術美術,但有意無意攬了很多職能之外的工作。
在我負責這個工作之前,是專案中美術與策劃進行配合,用手動複製貼上的方式將乙個svn版本庫中某幾個提交日誌的資源更新到別乙個svn版本庫。
出現問題的點主要集中在兩個方面。
乙個是角色與動畫特效資源,其中涉及到了角色骨骼動作特效材質還有各種配置文等一堆盤根錯結的資源,配置檔案之間還有多重引用關係,漏提錯提或者雞同鴨講是常事。
二是無法準確判定資源經過不同歷史操作後的最終狀態,
並準確同步至另乙個svn版本,比如某乙個版本更新的資源中有若干個不同路徑的檔案或資料夾經過了新增提交又更新又刪除又還原又刪除....通過人肉操作很難保證精確性,然後就會出現各種詭異的問題。
我的解決方式是人肉分辨加編寫輔助工具。
首先我是專案中對各類資源與功能的應用細節了解得最全面的人,有這個前提在我只要通過svn的提交日誌就能從準確的分辨出哪幾條日誌中包含了某次版本更新中需要的資源,這種技能其它人確實做不到。
然後我自己編寫了乙個svn同步工具
,通過讀取上面挑選出來的svn的日誌檔案中的版本號及其它資訊做邏輯判斷,最終得出檔案及資料夾的最終狀態,是新增,覆蓋,還是刪除等等,然後一鍵同步,工具會自動對兩個svn目錄中的相關資源做新建,複製貼上,刪除等操作,保證了檔案操作的精確性。
這樣執行起來還是比較優雅的,我做起來也不累,但缺點就是我一旦離開馬上又亂了,而且沒人能代替我做這項工作。
開發中返回,如何處理
不小心在開發過程中,得到了 null 以及的返回值,找了好長時間只找到了乙個關於的。由於要根據返回值進行判斷,做出必要反應,因此必須知道返回值所代表的具體字元,在得到 null 後利用isequal 和 null,null nil,nil比較後均得不到正確結果,弄得不知所措了,但是還是感覺像nil,...
如何處理最好資源的「耗子」程序?
如何處理最好資源的 耗子 程序?1 程序管理 程序 程式的一次執行過程 資源分配和管理的基本單位 程序管理的內容 如何監視程序獲取當前系統中各個程序的具體狀態資訊。調整程序執行的優先。守護程序。1 監視程序 1.與程序有關的資訊 2.程序監視命令 ps命令 功能 報告程序的相關資訊。格式 ps 選項...
測試如何處理與開發的關係
測試如何處理與開發的關係 1 要耐心和細心 細心是測試工程師的乙個基本素質,測試工程師是對質量負責的人,涉及到質量問題,就不能含糊,因此一定要細心,細心對待每乙個可能的bug 細心對待每一段 被你檢查的 細心對待每乙個你撰寫的bug報告,細心對待你發出的每一封郵件。細心是一種態度,你的態度遲早會感染...