Articles of 版本控制

备份非基于文本的资产

我正在使用源代码管理工具( git )来备份configuration,代码等。但是,我如何管理艺术资产和其他游戏资源,这些资源是二进制格式的,并且往往很大(animation师,audio源等)? 工作原理是使用云端存储服务(如Google Drive或类似服务)备份所有资产。 但是,你如何有效地管理你的项目? 这对我独奏很有帮助,但是如果我加了一个团队成员,那么我将如何有效地管理项目,而多个开发者/艺术家正在贡献呢? 我正在与Unity合作,如果它是相关的。

统一和TFS合并

我正在尝试为TFS用作主版本控制系统的公司提供一个很好的Unity开发协作解决scheme。 我已经设置了Unity项目来创建元数据,并将所有文件存储为文本。 就像这里提到的: http : //docs.unity3d.com/Manual/ExternalVersionControlSystemSupport.html 然后,我在Unity的YAML SmartMerge中为Visual Studio选项中的.unity和.prefab文件启用,如下图所示。 我遵循这些说明: http : //docs.unity3d.com/Manual/SmartMerge.html 现在我尝试了所有这一切,并在PC 1上的Scene.unity中进行了更改,并将其签入了TFS。 然后在PC2上的Scene.unity进行局部更改,并使用TFS Get Latest。 但是,而不是合并更改TFS显示解决冲突屏幕只有采取他们和保持矿选项,但没有办法自动合并,甚至没有手动合并选项。 :(我做的改变是为了testing独立的游戏对象以及Unity编辑器中Position.x值的变化,所以完成了独立的游戏对象,这应该很容易自动合并,我尝试了与SVN和GIT相同的设置它只是像预期的那样自动工作,当使用Get Latest时,只有TFS似乎不会触发合并。 还有什么我错过了我正在使用的TFS和VS 2015设置?

虚幻4:用Git作为VCS检出

我有我的编辑器configuration为使用git作为我的VCS。 我有我自己的服务器,其中回购托管。 我用虚幻4指南跟着GIT 。 我的问题是我找不到任何蓝图/资产的右键菜单中的“签出”选项。 我的VCS菜单只显示刷新,历史和对仓库的差异。 如果我认为在修改任何资产时,我的队友应该检查资产以便locking它进行编辑,我错了吗? 如果是的话,该怎么做? 我尝试了资产修改的自动结帐function,但是这种function并没有像预期的那样工作,因为我修改了资产并且没有被检出。 有关如何正确configurationGIT按预期工作的任何想法? 而且,如何从编辑推动呢? 我似乎能够通过“检查”某些资产进行提交,但是我可以从编辑器本身推送到远程回购吗? 非常感谢。

保存数据的版本控制

所以我有这个基于瓦片的游戏(类似于Farmville)。 正如“基于磁贴”意味着,保存数据可能会变得非常大。 游戏保存存储在云上,任何对保存数据的改变都会迫使我将整个保存文件发送给游戏客户端,如果这些更改非常小(即使单个切片也会触发发送所有的保存数据)。 我正在考虑版本控制的可能性来减轻networking负载。 在这个解决scheme中,我想象一下: 客户端向服务器发送一个版本号。 服务器将该号码与旧版本的保存文件相匹配,并将其与最新版本进行比较。 服务器将差异文件发送回客户端,用于解释和重新生成最新版本以及最新版本号以备将来参考。 我怎样才能实现呢?

在XNA中使用git

我是一个试图使用Git(我告诉它比SVN好多了)的开发人员来跟踪我的XNA项目。 我会复制我的项目到一个裸仓库,然后添加文件? 如果是这样,我需要所有这些吗? 另外,如何处理我的内容项目和文件 – Git会在每次提交/推送时复制它们,大大增加回购大小?

重叠SVN储存库

我们在工作中使用svn,但版本库变得非常大,所以结帐时间很长,而艺术家批量处理所有资产时更新。 问题是,我们也存储正在进行的工作,原型,小testing,遗留的东西和其他“垃圾”。 现在从理论上来说,其中一些可以保留在本地,并且可以保留下来,而且可以删除和清理很多,但是这个问题是无关紧要的。 想象一下,例如一个新的资产,一个水平。 艺术家和devise师希望它共享和版本控制,所以他们中的几个人可以在其上工作,但其他人不需要它。 显然,多个版本库是一个答案:一个是艺术家,一个是程序员,另一个是主要项目(testing人员,构建演示版本,最后是主要产品),这将是非常紧凑和最小的,更多。 然后当一个资产或者一些代码“成熟”的时候,它就可以被复制到主要的项目中并被承诺。 这里是我的问题:是否有可能有多个存储库重叠,以便艺术家可以拥有一个他们需要的一切,同样对于程序员。 只有在准备好提交相同的文件到项目存储库呢? 这将消除具有多个文件副本的膨胀并避免存储库之间的冲突。 我知道旧的svn版本存储在所有目录中的不可见文件,所以这是不可能的,但新的svn版本存储所有的元数据在根目录右? 所以这可能是可能的。 我成像的答案将是'不可能的',或者即使可能,y! 我想这会造成各种头痛。 就像在一个存储库中检查一样,意味着需要在另一个存储库中提交/删除它。 但如何做一个svn_commit脚本,覆盖svn提交额外的检查和家务? 这只是一个真正的思想实验。 我想知道是否有人做过这样的事情,将会有什么问题需要解决。 干杯

