这篇文章一开始是关于git和Unity的,然后慢慢思路就失控了。
让我们跳过“什么是Version Control?”或者“为什么在21世纪需要版本控制?”这些问题。与此相反,让我们描述一下vcs的现状,说明为什么游戏开发人员都大同小异,以及我们可以如何应对。 帖子中提到了第三方服务及其价格政策。本文作者与这些服务无关。此外,作者对您为此产生的费用不承担任何责任。
对于那些不知道这是什么的人-记住一个简单的方法:“永远使用VCS!” 开始的时候,去搜索“Github初学者”做完其中所有教程。然后,读一本名叫Pro Git的书。如果您知道什么是VCS,我推荐您git和GitHub,因为它们涵盖了开始所需的一切。另外,我建议您使用这两个词开始所有项目:“ git init”。只是提醒你,并无冒犯。
Game dev在版本控制中有其特殊性,它包含大量图片、视频和类似内容的资源,这些资源非常重要(这称为BLOB,二进制大对象)。我的一个项目是10GB的容量,其中7GB是艺术。Git不是为存储blob而设计的,因此,对源代码和资源的存储是分离的。在任何一个自重的项目中,都会有一些工具来简单生活,其中相当一部分将是解决这一问题的方法。人们以某种方式和它生活在一起,所以不要高估它的规模。但我遇到过这样的情况:团队更改blob存储规则,有时是为了流程,有时是为了降价。那为什么不把它们换成一个新的、时髦的东西呢?
我们可以说git是事实上的标准,所以首先想到的解决方案是:
当你听到“某个文件存储”时,你会立刻感觉到某个地方有问题。什么服务器,在哪里可以访问它,我将花费多少?令人惊讶的是,要整合关于这个功能的信息是非常困难的,因为所有的大佬都创建了这个功能,他们花了多少钱来使用它,令人惊讶的是,他们忘记了营销。所以,如果你不考虑大型服务的话,则几乎很少服务器可以实现,所有这些服务都是开源的,没有什么支持,但也许它们不是那么糟糕?我想了解git lfs的情况,所以我今天(2019年12月)了解到以下信息:
AWS S3-有些git lfs存储的实现,可以将文件路由到类似git-lfs-s3等的S3中。价格看起来还不错,但是在使用亚马逊时必须非常小心。因为很难计算费用额(作者对您的费用不承担任何责任)。
Nexus储存库管理器-与maven或python本地储存库配合使用时,和docker一样它有大量的存储空间,几乎满足您所有想象,所以为什么不将它用于lfs呢?
您可以编写lfs服务器实现,而不必为Blob管道编写自定义工具。它可以将文件随时存储到S3。您真的要从头开始创建自己的工具,而不是扩展当前众所周知的工具吗?
因此,git lfs看起来还不错(它也将用于本博客)。宠物项目的其他基础设施工具看起来像是开销。成本最低的解决方案始终可以赢得公司的青睐。对于我自己,我选择啦…我想您已经通过本文开头的图片知道了。下次见! =)