2013-05-16 51 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上。如果它是最小的(比如基本网站),那肯定没有问题。 –