版本控制系统
版本控制是跟踪和管理源代码和资源更新的系统流程。版本控制系统是高效工作流程的基础,作为程序员、美术师和其他团队成员的单一真实来源,让每个人都能独立地为共享代码库做出贡献。此外,还作为安全网,如果在开发过程中引入灾难性错误,可以“撤消”代码更新。
团队规模和地理分布等因素会影响游戏开发者选择实施哪些版本控制系统。独立开发者可能会发现只需要本地解决方案就可以正常运行,而大型团队应该寻找更可靠和可扩展的版本控制系统,以帮助他们跨时区和跨地域进行协作。

分布式版本控制系统
通过分布式版本控制系统,无需连接到主服务器即可签入、分支和合并。每个贡献者都从存储在云中的克隆代码仓库工作。其主要优势是团队成员可以快速独立地工作,而不必担心网络或 VPN 速度慢。甚至可以离线处理项目,但仍然需要互联网连接来推送或拉取更新。
如果需要下载整个项目历史记录,尤其是在具有大量更改历史记录的大型项目中,分布式版本控制系统可能需要很长时间。处理大型二进制文件的工作室应仔细监控存储使用情况,因为这些文件占用空间的速度很快。
寻求灵活性和提高生产潜力的工作室应该考虑分布式版本控制。
本地版本控制系统
本地版本控制系统是最简单的版本控制形式,主要由单独的开发者而不是团队使用。通过本地版本控制,所有项目数据都存储在单个计算机上,对项目文件所做的更改存储为补丁。每个补丁仅包含自上一个补丁以来实施的更新。如果项目的特定版本出现问题,必须检查整个补丁集将项目文件凑在一起,从而了解项目在特定时刻的状态并且诊断问题。
因为它们都在一台计算机上,本地版本控制系统本质上不如分布式和集中式版本控制系统灵活。团队成员之间的协作具有挑战性,如果数据库遭到破坏,即使不是不可能,也很难恢复丢失的信息。
一般来说,开始时可以采用本地版本控制,但是一旦开始扩大规模(即使是从一个人扩展为两个人的团队),最好采用分布式或集中式版本控制。

集中式版本控制系统
集中式版本控制系统使用签入/推送工作流程连接到主服务器。对源代码的任何更改或更新都会作为新版本自动存储在代码仓库中。集中式版本控制系统具有强大的分支和合并功能,不需要将代码仓库克隆到多个计算机上。从这个意义上说,它可能更安全。
集中式版本控制系统需要网络连接。因为团队处理的是存储在一个服务器上的单个项目版本,所以服务中断会严重影响开发速度。集中式版本控制的另一个缺点是扩展性很差。参与项目的开发者越多,在稳定环境中推送更改的机会就越少,这可能导致合并冲突等问题。
如果对易于设置和使用的版本控制系统感兴趣,可以考虑集中式工作流程。
本地版本控制系统
本地版本控制系统是最简单的版本控制形式,主要由单独的开发者而不是团队使用。通过本地版本控制,所有项目数据都存储在单个计算机上,对项目文件所做的更改存储为补丁。每个补丁仅包含自上一个补丁以来实施的更新。如果项目的特定版本出现问题,必须检查整个补丁集将项目文件凑在一起,从而了解项目在特定时刻的状态并且诊断问题。
因为它们都在一台计算机上,本地版本控制系统本质上不如分布式和集中式版本控制系统灵活。团队成员之间的协作具有挑战性,如果数据库遭到破坏,即使不是不可能,也很难恢复丢失的信息。
一般来说,开始时可以采用本地版本控制,但是一旦开始扩大规模(即使是从一个人扩展为两个人的团队),最好采用分布式或集中式版本控制。