2013-05-16 213 views
2

我要爲多個平臺啓動新遊戲項目並使用GIT來控制它。GIT項目結構

我將從PC版本的遊戲開始,然後當大約一半的遊戲完成時,根據PC版本啓動Mac,iOS和Android版本,並行工作。

我看到了結構的兩個變種:

1)一個具有多個分支項目 - 爲一個平臺,一個分支。可能與所有跨平臺資源共享分支...

2)多個項目 - 一個平臺的項目。每個項目還有幾個分支機構,如主人,開發人員,熱修復人員和其他人員,如果需要的話。同時爲跨平臺資源創建單獨的項目,然後將其作爲子模塊添加到其他項目。

第一個變體看起來像是一個地獄。第二個看起來很有希望,但它有很多項目和分支......事實上,我沒有太多的消息來源,遊戲不是太大,但無論如何我需要這麼多東西......這很恐怖。

這種項目的最佳結構是什麼?也許有第三個變體?

+3

爲什麼不在所有平臺上使用單個存儲庫,直到需要更復雜的東西?這樣,所有平臺都可以從通用代碼中修復錯誤中受益。 – mpontillo

回答

2

也許考慮使用git submodules。 http://git-scm.com/book/en/Git-Tools-Submodules

有了子模塊,你基本上在你的其他git倉庫裏有一個共享的git倉庫。這樣可以更輕鬆地共享通用代碼並保持最新狀態。

我建議創建一個包含所有共享代碼的回購站,然後將其作爲您PC,Mac,iOS和Android回購站中的子模塊。這將使PC/Mac/iOS/Android特定的代碼與任何共享的代碼分開。

+0

謝謝,還有一個問題 - 我需要在GIT中存儲遊戲資源(圖像,聲音,ini文件)嗎?或者GIT僅適用於源代碼?目前我正在研究一些項目,我們擁有GIT的所有內容,我必須說它並不那麼方便。你怎麼看? – user1232695

+0

看看[git-annex](http://git-annex.branchable.com/)和[git-media](https://github.com/schacon/git-media)。 – mpontillo

+0

是的,我不會在回購中包含大量媒體文件(如視頻)。你可以在某個地方把它們放在CDN上。如果它是最小的(比如基本網站),那肯定沒有問題。 –