蒼時弦也
蒼時弦也
資深軟體工程師
發表於

Unreal Engine 4 collaboration with SVN

這幾年來 3D 遊戲的門檻隨著 Unity3D 的出現,從原本 Open Source 的 Ogre Engine 等,層次一口氣提高到了「商業運用」的等級,支付一定的費用給引擎公司,也許就可以用到 3A 遊戲等級的引擎。只要有付費,許多問題與麻煩都可以交給引擎公司,相較 Open Source 的形式,某種意義上也是更加容易的製作遊戲(至少不會有問題找不到解法,大絕就是呼叫客服)

自從 UE3 開放免費下載(抽成形式)後,這次的 UE4 稍微改了模式,月費制加抽成(5%)並且在最近公佈下載與付費的方式。

而我的同學長久以來就有著要用 Unreal Engine 的怨念,但因為我一直以「在 Mac 上不方便」為理由,讓他乖乖選擇 Unity3D 不過 UE4 來勢洶洶的支援了 Mac 我也不得不認命⋯⋯

雖然台灣尚未開放付費,但是所謂的 Source Code (付費用戶可以取得,不過也得要可以拿到,因為要用它來 Compile 出遊戲⋯⋯)卻已經可以透過網路上下載(總是會有人想公佈出來嘛~~ XD)

說到 Unreal Engine 我一直以來都覺得這架構很奇葩,雖然 UE4 有做過調整有了 Project 概念(上一代完全像是在做 MOD 一樣超痛苦)也換成了 C++ 撰寫(別亂來,還能夠支援 Mac / Win 不改程式 Compile 成功)各方面來說都是個吸引人的引擎。

順帶一提,月費定價很便宜,台幣六百左右(重點是拿到就可以不更新,付費只是更新用的,軟體不會被鎖住不能開 XDD)

那麼,既然要用這麼大型的引擎做遊戲,我們又不可能不回家,就只好找出線上協作的方案拉! (這邊是用 SVN 不過實際用過 UE4 就會感受到大型遊戲公司的開發環境實在是太好了,光是 Compile 時間就可以看出設備的差異 XDD)

首先,既然要用 SVN 就要有 SVN Server 這問題很簡單,隨便一檯電腦,或者 Synology 或者 QNAP 的 NAS 都行,不過用 NAS 的好處是比較省電,而 SVN 伺服器跟裝 APP 一樣簡單,又是設計給儲存的。 (UE4 範例遊戲專案開設完畢就是 600MB 上 SVN 抓回來就是 1GB 各種愉悅 XD)

然後,以下是雷點(SNV Plugin 雖然官方提供,但是 Epic Game 自己不用,所以根本不知道這 Plugin 根本殘障⋯⋯)

開設專案

首先,我們要有一個正常的 Game Project 大家都懂的⋯⋯ 註:第一次用 SVN 所以都是基本技能 XD

cd ~/Documents/Unreal Projects/myUE4Project SVN import . svn://my-svn.server.com/myUE4Project

個人習慣是這樣(跟 Git 做法一樣)總之就是先 Import 然後丟到遠端就對了⋯⋯ (不知道是不是因為我在 LAN 所以超級快就傳完了 0w0)

cd .. rm -rf myUE4Project

各位沒看錯,就是要把這 Project 刪掉,因為 SVN import . 會在 myUE4Project 裡面開一個目錄也叫 myUE4Project 然後裡面才有 .svn 的目錄。 (沒試過把 .SVN 拉出來就是了 XD)

SVN co svn://my-svn.server.com/myUE4Project

重新抓下來,這樣就算是做完 git init 這動作了吧(趴

跳過不必要的檔案

有一些檔案要 ignore 掉,因為是快取跟沒有用的檔案。

SVN propedit svn:ignore .

然後會打開預設編輯器(大概是 VIM 之類的⋯⋯)

內容就這這幾個目錄

Saved
Intermediate
build
DerivedDataCache

然後,就是很悲劇的要來清理這些目錄拉⋯⋯ 註:build 會失敗,很奇怪 XD

SVN delete –keep-local Saved SVN delete –keep-local Intermediate SVN delete –keep-local build SVN delete –keep-local DerivedDataCache SVN commit

完成後就算是做好一個乾淨的專案了~

UE4 設定

螢幕快照 2014-04-07 下午3.38.12.png

基本上就是右上角有個紅色叉叉(選單可以找到,但是我竟然找不到)點開後設定好,就會變成綠色箭頭。

編輯與上傳

編輯就跟一般編輯一樣(不過可以先去對要編輯的檔案 右鍵 > Check Out 鎖住不讓其他人同時編輯)存檔時會一併做這些動作,並且 Check In 進去。

最後就是 File > Submit to Source Control 選則需要的檔案(這也很怪,遊戲引擎整個也混入 QAQ)然後 Submit 上去(要打說明,跟一般 Commit 一樣)

同步

這個大雷,竟然完全沒有辦法「同步」所以就是手動跑 SVN update 去解了(不過至少還能看知道現在的 Rev 已經不是 HEAD 了就是⋯⋯)

用 Mac 的用戶 XCode 支援,可以從那邊跑。 至於 Win 的用戶,可以安裝 TortoiseSVN 來做 Update 的動作。

以上是目前搞 SVN 協作的小小心得,簡單說就是⋯⋯ 「很雷」

另外要 Mac / Win 這樣就可以協作了,不過有寫 Module (裡面有 C++ 程式)是要分別 Compile dylib 跟 dll 先丟上 SVN 不然會告訴你找不到 Module 不給開 XD