我必须将Unity的可下载资源提交到回购站吗? 或者为团队下载他们的参考?

问题(短版) 我将使用Unity Test Tools资产来进行单一testing。 问:我必须将Unity Test Tools提交给我的回购吗? (顺便说一下,使用git )。 CONTEXT 团队/工作stream程 我们是一个由10人组成的独立团队(其中4个编码器,2个graphics,1个音乐,2个营销,1个自动化testingQA),远程定位。 我们两个星期前就组建了这个团队,对Unity进行了探索,决定把团结作为我们的发展框架,最后我们做了一个内部的傻乎乎的Tic-tac-toe内部让我们来检查工作stream程。 现在我们要开始开发我们的第一场比赛。 清洁代码。 清理回购。 使用git进行版本控制。 我们将Unityconfiguration为全部写入文本和可见元素 。 我们正在使用Unity5免费版。 编码 到目前为止,我已经设法创建一个MVC模式。 MonoBehaviour作为Controller ,然后我们有非依赖类作为我们游戏的Model 。 控制器调用这个模型的方法。 模型抛出事件来通知其状态的变化。 我们想unit testing模型。 资产 昨天我发现了Unity Test Tools 。 这是唯一下载的资产,其余的资产是由我们制作的。 如果我们下载其他资源,或者如果我们想要在几个游戏中保留一个共同的自制库,这个问题提出的奇迹可能会再次发生。 问题(长版) 据我所见,资产被“复制”到你的项目中。 Okey工作。 但是…合作? 我感觉不舒服。 在PHP你可以用同样的方法来处理“依赖”,所以如果你需要一个库,你不需要在你的项目中提交它,那么你只需要提交一个文本文件“我想要这个库,这个特定的版本”例如,你可以告诉composer php安装PHPUnit进行unit testing,并且你提交了作曲者文本文件,你不提交完整的PHPUnit副本 – ,这是我们的问题/奇迹: Q1)我必须在我的回购中提交所有的Unity Test Tools吗? 这是10兆 – 可能看起来是一个矫枉过正或不是,这取决于你的光学…但是,因为它携带的“例子”,我不知道如何过滤需要什么,什么不是,对我来说似乎是如此矫枉过正承诺所有这一切 – 但更糟糕的是:这可能会发生在另一个500兆的资产。 提交可下载资产似乎是反模式。 […]

游戏版本更新?

游戏版本什么时候改变? 从xxxx到xxxx + 1,如从1.0.0.0到1.0.0.1 或从xxxx到xxx + 1.x? 或从xxxx到x.x + 1.xx? 或从xxxx到x + 1.xxx? 第一个游戏版本是1.0.0.0还是0.0.0.1?

UDK和版本控制存储库的选项?

另一个开发者和我已经开始尝试虚幻开发工具包,并已经将UDK安装到本地计算机上。 他一直在玩弄和尝试,并已经开发了一些基本的代码和资产。 我们要建立一个VCS存储库,以便我们可以合作开发一个UDK项目。 我们注意到的一些事情: 源代码进入开发/源/游戏名称/。 二进制内容和其他资产进入UDKGame /。 根目录中的其余文件夹用于核心UDK安装。 在存储库方面,我们已经提出了几个select: 提交一切(甚至是核心UDK代码)。 Pro:简单 Con:我们提交了大量代码,虽然我们的项目依赖项,但在技术上并不是项目的一部分。 将两个文件夹提交给两个独立的存储库。 临:将版本化的代码隔离到我们创建的东西。 Con:建立起来稍微难一些,承诺一个修复跨多个版本库,而且我们提交了大量的二进制内容。 更改configuration,以便src和资产都存在于一个文件夹中,然后提交。 临:隔离版本化的代码,提交更改在一个回购。 Con:提交二进制内容。 提交SRC到一个回购,为资产使用另一个解决scheme(FTP,Dropbox等) 专业版:隔离版本化的代码,在版本化二进制内容中没有额外的开销。 答:更改跨多个位置,需要手动更新到远程存储解决scheme。 当我们评估最好的方法来解决这个问题的时候,我们不会后悔自己到一个角落,我想知道是否有其他的select,以及它们的优缺点。 我意识到只要遇到扩展问题,我们就可以轻松select一个解决scheme并进行更改,但版本控制一直是我喜欢做的事情之一,然后在工作时忘记了。

我应该如何设置Git和CruiseControl的UDK?

对于UDK中的一个新项目,我想建立一个版本控制的Git仓库和一个基于CruiseControl.NET的持续集成解决scheme。 好消息是,他的第一部分似乎很容易,CruiseControl.NET可以closuresGit仓库。 坏消息是,根据我的search,没有人试图这样做。 理想情况下,我正在寻找一个分步指南,介绍如何建立这样一个开发环境,假设多台开发计算机,一个“主”分支的中央存储库,以及一台用于构建和打包二进制文件的机器CruiseControl.NET。 有关: 使用UDK进行游戏开发的版本控制系统? UDK和版本控制存储库的选项? CruiseControl.NET和Git